ASP.NET 2.0 Providers

ASP.NET 2.0, previously known as the "Whidbey" version of ASP.NET, introduces a new set of features around personalization and membership. (search for ASP.NET Whidbey, ASP.NET Personalization, or ASP.NET Membership). ASP.NET Personalization enables you to define, save, and retrieve profile properties associated with users visiting your Web site. You can use the Personalization Service to permanently store user profile information without writing any data access code. ASP.NET membership stores user name/password credentials, and provides no-code login and authentication. It is mated with a role management service that allows you to customize the web experience based on that authenticated identity.

These are things that most web apps of medium or high complexity do. In ASP.NET 1.1 or other, non-Microsoft Web UI frameworks, to get these features, you either have to write custom code yourself, or you pay extra for a premium portal product to get these features. But ASP.NET 2.0 changes that. These features are provided in the box. ASP.NET is not an "extra cost" thing; it is just part of .NET, and so it works on any machine where you have Windows.

Of course, all the personalization and membership works with any client, any browser. That hasn't changed with ASP.NET 2.0.

The Coolest Part

These new services are based on a provider model. The default install of ASP.NET stores personalization and membership information in a Microsoft database (SQL Server 2005). But we know that many customers have non-Microsoft databases as their primary stores for web apps. In those situations, the provider model means those customers stay happy. Want to store personalization data in MySQL? No problem. Oracle? sure. Sybase? ok. DB2? Ahhh, well......, no, you can't use DB2. Wait! I Was kidding. Even DB2. It's a provider model, you can use whatever you want.

And, Microsoft is shipping sample code to help you, via the ASP.NET 2.0 Provider Toolkit. This toolkit contains sample source for providers for MS-Access. Yes, I hear you, MS-Access is not what you want to use on your web app, but the point is that you can use the source to produce your own.

We will soon follow with a big, fat whitepaper that explains in English how developers and architects can customize and extend the provider model of ASP.NET 2.0 for any enterprise environment.

Good news for those who want to use ASP.NET 2.0 with non-Microsoft data stores.

Update, 2006 June 23: a video on the ASP.NET provider model.