Personalization is a very powerful feature of ASP.NET 2.0. It gives you an easy, type-safe way to expose all sorts of user data. Personalization does require a database, but the ASP.NET team has tried hard to ensure that you can take full control over how this data is both operated on and stored. The provider model is the functionality that enables this, and we fully intend to publish more documentation on how providers are built.
ASP.NET ships with two providers: Microsoft SQL Server and Microsoft Access. Access is the default provider and when used, all personalization data is stored within an Access database located within the application. The ASP.NET team recommends using the Microsoft SQL Server provider for large enterprise applications.
In this chapter we built a simple provider for Personalization that allows ASP.NET Personalization to retrieve data from the ASP.NET Forums application. Building providers was designed to be simple, as demonstrated, and we fully expect you to write your own Personalization providers to control access to your data.
Finally, we looked at themes, one of the visual aspects of Personalization, which allow users to customize the look and feel of a site. Because this requires very few changes to existing pages and relies on some simple properties, it's ideal for storage as part of the Personalization Profile.
Now it's time to take Personalization to the next level by looking at the ASP.NET portal framework.