The 800-Pound Code Gorilla
Visual Studio 2005 is packed with features, but is it too much?
When Microsoft launched Visual Studio 2005 (VS 2005) last November, developers were excited about the myriad new features and functions. However, many shops haven't even gotten around to using some of the most highly touted features, like the Visual Studio Team System (VSTS) for managing the development lifecycle or the Code Snippets and ClickOnce technologies.
Microsoft may have loaded up its latest integrated development environment (IDE) with more features than anyone knows what to do with, so the trick is to find the most appropriate version. Microsoft released several versions of Visual Studio: Standard, Professional, Express, VSTS and Office System. The idea was that developers could pick the tool that best fit their needs.
The most publicized version--VSTS--is Microsoft's answer to lifecycle management tools like IBM's Rational line. Designed for larger shops with multiple developers working on complex projects, VSTS supports many development roles, such as project managers, software testers, infrastructure and software architects, IT managers and development-focused partners.
Visual Studio 2005
$799 (Professional Edition) to $10,939 (Visual Studio Team
Unfortunately, the cons of VSTS can outweigh the pros. The main drawback is
price. Visual Studio Professional Edition costs $799. The price tag for VSTS
is a whopping $10,939. "If you had a team of 50 .NET developers creating a framework
and class structure in some big implementation, I think [VSTS] would make sense,"
says Walter Crosby, a developer at Everyday Wireless in Concord, Mass. "But
for a small shop, I just don't see it. The cost is just outrageous."
Even for companies large enough to justify the investment, there are other drawbacks, says Craig Berntson, a Microsoft developer MVP for a Fortune 100 firm. Berntson says his company uses VSTS, but only in a limited capacity. "If you're in a large company, you need a tool that will support everything and handle multiple platforms," he says. "The tools [in VSTS] are geared for Microsoft tools and platforms. Yes, they have J#, but it's still going to compile to .NET rather than Java runtime, so it won't be portable across different platforms."
Integration Tops the List
VS2005 is still a marked improvement over the 2003 version, however. Developing
.NET applications with Microsoft's latest IDE is easier and faster. "The SQL Server
integration is one of the biggest things you get in 2005," Berntson says. "I've
already had to write some CLR code for SQL Server, and it's pretty cool how you
can do that." He also cites the improved management.
Crosby agrees, but has yet to take full advantage of this. "The fact that you can connect a data source and identify a standard query that you're going to use and have it generate code is pretty cool," he says.
One reason Crosby hasn't used it yet is that he often finds VS 2005's code generation a bit flaky. "I've had to create some data adapters and it only generates the insert command, not the delete command or the update command," he says. "The solution, people say on the message lists, is to create your own code and attach it, but it's a lot of code to write."
Because of this quirk and the fact
that VS 2005 includes more compiler-generated code than 2003, Crosby finds the new show-all command extremely valuable. "If you create a data source now and link it to a table in a database, you can have it generate a data adapter and all the 'add,' 'insert,' 'update' and 'delete' code," Crosby says. "Visual Studio hides that code behind data definitions, but if you wanted to see what's there, you can just click the show-all
and it will show you all the compiler-generated files behind there."
The debugger is another key factor for Crosby. "The debugger in Visual Studio 2005 is fantastic," he says. "I've debugged everything from Web apps to Windows apps and Web services with a client accessing a server, and I wouldn't want to do it any other way."
The new ASP.NET functionality is a big draw for Berntson. "The ASP.NET stuff is way better than in 2003," he says. "It's a lot easier to develop the Web site, it's faster, you have to write less code and the personalization stuff for ASP.NET is pretty cool. That's a main reason to go to 2005."
Code To Go
Another of VS 2005's highly touted features is Code Snippets, a library
containing more than 400 chunks of reusable code for common programming tasks.
Berntson says he doesn't use the library because he feels it defeats the purpose
of object-oriented programming.
"The idea of object-oriented programming is that you want to write objects that handle everything and only have the code in one place," Berntson says. "With Code Snippets, you're going to have code spread all over. It's like going back to VB 6 applications where you cut and paste a lot. I don't see the point."
Studio 2005 Wish List
While VS 2005 is a major upgrade over the
2003 version, there are still a few more things users would
like to see:
- More Documentation:
VS 2005 has so many classes and namespaces, it's difficult
to find the best set for the job. Developers would like
to see more comprehensive documentation and books devoted
specifically to the new version.
- Faster Speed: Visual
Studio is slow, especially when first opening a project.
VSTS is even slower. Developers would like to see more emphasis
- Help files: VS
2005 includes HelpStudio Lite Authoring Tool, a lightweight
tool for building help files within the IDE. "Dealing with
help files appears to be an afterthought," says Walter Crosby,
a developer at Everyday Wireless in Concord, Mass. "They
need a better tool."
- Multiplatform support: VS
2005 is geared primarily at Windows-centric shops. Large
organizations with multiple platforms to support find it
less than adequate in many cases.
- Lower Price: Although
VSTS is a great tool for managing the application development
lifecycle, it's too pricey for all but the largest shops.
Similarly, developers have yet to fully embrace ClickOnce, VS 2005's new technology
that's designed to make it easier to deploy and update Windows forms applications.
"ClickOnce works great if you're in Microsoft-only environments, but not if
you have to go to multiple platforms," Berntson says. "You're not going to want
every user to just willy-nilly update the application when they need to. You
need to centralize that because IT needs to control it all."
Complexity is another issue for VS 2005. "For me, it's the number of classes it supports," Berntson says. "It's really hard to drill in and figure out what classes and namespaces you need to use." Since there's a lack of good documentation on the tool, he tends to find most of his answers on the Internet. "Since you never really know which namespace and class to go into, the best thing is to just Google a question. Even if you don't use the code you find that way, it gives you a good idea of the direction you need to go."
The lack of documentation is a big surprise to Crosby as well. "I have yet to see a good book on Visual Studio 2005." Although he has attended every Webinar he could find, it's still difficult to know the product inside and out. "When you do your first setup, install or deployment project, you're flying blind."
The Need for Speed
Developers are less than excited about VS 2005's performance. "Visual
Studio 2005 is really slow. It takes a while just to open things," Berntson
says. One of the worst performing aspects, he notes, is the online help. "It
tries to find stuff online before it brings up anything. Conceptually, it's
good because it gives you more resources, but it's a lot slower."
Crosby says he's even seen performance hits during seminars run by Microsoft
showcasing VSTS. Each time the Microsoft rep did a command like assigning a
new work task, he had to wait several minutes. "I can do five things in the
time it takes to set up one work task in Team Services," Crosby says. "I don't
know what they'll do to speed it up but they have to do something."
Still, VS 2005 is the best tool for Windows for now. "If you're a straight
Windows shop, it's going to improve your productivity," Berntson says. "You'll
do things faster and write less code. Plus, they've improved the ability to
bind your user interface to business objects rather than directly to your databases,
so you can really get your multi-tiered applications going the way they should
be. It gives you far more flexibility."
Despite its shortcomings, Crosby agrees. "I wouldn't want to build Windows apps without it, and I wouldn't want to try and debug Windows apps without it," he says. "Maybe by the time the next version comes out, I'll be starting to use all the features that are supposedly there."