Channels ▼


What's New in Visual Studio 2010 & .NET 4 for Web Developers

Scott Guthrie is corporate vice president of Microsoft's .NET Developer Platform, where he runs the development teams responsible for delivering Visual Studio developer tools and.NET Framework technologies. Laurence Moroney is a Web Development Strategist at Microsoft, focusing on ASP.NET, Silverlight, user experience, Java, and PHP.

After what we think is an amazing engineering effort, Microsoft is ready to release Visual Studio 2010 with the .NET Framework version 4. The guiding principle behind Visual Studio 2010 and .NET Framework 4 is pretty straightforward: We wanted to simplify the entire development cycle, while at the same time making it easier for developers to unleash their creativity, and build quality applications.

Since the days of Visual Basic 1.0, we have aimed to deliver tools that let developers harness new technologies with languages and environments they already know. Visual Studio 2010 continues that tradition with integrated support for Windows 7, Microsoft SharePoint 2010, Windows Azure, and more. Built on .NET Framework 4, Visual Studio helps developers extend and transfer existing skills to new technologies, providing greater flexibility and power.

We've worked hard to make sure that Visual Studio 2010 and .NET Framework 4 have something for every developer, and this is particularly the case for those focused on Web development. This is where we'll spend the bulk of the time in this article, as we take a tour of some of the new features for Web developers. We'll start with a look at IDE improvements, then we'll go into some of the API improvements for ASP.NET Web Forms and ASP.NET MVC.

However, this is only a portion of the new functionality we've introduced in these releases, so check out for more information or to download the trial version.

Multiple Monitor Support

One of the first productivity improvements is multi-monitor support in Visual Studio 2010. In previous versions of Visual Studio, we joked that you could support multiple monitors, but you would have to do that by launching multiple instances of Visual Studio and running one on each monitor! With Visual Studio 2010, we've added real multi-monitor support, so you can "tear off" any window, such as a code window, and dock it in a separate monitor. So, for example, you can be running your application by stepping through the code in one window on one monitor, and looking at trace information on another. It's one of those features that once you start using it; you'll wonder how you lived without it!

Improved Intellisense

Intellisense is one of those great features that make using an IDE a real pleasure. With Visual Studio 2010 we've provided a subtle but wonderful upgrade to the Intellisense feature. In the past, when you started typing, the Intellisense window would look for methods, properties, or events that are available to you and that begin with the characters that you just typed. With the updated Intellisense in Visual Studio 2010, the characters will match any part of the available classes. So, for example, if you type cart, then Intellisense will find all available APIs where the characters are present, and provide some basic documentation on that API; see Figure 1.

[Click image to view at full size]
Figure 1: An example of improved Intellisense.

Note also that the search is sensitive enough to understand Pascal casing, so, for example, in Figure 1, we could have typed db.ATSC, and found the AddToShoppingCarts method.

The Intellisense improvements aren't limited to .NET -- you can also use it with JavaScript, including JavaScript libraries like jQuery. Figure 2 is example where you can see not only does the Intellisense pick up the available APIs for the myItem Var, but it also picks up the jQuery documentation as a tooltip!

[Click image to view at full size]
Figure 2: Using Intellisense with JavaScript.

This documentation is also fully customizable. In the case of jQuery, you'll see a file called "jQuery<version>-vsdoc.js" in your solution. Find the desired method (in this case load) and you'll see the <summary></summary> tags containing this documentation. Follow this syntax in your own JavaScript libraries, and you'll be able to provide intellisense and documentation tips in the same way.

load: function( url, params, callback ) {
///	<summary>
///		Loads HTML from a remote file and injects it into the DOM.  By default 
///           performs a GET request, but if parameters are included
///		then a POST will be performed.
///	</summary>
///	<param name="url" type="String">The URL of the HTML page to load.</param>
///	<param name="data" optional="true" type="Map">Key/value pairs that will be sent to the server.</param>
///	<param name="callback" optional="true" type="Function">The function called when the AJAX request is complete.  It should map function(responseText, textStatus, XMLHttpRequest) such that this maps the injected DOM element.</param>
///	<returns type="jQuery" />
  if ( typeof url !== "string" )
    return this._load( url );

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.