In this chapter, you've built the foundations for the site's user interface layer. You've designed and implemented a master page with common HTML and graphics, making it easy to change the layout and the graphics of the site by modifying a single file. You've also used themes — another new feature introduced by ASP.NET 2.0 together with master pages — to create a couple of different visual appearances for the same master page. You've created a mechanism to enable users to dynamically pick their own favorite theme from a drop-down list, so that they can change the appearance of your site to meet their needs and desires. You've also used the new Web.sitemap file, and the Menu and SiteMapPath controls to implement a flexible and easy to maintain navigation system, also new in ASP.NET 2.0. Finally, we've used a custom BasePage class to have not just a common look and feel among the pages, but also some common behavior. All in all, you've already developed some significant new features, but with comparatively few lines of code. If you tried to do all we did in this chapter with ASP.NET 1.x or maybe even with an older technology, it may take hundreds of lines of code, maybe even more than 1,000. In the next chapter, we'll continue to talk about foundations, but for the business layer.