I'm glad that Microsoft has branched out and offered so many options and possibilities in Visual Studio 2010 and ASP.NET 4.0. Microsoft, by extending ASP.NET Web Forms and ASP.NET AJAX, and by improving Silverlight and releasing ASP.NET MVC with full support for jQuery, has made a concentrated effort to meet a wide variety of different needs. These options might cause some wrangling as developers try to validate their own choices. However my hope is that when the dust settles, we'll look back on this release as offering developers the flexibility they need in making programming choices. For more information on ASP.NET Web Forms, see "ASP.NET MVC vs. Web Forms" and "ASP.NET Web Forms Aren't Evil."

I like to think of ASP.NET as serving two different needs: development of websites and development of web applications. Consequently, when thinking in terms of website development and application development, I tend to consider ASP.NET Web Forms (not ASP.NET itself) as a bit of a house boat—meaning that it's not a perfect boat, nor is it a perfect house. Site developers may complain about a leaky abstraction that tries to shield them from some of the complexities of their sites, while application developers might end up with a solution whose richness is hampered by the limitations of HTML.

The recent addition of ASP.NET MVC does a lot to address the needs of website development by providing an ASP.NET abstraction that's closer to the metal. However, Microsoft must also meet the needs of application developers if they want to sell more copies of Visual Studio, Windows Server, SQL Server, and grow the popularity of ASP.NET. As such, ASP.NET 4.0 delivers great improvements to Web Forms along with additional richness in the form of ASP.NET AJAX 4.0. Likewise, Microsoft also continues to aggressively pursue richer features and capabilities for Silverlight as well.

So, while my crystal ball is no clearer than anyone else's, I'm tempted to make a couple of predictions about what ASP.NET developers can expect in the future. Muddying the waters of my prediction however, is the fact that although I talk in terms of a website or an application developer, I realize that those roles could actually be performed by the same person in many settings.

First: I think that the majority of ASP.NET developers building websites (instead of business or SaaS solutions) will migrate to ASP.NET MVC over the next few years.

Second: I think that some application developers will begin using ASP.NET MVC for new projects and solutions. The draw for these developers will be a clearer separation of concerns (making applications that require frequent changes easier to manage) along with exponentially better testing support. However, the paradigm shift from being able to use a Grid View control along with post backs or ASP.NET AJAX to the “roll your own” approach of ASP.NET MVC and something like jQuery may cause some developers a fair amount of pain. Many of these developers might choose to go back to Web Forms or look at other options.

Third: I anticipate that many ASP.NET application developers will begin using Silverlight more extensively. These developers will probably still use Web Forms as their delivery mechanism (although they could use MVC). However, they will be drawn to Silverlight because it offers richer options and capabilities and comes closer to giving that rich Web Forms experience that ASP.NET Web Forms always wanted to be. Silverlight development is highly dependent upon tooling. So either Visual Studio 2010's tooling will work for developers to the point where they don't feel that they need much else, or adoption may be slow.

Fourth: I see a large body of application developers sticking with Web Forms for new projects and solutions. Web Forms remains a great solution for application development—to the point where many applications developers could try ASP.NET MVC and find they prefer Web Forms, with their long-standing accumulation of controls, libraries, and coding paradigms that developers have come to rely upon.

Fifth: We'll see some developers demanding the best of both Web Forms and MVC in a single package. Microsoft, for example, has already integrated ASP.NET MVC routing into Web Forms as a full-fledged citizen. Therefore, logical next steps might be to provide Web Forms developers with the option to use ASP.NET MVC's HttpContextBase (and friends) along with other abstractions that lend themselves more fully to mocking and unit testing (though such a simplistic suggestion doesn't come close to addressing some of the complexity that this would require).

With the release of Visual Studio 2010 and the .NET Framework 4.0 I’m excited about what lies ahead for ASP.NET developers. It will be interesting to revisit these predictions in a year and see how they have played out.