The document discusses the ASP.NET provider model for creating swappable state storage providers. It describes how the provider model allows separating definition from implementation and swapping implementations. It then provides details on designing and developing a custom state storage provider that follows the ASP.NET provider pattern and can be configured and used alongside other providers.
1 of 25
More Related Content
Advanced Web Form Practices - Miguel A. Castro
1. DYNAMIC STATE STORAGE: UNDERSTANDING THE ASP.NET PROVIDER MODEL Miguel A. Castro [email_address]
3. Agenda What is a Provider? The [ASP.NET] Provider Model The Config File Identifying the Need for Swappable State Storage Designing & Developing the Swappable State Storage Provider Summary
4. What is a Provider? Based on the Strategy Pattern (GoF) Allows the separation of definition and implementation + ability to swap implementations Provider Definition (interface or abstract class) Concrete class 1 Concrete class 2 Config decides which to use.
5. The ASP.NET Provider Model Designed by the ASP.NET team Part of System.Web.dll Used by many features of ASP.NET Membership, Roles, Profile, WebPart, Personalization, Session, Logging, etc. Not just for ASP.NET
7. The Membership Provider Membership.CreateUser Factory Class Command Static Constructor: Read Web.Config file Determine what Provider to use Instantiate Provider and cast to Abstraction Call CreateUser in provider
8. The Membership Provider Membership Object Model Membership MembershipProvider SqlMembershipProvider Static Factory Class Abstraction Provider Class
10. Swappable State Storage Requirements Ability to swap out method of state storage on-the-fly. Session Application Cache Cookies Ability to define more than one state-storage provider.
11. Swappable State Storage Design Configuration section handler. Config model follows standard provider config model Static factory class for entry point. Provider Base class defines public interface. One provider implementation class for each type of storage.
12. Swappable State Storage Design Data: Ability to isolate storage by provider name Ability to isolate storage by user (using the Session ID) Key and Value used for storage/retrieval Behavior: Store an item Retrieve a stored item
13. Swappable State Storage Some data is static for ALL usage Information described in previous slides Some data is different for EACH usage Key used for storage Value being stored Static data can be fed using configuration Dynamic data fed into method arguments
14. Swappable State Storage Static Attributes isolateProvider Uses name of the provider in the storage key Allows two instances of same provider type to store using same key isolateUser Uses session ID in the storage key Allows two users to store using same key Important in Application and Cache
17. Custom Config-Section Class Inherits from ConfigurationSection Properties: DefaultProvider: string Providers: ProviderSettingsCollection Decorated with ConfigurationProperty Rest of configuration definition handled by ProviderSettingsCollection type
18. The Provider¡¯s Definition Abstract class Inherits from ProviderBase Defines fields that will come in from config Defines properties exposed by all implementations Defines abstract methods
19. Concrete Classes (Session) Inherits from provider definition class Overrides Initialize (ProviderBase) Config-section (<provider>) attributes received as NameValueCollection object. Provider-specific _Fields (defined here) and those defined in base class are filled. If expected attribute is not found, throw ProviderException Allowed attributes are removed from collection and collection is checked for anything left over. Abstract methods implemented
20. The Factory Class Point of entry Static constructor reads all defined providers and makes provider determination from config information Duplicates provider¡¯s methods for entry Exposes a collection of all providers addressable by name Exposes default provider
21. Writing Providers Can be defined in separate assemblies Similar to the Session-State provider May use same, different, more, or less attributes than other providers Has its own Initialize method implementation Implement abstract methods Same, similar, or different than other providers Assembly needs to be accessible by host
22. Writing Providers Application State Provider Like Session but uses Application variable Cache State Provider Like Session but uses Cache variable Cookie State Provider Like the others but must serialize and deserialize values before storage and retrieval Cookies only store string values
23. Using The Providers Define one or more in the config Define one as the default provider Use the default provider Use the StateStorage factory class to store and/or retrieve values Use a specific provider Define a variable of the base class-type Set to an element of StateStorage.Providers using provider name as key
24. Summary Provider model can accommodate a terrific plug-in architecture for many features of your application Familiar & proven pattern Can be used outside of ASP.NET Need to reference System.Web.dll The ability to swap state storage can come in very handy
25. Programming Microsoft ASP.NET Advanced Topics Dino Esposito ¨C Microsoft Press Professional ASP.NET 4.0 with C# or VB} Mathew MacDonald - APress
Editor's Notes
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
MGB 2003 ? 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.