ASP.NET 3.5 Overview

ASP.NET 3.5 is the latest release of the Active Server Pages technology from Microsoft. The latest release of ASP.NET integrates with .NET Framework 3.5 and Visual Studio 2008 to provide a number of new features that help you create more powerful and flexible Web sites. Visual Studio 2008 is the primary platform for developing under ASP.NET 3.5, although third-party application development environments are likely to appear. One major improvement for Visual Studio 2008 over earlier versions is you can specifically choose the .NET Framework version for an application, allowing it to be used for older .NET 2.0 applications as easily as .NET 3.5 applications.

ASP.NET 3.5 includes all the core assemblies provided by .NET Framework 2.0 and 3.0, and adds several new features for the ASP.NET 3.5 release. This means that existing code written for .NET 2.0 and .NET 3.0 will function exactly the same way under .NET 3.5, but there are new capabilities that extend the framework considerably that are supported only under the new release. Although there are a number of minor improvements to ASP.NET 3.5, the two biggest new features are ASP.NET AJAX and LINQ.


ASP.NET AJAX integrates AJAX (Asynchronous Java and XML) with the .NET Framework to allow rapid creation of client-server Web pages and user interfaces. AJAX was available to users of previous versions of ASP.NET, but it had to be downloaded separately and installed as an extension. ASP.NET 3.5 integrates AJAX as part of the framework.

AJAX uses a set of small client-script libraries to provide faster client to server communications. By using JavaScript, browser-independence is provided (allowing browsers like Firefox and Safari to be supported as easily as Internet Explorer). DHTML is also part of the AJAX structure, providing more dynamic Web pages.

The key benefit of using ASP.NET AJAX is that part of a Web page's processing can be performed at the browser side instead of on the server, both offloading the server and providing faster response for the user. ASP.NET AJAX also allows for common GUI elements such as a progress bar to be driven from the client side, providing a friendlier user interface. The technology allows some clever tricks, as well, such as providing a partial-page refresh where only a segment of the Web page is updated based on user actions instead of forcing a complete page refresh from the server.

As part of the ASP.NET 3.5 AJAX support, an AJAX Control Toolkit is included that provides a collection of components along with many samples. The AJAX Control Toolkit includes an SDK to allow extension of the provided controls as well as easier development of new AJAX controls.

Language Integrated Query (LINQ) is part of the new .NET 3.5 Framework. LINQ allows for the creation of SQL queries without having to build SQL statements from strings as in the past. LINQ uses a C# and Visual Basic construct to allow for more direct SQL statement constructs within code. LINQ is a syntax specification with a build-in Object Relational Mapper (ORM) that creates a framework mapper for working against databases, object layers, or XML content.

A simple example shows how useful LINQ can be: instead of building up a complex SQL query using string segments pasted together, a LINQ query in the ASP.NET code can be as simple as:

List<string> musicCD = from t in titles

where t.Category = "Jazz"

select t.Title;

Integrating LINQ into ASP.NET 3.5 allows a developer to embed commands within an application that can quickly and efficiently query a table, group retrieved data and order it for better presentation on a Web page. The use of LINQ simplifies the construction of the SQL queries considerably, and eliminates a common cause of errors. Coupling LINQ queries with ASP.NET 3.5's new controls provide better graphic representations of data.

Else is New?

ASP.NET 3.5 adds more than just AJAX and LINQ support. There are a number of new controls added to the ASP.NET environment that simplify the display of data on a Web page, as well as provide the user with more flexibility in viewing and selecting data. While ASP.NET 2.0 added several controls for working with data on the Web (notably GridView, DetailsView and FormView), they were restricted in their capabilities and flexibility. Two new controls, ListView and DataPager, are new in ASP.NET 3.5 and are extremely useful.

The ListView control can be thought of as an extension of the older DataList and Repeater controls. The ListView control allows for the display of information in a manner that works cleanly with CSS styles, providing better control over the visual appearance of data on a Web page. ListView's most obvious application will be for Web pages showing a grid of images, such as photos or catalog items. Working with a CSS to define the overall look of a Web page, allows much more control over the layout of a page's content. Replacing a set of list static HTML tags, the ListView control creates a set of generated HTML tags that offer more complete control over the presentation of data on a Web site. The ListView control includes a set of templates that can be applied easily, or a developer can create a custom template.

Another new control with ASP.NET 3.5 is the DataPager control. When the user is to be presented with a set of data, you can use DataPager to provide page-by-page control, customizable by the Web user. For example, supposed the user queries a product catalog and retrieves 60 matches. Instead of displaying all sixty on one page, or forcing the page formats to support only 20 matches on three pages, DataPager allows the user to specify how many items to display and dynamically adjusts the output to meet that requirement. DataPager works with ListView to allow the ListView control to display a specific number of items, with page navigation built in automatically.

Support for several standard protocols has been added to ASP.NET 3.5, too. The most common protocols now supported are SOAP (a protocol for moving XML messages, SOAP is a foundation of the Web services protocol stack), RSS (Web feed format for frequently-updated content), JSON (JavaScript Object Notation, a data interchange format), and POX (Plain Old XML, which is actually XML with other specifications such as XML Namespaces, XInclude, XLink and Dublin Core.

Finally, there are some seemingly-minor additions that may impact some developers more than others. For example, ASP.NET 3.5 includes the ASP.NET MVC (Model View Controller) framework. MVC provides a structured model for separating components of a Web application into more logical components. MVC can make testing applications easier by allowing subsystem testing. Also part of the release is Dynamic Data Support, which allows for faster creation of data-driven Web sites. DDS is supported by Webforms as well as MVC, and may turn out to be a surprisingly important part of the .NET 3.5 update for those with dynamic data sources.

ASP.NET 3.5 may be a "dot increment" improvement over ASP.NET 3.0, but the features added in .NET 3.5 are notable and useful to those coding Web sites, especially allowing the use of client-server enhancements. The end result for most applications will be the movement of server-based processing to the browser, allowing the user experience to be faster and more immersive as well as responsive to immediate actions by the user.