ASP.NET 2.0 from the Inside
The Microsoft ASP.NET development lead chats about what's changed - and why - in ASP.NET 2.0.
By Nikhil Kothari
Whether you're attending the PDC this year and getting a first preview of ASP.NET Whidbey or reading about it in this magazine, you will no doubt notice that ASP.NET Whidbey is slated to be another big and exciting release, rivaling ASP.NET version 1 on the basis of its feature set alone.
After completing the initial release of the .NET Framework, we wanted to make ASP.NET an even more compelling Web application development platform. We listened hard to all the customer feedback and questions we received, looked at new ideas from prototyping and projects such as Web Matrix, and did lots of brainstorming.
Imagine building a secure data-driven Web page in version 1.0. Add sorting. And paging. Perhaps some editing, too. How about saving a few user preferences across sessions? Finally, have it share a consistent look and feel with other pages in the application. Not an uncommon scenario by any means, but one that would - in ASP.NET 1.0 or 1.1 - require a couple thousand lines of data-access code and page logic. With ASP.NET Whidbey? 0. Yes, Zero! With the slew of new features, it is indeed possible to implement the page in a completely declarative manner. Just some of those features include built-in user management services, forms authentication, highly functional controls such as the login controls, intelligent data controls that bind automatically, user profile management, themes, and master pages. Developer productivity and simplicity are central themes to the product. Listing every feature would require more than a page, but you'll find more in-depth articles on some of these features in this issue.
We've added support for adaptability into Web Forms controls so that the same set of server controls can be very simply used to target different browsers, devices (cell phones, PDAs, etc.), and markup languages (XHTML, WML, etc.). ASP.NET is very much a developer platform. Developers can now focus on implementing richer scenarios now that the basic functionality is handled by core features instead. Extensibility (particularly interesting to me) continues to permeate the design at each level, whether it is in the form of custom controls or custom infrastructure service implementations plugging into the system. We've added pre-compilation for easier deployment and various management features (MMC and Web-based), as well as error reporting and tracking mechanisms to simplify maintenance. Finally, we have greatly improved the development experience in Visual Studio Whidbey to better target the runtime and work with the developer without getting in his or her way.
With so many features, naming is always a fun activity. For example, what should the new enhanced Grid control be called? DataGridEx? DataGrid2? IntelliGrid? Or maybe SmartGrid (earlier builds did have such a control). In the end we settled on GridView and complemented it with other "View" controls, such as DetailsView and TreeView. Sometimes we'd debate about which features should be included. I am sure an all-time favorite is going to be the enhanced AdRotator control supporting popup and pop-under ads. Our dev manager added Xbox popups to the team Web site. No kidding.
I was asked to say something about my favorite feature. Now that's a hard question. If I was to try, I'd pick the new portal framework, not because it demos well, but because it provides a downright compelling demonstration of how various ASP.NET features - including Web parts, personalization, user and role management, themes, master pages, and custom server controls - work well together to create highly functional and aesthetic personalizable portals.
The ASP.NET team is the place to be - in the midst of dedicated and talented folks. It is extremely rewarding to be working on the fastest growing Web technology. It challenges and motivates everyone to go further each day.
A couple of interesting statistics to summarize: At this point, System.Web.dll contains well over 1,000 public classes built from over 300,000 lines of code, compared to its version 1 counterpart which had 321 public types from 90,000 lines of code.
To say the least, we have been busy.
Nikhil Kothari is a development lead in the Microsoft ASP.NET team where he is responsible for the design and development of the Web Forms page and server controls framework in the .NET Framework and Visual Studio .NET. He has been a member of the ASP.NET and .NET Framework teams since their inception. He is the co-author of Developing Microsoft ASP.NET Server Controls and Components (Microsoft Press), the definitive book on its subject. Nikhil is passionate about component and Web development, has given various talks on server control architecture and authoring, and is the architect of the Web Matrix development tool. He can be reached at his blog on http://www.nikhilk.net.