Microsoft's flagship product for developers,
Visual Studio 2010, represents a substantial improvement over Visual Studio
2008, with enhancements to the tool's core functionality and its handling of ASP.NET, C#, C++ and VB. What's
more, along with the VS 2010 release Microsoft has updated .NET Framework to Version 4.
All told, I'm very pleased with the update, and am looking forward to switching
my own projects over from VS 2008 (and some that are even still on VS 2005). With that said, I think the ASP.NET elements of the IDE (integrated development environment) are lacking: AJAX is still missing from a lot of the product, and the
AJAX extensions that are available feel somewhat hacked. A lot of Web development takes
place on the client side these days, and while Visual Studio has solid support
for JavaScript, I suspect a lot of Web developers will still find themselves using other tools.

I tested Visual Studio 2010 Professional Edition, which is priced starting at
$799 for a full version or $549 for an upgrade version. Full information on the various
available editions can be found here.

Core functionality

One of the first enhancements to the IDE that jumped out at me was the capability VS 2010 offers for navigating
a call hierarchy. Over the years, many of us have discovered the important Go
to Definition and Find All References menu items, allowing us to quickly navigate through our
code. But we still often have to do a lot of searching if we're trying to trace
through the code during development. The Call Hierarchy window expands on these
concepts, giving us a way to drill down visually through the call references,
showing "calls to" and "calls from" a function.

The code editor has lots of improvements, partly because it now uses WPF (Windows Presentation
Framework). The zoom feature is nice. Now you can quickly zoom in and out just
like you can in a word processor such as Microsoft Word. And when you click on
a variable or identifier, every occurrence of the variable throughout the document gets a faint highlight
over it.

One really interesting feature is called Generate from Usage. Previous
versions of Visual Studio had a handy feature called Generate Method Stub. This
was activated through a pop-up menu when you typed a function call for a function that doesn't
exist. If you typed myfunc(2), the first letter would have a bar under it,
which would trigger a dropdown menu for the Generate menu item. Clicking it would create an
empty method based on the types in the function call. (In the case of
myfunc(2), the generated function would take a single integer parameter, for
example.) This feature has been expanded on for other identifiers besides
methods. For example, if I type this:

anothervar = 10;

then the "a" will have a bar under it with a dropdown menu with two options:
Generate Property
Stub, and
Generate Field
Stub, the
first of which creates a property (with a "set" and "get"),
the latter of which generates a simple private member variable, like so:

public int anothervar { get; set; }

and

private int anothervar;

Other improvements include enhancements to IntelliSense and improvements to the
live semantic errors (the squiggly underlines that appear in your code).

Jeff Cogswell is the author of Designing Highly Useable Software (http://www.amazon.com/dp/0782143016) among other books and is the owner/operator of CogsMedia Training and Consulting.Currently Jeff is a senior editor with Ziff Davis Enterprise. Prior to joining Ziff, he spent about 15 years as a software engineer, working on Windows and Unix systems, mastering C++, PHP, and ASP.NET development. He has written over a dozen books.