We recently caught up with Brian Goldfarb from Microsoft to talk about the upcoming ASP.NET 2.0 release, why open source developers would want to make the switch and the future of the Web Matrix Project.
Builder AU: Could you give us a quick overview of some of the major features you wanted to incorporate into ASP.NET 2.0? And how were these driven by developer requests?
Brian Goldfarb: When we first started planning ASP.NET 2.0 we went out and looked at the common things that our customers, and Web site developers in general, were struggling with. What did we see? A lot of common, repeated tasks-sets of functionality-that were being implemented and reimplemented. Our goal was to simplify these processes, and help developers reduce the amount of code they had to write in common scenarios by approximately 70%.
A lofty goal, but it resulted in a set of core ASP.NET Application Services like-Membership, Role Management, Navigation, Web Parts, Management, and more-which deliver an easy-to-use programming model that significantly reduces code. In that same vein, we've built over 50 new controls, all designed to leverage the ASP.NET Application Services and further simplify development. Developers told us that they wanted to focus on adding value to their applications instead of worrying about the repetitive pieces. With ASP.NET 2.0 we believe Web developers can really start taking their apps to the next level.
Developers and IT professionals also told us that ASP.NET needed to be easier to administer and manage. We've added a whole lot of functionality in that space, making it easier for developers to instrument their applications and to help IT Professionals easily manage their ASP.NET 2.0 apps with IIS.
How did the ASP.NET developer team narrow down the requests that developers have made for new features and functionality?
Prioritising the huge amount of feature requests is never an easy task. It requires us going out to the community and gathering feedback, engaging with key customers, and thinking about the future direction of our Web platform and tools. All that considered, reality sets in and there are tough choices that need to be made. We are forced to sit back, reflect on all the data we have, customer requirements, technical requirements, industry trends, and more - and prioritise.
Which features address the largest set of customer issues? What features will deliver superior innovation? What features will easily enable difficult scenarios? What features are needed to drive core customer scenarios? How do we help increase the manageability of our platform? You know, these are just some of the things that go into it. As you might imagine, the process is very tough because we strive to provide our customers with everything they're asking for, but not everything can make the cut, and we are forced to prioritise.
What features do you see as having the "ah-ha" factor with developers? i.e. features that may have been lacking in previous versions or that will have a strong appeal with ASP.NET 1.x developers.
There are two major "ah-ha" factors with this next generation of our Web platform and tool. First, we redesigned the tools infrastructure for building Web sites and applications. We released a new tool targeted at hobbyists, students and enthusiasts called Visual Web Developer 2005 Express Edition - a tool built from the ground up to be solely focused on the Web developer and built on the Visual Studio 2005 IDE. As a result, Visual Studio 2005 gets all the new Web development features of Visual Web Developer 2005 Express Edition and even more professional grade features like source control integration, pre-compilation, localisation, and accessibility checker.
Developers using Visual Studio .NET 2003 and ASP.NET Web Matrix told us a lot about how they want their Web tools to look, and this redesign is in response to that feedback. It includes changes in the project system to make it directory based, a significantly improved design surface with better CSS support and integrated Master Pages and Themes support. We also improved the source editor, providing awesome code editing features for Web developers.
Second, as discussed before, ASP.NET Application Services provide a powerful model for implementing all kinds of advanced functionality. In addition, our new Master Page model enables developers to easily maintain a consistent look and feel throughout their site-a type of visual inheritance with support from the tools side and platform side.
What features might entice developers from a PHP or JSP background to move to ASP.NET 2.0?
ASP.NET 2.0 and Visual Studio 2005 deliver a great set of benefits to all developers - providing them with rich tools for designing and coding their Web sites and a powerful platform that reduces the amount of code they need to write. ASP.NET 2.0 and Visual Studio 2005 also enable scenarios that were previously incredibly difficult. One compelling example is Web Parts.
ASP.NET 2.0 provides a rich Web Parts infrastructure that makes it possible for developers to build customisable, personalisiable Web pages without having to write a lot of custom code. We're excited about what our platform has to offer and encourage developers of all backgrounds to give it a try by downloading Visual Web Developer 2005 Express Edition Beta and evaluate.
There has been some talk of improved application performance through new caching capabilities-can you highlight an example where this could be used?
In ASP.NET 2.0 there is a new type of output caching called SQL Output Caching. In the past, output caching has created significant performance boosts, but there was the problem of determining the optimal cache time to avoid stale data. With SQL Output Caching, ASP.NET 2.0 can cache a page indefinitely and only refresh the cache when the data underlying the page changes. This works with SQL Server 2005 as well as SQL Server 2000. So imagine, a catalog site where the data changes infrequently, for example, updating pricing information quarterly. In this case, you could cache the catalogue pages for months and see significant performance gains and reduced database load.
ASP.NET developers often struggle with keeping a consistent "look and feel" across a site-has this issue been addressed in ASP.NET 2.0?
We heard this loud and clear from developers, and in ASP.NET 2.0 there are several new features that help developers maintain a consistent look and feel throughout their sites. First is Master Pages, a mechanism for doing visual inheritance. A developer can define the majority of the site's layout here, and also define overridable regions using a contentplaceholder control. Then in subsequent pages, I can build content pages which will override the contentplaceholders in the master - the only content in the content pages is just what needs to be there, and the Master Page contains the rest. I can make changes to the whole site by just changing the Master Page.
ASP.NET 2.0 at run-time combines the Master Page with the content pages and sends unified output back to the browser. We've also implemented a Themes/Skins architecture that enables developers to easily swap in and out specific look and feel elements for ASP.NET 2.0 server controls. Also, to further increase developer productivity we have rich support for Master Pages and Themes/Skins at design time in both Visual Studio 2005 and Visual Web Developer 2005 Express Edition.
Most Web sites offer some sort of personalisation features, which are usually hand-coded. Are there any features in ASP.NET 2.0 that can help create personalised web sites?
Web sites these days often need to provide rich, custom experiences for their users. In ASP.NET 2.0 we provide a Web Parts infrastructure and personalisation engine to help enable this. First, developers can easily define strongly-typed user profiles that will be automatically maintained. Second, with Web Parts, users can easily customise the layout and components of a site, by adding, removing, and moving the Web Parts around. Think myMSN.com, but with little to no code to make it happen.
Creating data-driven web sites can be cumbersome using ASP.NET 1.x - are there any features planned to make this easier in this release?
Part of achieving the goal of increasing developer productivity means reducing the amount of code needed to do data access. We've introduced a number of new controls, including the GridView control, to help facilitate this. New code-free databinding makes it easier to connect databound objects up to backend data. With ASP.NET 2.0, I can wire-up a GridView, using the ObjectDataSource, through a middle-tier business object with no code at all. Best of all? I get paging, sorting, selecting, editing, and deleting as well, all with no code. You'll find this kind of simplicity throughout the entire new data access model.
What kind of architecture, upgrade and porting issues should developers expect as they move from ASP.NET 1.x to 2.0?
We've worked really hard to make sure all ASP.NET 1.0 and 1.1 sites will work when running under ASP.NET 2.0. Visual Web Developer 2005 Express Edition and Visual Studio 2005 have an upgrade wizard that will easily move your existing code to the ASP.NET 2.0 format so that you can begin adding new functionality right away. The process should be simple and seamless.
Will the ASP.NET Web Matrix project be updated with the release of ASP.NET 2.0?
ASP.NET Web Matrix is an unsupported tool released to help ASP.NET evaluators, hobbyists and enthusiasts get started building Web applications. The ASP.NET Web Matrix project was an enormous success for us, with over 1.5 million downloads, we were able to gather a ton of feedback and learn what it is that Web developers are looking for from their tools.
Visual Web Developer 2005 Express Edition, on the other hand, is a member of the Visual Studio 2005 family. Most of the lessons learned, feedback and top features from ASP.NET Web Matrix were integrated into Visual Web Developer 2005 Express Edition during development, as well as a lot of other added functionality. Users will be able to seamlessly move from ASP.NET Web Matrix to Visual Web Developer 2005 Express Edition.