When you think ASP, think...
Recent Articles
All Articles
ASP.NET Articles
ASPFAQs.com
Message Board
Related Web Technologies
User Tips!
Coding Tips
Search

Sections:
Book Reviews
Sample Chapters
Commonly Asked Message Board Questions
JavaScript Tutorials
MSDN Communities Hub
Official Docs
Security
Stump the SQL Guru!
Web Hosts
XML
Information:
Advertise
Feedback
Author an Article

ASP ASP.NET ASP FAQs Message Board Feedback
 
Print this Page!
Published: Wednesday, November 21, 2007

An Overview of ASP.NET 3.5 and Visual Studio 2008

By Scott Mitchell


Introduction


On November 19, 2007, Microsoft officially released the ASP.NET version 3.5 and Visual Studio 2008. Like with the progression from ASP.NET 2.0 to 3.0, the features in ASP.NET 3.5 are additive, meaning that the core assemblies installed from the .NET Framework version 2.0 are still used by the 3.0 and 3.5 versions. The In short, ASP.NET 3.5 doesn't change or take away or break any functionality, concepts, or code present in 2.0 - it simply adds new types and features and capabilities to the framework.

Visual Studio 2008 is the recommended tool for developing ASP.NET applications. Unlike previous versions of Visual Studio, which were targeted to a specific framework version (i.e., Visual Studio .NET 2003 targeted ASP.NET 1.1 and Visual Studio 2005 targeted ASP.NET 2.0), Visual Studio 2008 is multi-targeted, meaning that you choose from a drop-down list whether to have Visual Studio 2008 build applications against the ASP.NET 2.0, 3.0, or 3.5 frameworks. Visual Studio 2008 also includes an improved Designer experience, JavaScript debugging and IntelliSense features, and the ability to view and even step into the core .NET Framework code during debugging.

This article provides an overview of the new features in ASP.NET 3.5 and the new web/ASP.NET-related features in Visual Studio 2008. Read on to learn more!

- continued -

Separating Out the New Framework Features


When a new version of ASP.NET is released, that means that a new version of the .NET Framework has been released. After all, the Web controls and page rendering logic that make up ASP.NET are implemented as classes in the .NET Framework. Yet the .NET Framework comprises much more than just ASP.NET. Consequently, a new version of the .NET Framework typically involves features that can be divided into one of three categories:
  • Framework Features Specific to ASP.NET. These are features that are key to ASP.NET development - new Web controls, for instance. When ASP.NET 2.0 was released, new ASP.NET-specific features included the GridView control and the declarative data binding controls (the SqlDataSource, ObjectDataSource, and so on).
  • Framework Features Useful to ASP.NET Developers. This class of features includes those that aren't specific to ASP.NET - they might be used by WinForms developers, too - but are commonly used by developers in building ASP.NET applications. The .NET Framework 2.0 introduced Generics, anonymous types, and improved strongly-typed DataSets, none of which are ASP.NET-specific, but are commonly used by ASP.NET developers.
  • Framework Features Not Used by ASP.NET Developers. The .NET Framework includes many classes that are seldom or never used by ASP.NET developers, such as classes in the System.Windows.Forms namespace.
In this article we will examine the first two types of features. Keep in mind that this article serves as an overview; future articles will explore these various topics in much greater depth.

Before we get started, I wnat to point you to a .NET Framework 3.5 poster of commonly used types and namespaces (hat tip Paul Andrew). This poster can be downloaded as a PDF or XPS. In addition to the many namespaces and classes in the .NET Framework, the poster makes two things very clear. First, it illustrates just how much of the .NET Framework is not related to ASP.NET. Second, it illustrates the additive behavior of new .NET Framework versions. The following graphic highlights the features in .NET 2.0 and the features added in .NET 3.0 and then in .NET 3.5:

What's New in .NET 3.5

For more background on how .NET 3.5 is mere additional assemblies and functionality added atop the existing .NET 2.0 base, refer to Daniel Moth's blog entry, .NET Framework 3.5. Also from Daniel's blog, the Visual Studio 2008 Stack helps paint a clear picture with regards to the changes in Visual Studio, the programming languages, the framework libraries, and the CLR over time:

The Visual Studio 2008 Stack.

A Look at the New ASP.NET-Specific Features


It seems like everytime I turn around a new version of some technology is coming out, or some new way of doing the same old thing is in the works and therefore demands my attention. It's easy to feel overwhelmed with the never ending onslaught of new technologies. Fortunately, ASP.NET 3.5 is a rather minor upgrade from ASP.NET 2.0; that is, there are not that many new ASP.NET-specific features in the .NET Framework 3.5.

There are three new features worth noting in ASP.NET 3.5:

  • Integrated ASP.NET AJAX support,
  • The ListView control, and
  • The DataPager control
Prior to ASP.NET 3.5, Microsoft's ASP.NET AJAX framework needed to be downloaded and installed as an extension. With ASP.NET 3.5, however, the AJAX-related classes are built directly into the .NET Framework, making it easier to get started building rich, AJAX-enabled Web applications with ASP.NET. (For more information on using the ASP.NET AJAX framework, check out my article series, Building Interactive User Interfaces with Microsoft ASP.NET AJAX.)

ASP.NET 2.0 introduced a number of new data Web controls, including the GridView, DetailsView, and FormView controls. The GridView displays a list of records in a boxy, grid-like table. The DetailsView and FormView each display one record at a time, the DetailsView in a grid-like output and the FormView in a more fluid layout using templates. The ListView control is an update to the old DataList and Repeater controls, displaying mulitple records and providing functionality like the GridView, but allowing for a more flexible layout through the use of templates. The DataPager control operates as a sort of free-standing paging interface. In short, it renders a paging user interface - next, previous, first, last buttons, for instance - and is tied to a data Web control. The DataPager only works with those controls that implement the IPageableItemContainer interface, which (currently) includes only the ListView control.

For a step-by-step demo using the ListView and DataPager controls, check out Scott Guthrie's blog entry, The <asp:ListView> Control. Microsoft has also published videos showing how to use the ListView and DataPager controls.

An Overview of Framework Features Useful to ASP.NET Developers


The main framework feature in the .NET Framework version 3.5 is LINQ, which stands for Language Integrated Query. LINQ makes SQL-like syntax a first-class citizen in VB and C#, allowing developers to work with data using code that looks like:

// C# example...
List<string> productNames = from p in products
                            where p.CategoryID = 1
                            select p.ProductName;

LINQ simply defines a syntax for working with data. There are built-in Object Relational Mappers (ORMs) that will create the underlying framework to generate LINQ statements that operate against a database, XML, or an object layer. Scott Guthrie has a great multi-part tutorial series on using the LINQ to SQL ORM implementation.

Visual Studio 2008 provides full-IntelliSense support when using the LINQ syntax. The LINQ syntax is possible due to a number of new language features in C# and Visual Basic, including automatic properties, extension methods, and lambda expressions. (For more information on extension methods, see Extending Base Type Functionality with Extension Methods.) These features are a bit beyond the scope of this article, but will certainly be covered in future articles here on 4Guys.

New Visual Studio 2008 Features


Visual Studio 2008 offers an improved developer experience through a number of new features, including an improved Designer, more modern CSS editing options, and enhanced JavaScript debugging and development support. Visual Studio 2008 can target web applications to the .NET 2.0, .NET 3.0, or .NET 3.5 environments, meaning you can start using Visual Studio 2008 today to work on your ASP.NET 2.0 websites.

Let's look at each of these new features individually.

In previous versions of Visual Studio, developers can choose to use the Designer or the Source view when editing the visual component of an ASP.NET page. The Designer provides a WYSIWYG display of the page, whereas the Source view displays the actual markup of the controls. Visual Studio 2008 offers a new Split screen feature, which shows the markup in one pane and the WYSIWYG display in another. When in Split mode, adding content to the Designer automatically updates the markup in the Source view. Unfortunately, the inverse is not true. If you enter new markup manually into the Source view, you either have to save the page or click a button to refresh the Designer view.

With Microsoft's increasing commitment to AJAX, it comes as no surprise that Visual Studio 2008 offers much better JavaScript support. The design- and debug-time experiences have been greatly improved. When writing JavaScript through the Source view, developers are provided with the same level and functionality of IntelliSense support as they are accustomed to when writing server-side code. This includes IntelliSense support for both in-line JavaScript and for script referenced through external JavaScript files (i.e., script files referenced via syntax like <script language="javascript" src="fileName"></script>). As Scott Guthrie notes in his blog entry VS 2008 JavaScript IntelliSense, you can even add IntelliSense "hints" to your JavaScript functions using XML comments, just like you can with C# and VB code. Scott also has a blog entry highlighting Visual Studio's JavaScript debugging capabilities.

Finally, it's worth noting that Microsoft recently announced that they would be releasing the .NET Framework code the the public under the Microsoft Research License (MS-RL). What's especially cool is that you can point Visual Studio 2008 to a URL that contains the debugging symbols for the .NET Framework, at which point you can step into the .NET Framework code through the debugger. This should provide developers with a deeper understanding of what's happening underneath the covers of the framework.

At the time of this writing, it doesn't appear as if Microsoft has made these debugging symbols available at a public URL. Once the URLs are made public, however, developers can point Visual Studio to them with a few clicks of the mouse and start exploring the internals of the .NET Framework. For more information on this feature, see Scott Guthrie's blog post, Releasing the Source Code for the .NET Framework Libraries

Conclusion


The new versions of Visual Studio and ASP.NET add some interesting and overdue features. With ASP.NET 3.5, Microsoft has moved the ASP.NET AJAX framework from a stand-alone extension to part of the .NET Framework, and has rounded out its data Web controls offerrings with the addition of the ListView and DataPager controls. Visual Studio 2008 includes enhancements to the web developer experience, including a richer Designer, enhanced CSS editing capabilities, JavaScript IntelliSense and debugging, and the ability to mutli-target framework versions. Future articles on 4Guys will delve into these assorted topics in greater detail. Until then...

Happy Programming!

  • By Scott Mitchell


    Further Reading:


  • Download Visual Web Developer 2008 (Free!)
  • Essential ASP.NET Downloads (includes links to download the .NET Framework version 3.5 and Visual Web Developer 2008)
  • A Summary of New Features in ASP.NET 3.5 and Visual Studio 2008
  • The <asp:ListView> Control
  • The ListView Web Server Control Overview
  • The DataPager Control
  • A Multi-Part Tutorial Series on Using LINQ
  • Stepping Into the .NET Framework Code
  • Videos Highlighting Features and Functionality of Visual Studio 2008 and ASP.NET 3.5
  • VS 2008 JavaScript IntelliSense
  • VS 2008 JavaScript Debugging
  • Extending Base Type Functionality with Extension Methods


  • ASP.NET [1.x] [2.0] | ASPMessageboard.com | ASPFAQs.com | Advertise | Feedback | Author an Article