It may seem counterintuitive to say that ASP.NET is still at version 2.0 when VS2008 comes with version 3.5 of the .NET Framework, but it is true: the version number for the System.Web assembly in which ASP.NET sits has changed only in its minor version, from v2.0.50727.42 in .NET 2.0 to v2.0.50727.1434 in .NET 3.5. Rather confusingly, Microsoft decided to use the release of .NET 3.0 and .NET 3.5 to indicate the addition of new libraries to the framework rather than any specific updates to what was already there. Figure 1-1 shows the basic makeup of the .NET Framework 2.0 for ASP.NET developers.
November 2006 saw the release of .NET 3.0, a superset of .NET 2.0 in which the only change apart from the inclusion of interim bug fixes was the inclusion of the four WinFX libraries being developed in parallel for the launch of Windows Vista:
WF allows developers to write workflow-enabled applications. Or rather, having designed the workflows of an application, WF allows the developer to create the application directly, as a series of steps creating those workflows rather than as a set of objects that incidentally go through those steps.
A reworking of the web service and interoperability stack, WCF impacts ASP.NET developers through the way it implements SOAP, WSDL, and the WS-* set of standards previously implemented as Microsoft’s Web Service Extensions download.
WCS provides a new way for Windows users to provide their digital identity online in a simple, secure way. If you use Passport to verify your users online, you might consider replacing it with WCS at some point. However, the uptake on this so far has been slow.
Figure 1-2 demonstrates how the WinFX libraries are bolted onto .NET 2.0 to produce .NET 3.0. When Windows Vista was released two months later in January 2007, it included .NET 3.0 by default.
.NET 3.5 is again a superset of .NET 3.0 but with a bit more meat for web developers to chew on. Once again, at its core there is just a bug-fixed version of the .NET 2.0 runtime and core libraries, as shown in Figure 1-3, but on top of that are the following items of interest for web developers.
.NET 3.5 includes new versions of C# and Visual Basic .NET, with the majority of the new language features—anonymous types, lambda functions, anonymous methods, and more—being combined to support LINQ.
LINQ is a set of .NET extensions that allow the user to query, set, and transform data from any type of data source natively in C# or VB. For example, you could join the contents of a SQL Server table with data from an in-memory data table and put the results into an XML document in one line of code. It is very powerful, and is limited only by the types of data sources for which there is a corresponding LINQ library. Indeed, several third-party libraries are already in the works for less obvious data sources, such as NHibernate and SharePoint.
A companion to the core ASP.NET 2.0 library, System.Web.Extensions includes an updated version of the ASP.NET 2.0 AJAX Extensions download so that AJAX is supported out of the box with .NET 3.5, three new controls for ASP development—the
ListView, DataPager, and
LinqDataSource —and a new security feature called Client Application Services that allows your smart client applications to use a centralized user database on the Web using the same personalization methods as ASP.NET.