http://www.developer.com/

Back to article

What's New in Visual Studio .NET "Whidbey"


October 27, 2003

The next version of Visual Studio .NET isn't due to release for about another year, yet once again Microsoft has officially announced an early preview of the product for developers. Code named "Whidbey," this version promises much more in change than the last version, Visual Studio .NET 2003—changes within the tool, the languages, and the Framework. Microsoft products seem to have a history of catching on in their third version. Time will tell whether this is true for Visual Studio .NET as well.

It is interesting to note that when the first version of Visual Studio .NET released a couple of years ago, it was stated that "a programming language is just a language" and that the real power of .NET was in the framework. A tool such as Visual Studio was supposed to make using one language very similar to using any other language. As such, it didn't matter which language you selected; the end results would be virtually the same.

A few years have passed, and the theory of the language not mattering has gone by the wayside. Many developers are cheering this decision. With Whidbey, it is becoming clearer that different languages will have different focuses.

The Whidbey Objectives

For Whidbey, there were a number of objectives that led to the changes. These objectives were in the areas of making the development environment easier, faster, and richer for developers to use. You'll find that there are indeed a number of features in Whidbey that are easier to use than in current versions of Visual Studio .NET. This includes features ranging from the setting of tool and environment options to the binding of keys within the IDE.

You'll also find that the extensibility has been improved with the addition of new "My classes," new IntelliTask items, new code snippets, customized profiles (color schemes, key bindings, window layouts, and more), debugger visualizations, and new starter kits.

There are a number of changes that impact the specific languages in Whidbey—Visual C++ .NET, C#, Visual Basic .NET, and Visual J# .NET. There are other changes that impact them all. I'll outline some of the key things you'll see when you take a look at Whidbey. Before touching on each language, it is worth mentioning some of the changes to the IDE. I should also note that while I cover a lot of changes in this article, these are just a few of the changes.

Changes to the Visual Studio .NET IDE

There are a few subtle changes within the Whidbey IDE that will quickly become as valuable as such subtleties as IntelliSense. Additionally, you'll find that Microsoft has tried to do more than just step back—they have also tried to get out of your (the developer's) way.

Helpful Help and Startup Stuff

When you start Whidbey, you'll find that instead of being thrown into a startup screen that is loaded with everything you would ever want, other than your actual product, you will now be given a much cleaner environment.

There has been an effort to keep the project at the forefront of the IDE and the support easily accessible around the edges. For example, there is now a Getting Started Smart Pane rather than the tab in the middle of the editing area. Additionally, Whidbey is starting to incorporate more features to help you get started. This includes a number of QuickStart videos to help you with topics such as data, objects, and using some of the tools (such as the Code Stencil).

Although they are keeping the support and help files out of the way, this does not mean they are scaling back in what is provided. For example, Microsoft has been releasing more and more Starter Kits (see Q&A with Shawn Nandi on the ASP.NET Starter Kits). These starter kits, as well as other project templates, are being incorporated into the help features of Whidbey. Also included are a number of other Community Web Services, including helpful information from some third-party (non-Microsoft) places.

"Intelli-" Intelligent Stuff

One of the features of Visual Studio .NET that is quickly driving developers away from using NotePad is IntelliSense. Not to be bested, in Whidbey, IntelliSense is improved upon by the addition of an auto-correction feature. Instead of simply telling you something is wrong with those squiggly little red lines, Whidbey goes one step farther. You will be able to click on a control to see a drop-down list of suggested corrections for the error.

Going beyond IntelliSense, you get IntelliTask. Simply put, IntelliTask tries to simplify common tasks. There are a number of tasks that are done the same way nearly every time. IntelliTasks will help you by reducing the typing you need to do. IntelliTasks include things such as a switch statement, an if...else statement, iterating over an array, and more. Granted, these are simple tasks. IntelliTasks, however, will let you type a little less and help you avoid mistakes a little more.

If you want something more complex than IntelliTasks, you'll be happy to find the Code Snippets. Code Snippets will provide templates for more complex tasks.

Get It Your Way

It is often the little things that can be most annoying or the most talked about. For example, how code should be formatted can quickly become a debate at the religious level.

Whidbey will allow you to set options for how your code will be formatted. These will be set initially to the .NET coding guidelines; however, you will be able to change these to reflect what you want. Your changes can be applied to the file, project, or solution level. Additionally, you can share your settings with others. While you can make some customizations in the current version of Visual Studio .NET, Whidbey offers a preview window and more options.

Unix and Visual Studio .NET in the Same Sentence

Features such as the ability to save and load profiles for Visual Studio are also included. Even a better System window is included. What may surprise you is that within Whidbey you will find a Unix command window with support for things such as OpenMP and Pthreads. Interesting! Yes, a Unix command window within Visual Studio .NET.

The Visual Studio Whidbey Languages

The changes in the IDE are great, but many people are more interested in changes occurring within the different programming languages. As mentioned earlier, each programming language is being developed with its own focus. As such, within Whidbey, changes in one language may not be occurring in others. Each languages does, however, seem to have a few big changes.

Changes in Visual C# .NET

Visual C# is growing to be one of the more popular languages within Visual Studio. With Whidbey, a number of additional features have been added to Microsoft's implementation of the C# language. Many of these changes have already been discussed publicly as well as here on Developer.com. The key additions are:

  • generics
  • partial types
  • anonymous methods
  • iterators

A generic is a code template that can be applied to use the same code repeatedly; however, each time the generic is used, it can be customized dynamically for different data types without the need to rewrite any of the internal code. To learn more about generics, check out the article What Are C# Generics?, here on Developer.com.

Partial types is a simple concept that that makes it easier to write programs that stretch across multiple files. More specifically, partial types allow a single class to be created across more than one file. When the listings are compiled, the files are combined together.

There are a number of benefits to be gained by using partial types. This includes the ability to create or use code generators that keep the generated code independent of your customizations, the ability to have multiple developers working on different portions of the same class, and more. For more on partial types, check out the article What Are Partial Types in C#?, here on Developer.com.

Iterators are a third addition to Microsoft's version of the C# language. An iterator enables you to use an index on an object to obtain values stored within the object. In essence, this enables you to treat an object like an array. For more on iterators, see the article Using Indexers in C#, here on Developer.com.

The remaining new construct in C# is Anonymous methods. An anonymous method is code that is tied to a delegate. Rather than including this code in a separate method, however, it is included as a part of the delegate declaration. For example, the following code snippet is an anonymous function tied to the button.Click event: This would code within a Form declaration.

   ...   myButton.Click += new EventHandler(sender, e)   {         MessageBox.Show("What function is being executed?");   };   ...

While the new features in C# are not a part of the current official C# standards, they are being considered for the next release of the language standard.

Changes in Visual Basic .NET

Visual Basic .NET also has a number of changes. This includes the use of generics and partial types as were added to Visual C# .NET. Visual Basic .NET will not have iterators or anonymous methods included, this once again indicating that all languages are not the same in .NET.

Visual Basic .NET also will receive a few other changes. According to Ari Bixhorn, one of the most requested features for Visual Basic has been operator overloading. With the next release, this request has been filled. Also added are the addition of unsigned data types and the addition of XML code documentation.

The XML code documentation in Visual Basic will work similarly to how it works in C#. Lines marked as document comments can be automatically gleaned by the compiler and formed into XML documentation for the project.

Changes in Visual C++

For those using Visual C++ and wanting to continue its use into .NET, there are some serious changes that may not be overly obvious. With Whidbey, Microsoft stepped back and made the decision to start over with the .NET implementation of managed extensions. There was a desire to make sure what was being delivered to C++ developers would be enterprise-ready as well as solid for the future.

In the Whidbey release, you will find a number of additions as well. This includes Profile-Guided Optimization (POGO), the updated managed extensions, and enhancements to the Microsoft Foundation Classes (MFC). More importantly, Microsoft is showing in this release that they are continuing to support MFC. Microsoft has added to MFC with one of the more notable additions to MFC being full support for Windows XP themes.

For more information on some of the changes to Visual C++ Whidbey, you'll want to check out Kate Gregory's article "What's in Visual C++ Whidbey," here on Developer.com. This article will publish October 28th.

Changes in J#

The "other language" in Visual Studio .NET, J#, also sees a few changes in Whidbey. Among the changes to J# is the push to make it more compatible with Java. This includes the addition of Swing functionality as well as more key words for the Java language.

Changes in ASP.NET

ASP is not a programming language; however, it is also going through some changes. Rather than detail many of the changes here—such as Master pages, themes, new security features, and new data controls—there is an entire article focused on these changes. Check out What's in Visual C++ Whidbey to see the details on changes coming with ASP.NET 2.0.

It Is Just a Preview...

This article barely scratches the surface of the new stuff in Whidbey. There are also changes to the .NET Framework (currently planned as version 2.0) as well as a number of changes elsewhere. Over the next few days—as well as on an ongoing basis—you'll find a number of articles with many more details to the changes coming. This includes articles that go into more depth on the changes to ASP.NET, Visual Basic .NET, Visual C++ .NET, and more. You'll also learn about some of the new classes that have been added to the next release of the .NET Framework.

There are lots of changes coming and so far most of them seem to deliver on the objectives of the Microsoft's Visual Studio Whidbey team—easier, faster, more consistent, application development with improved performance. This is a "pre-beta" product at this time, so if you find something you don't like, it is possible it may be changed before the actual release.

About the Author

Bradley L. Jones is the Executive Editor for the EarthWeb Software Development channel. In addition to overseeing sites such as CodeGuru.com, Gamelan, and Developer.com, he has also published a number of books, including Sams Teach Yourself the C# Language in 21 Days.

# # #

Sitemap | Contact Us

Thanks for your registration, follow us on our social networks to keep up-to-date