I go way back with Visual Studio, all the way to its genesis, in fact. In December 1996 I attended the reviewers workshop for the first Visual Studio version (then codenamed "Boston") and I later wrote two books about Visual InterDev, the Web development application that shipped with the first two versions of Visual Studio (1.0 and 6.0, go figure). I also wrote a book about Visual Basic 6.0 (a follow-up to my VB 3.0 and 4.0 titles). Since those early days, Visual Studio has improved dramatically, with a common integrated development environment (IDE) that spans all of the tools, the introduction of a powerful new .NET-based programming language (C#) and the .NET Framework, and other amazing features.
Visual Studio has also gotten somewhat fragmented: There are a confusing array of product editions, and, until this new version, it seemed that Microsoft had forgotten the grass roots enthusiast support that had made its developer products popular in the first place. There's no need to rehash the pain that people experienced while Microsoft tried to move its customers from Visual Basic 6.0 to the .NET versions of the product, but suffice to say, there's a certain crowd, similar to Southern Secessionists, who will forever refuse to acknowledge that things have changed. They have.
In April 2003, Microsoft shipped the previous version of Visual Studio, dubbed Visual Studio .NET 2003. This product was tied to the release of Windows Server 2003, and was considered a minor upgrade. Visual Studio .NET 2003 offered deep integration with major new Windows Server 2003 features such as UDDI, Web services, and the .NET Framework. (Windows Server 2003 was the first Windows version to ship with an integrated version of the .NET Framework.)
Today, Visual Studio 2005 is a thoughtfully-designed and professional developer environment that bridges a number of technologies somewhat effortlessly, giving developers unprecedented capabilities for creating Windows applications, Web services, Web applications and sites, and other software projects. Of course, it took Microsoft much longer than expected to deliver this product suite. Microsoft tells me that's because the level of integration they're offering throughout all of the Visual Studio products, and with SQL Server, is particularly audacious. "When we started this [integration], we had no idea how to do it," said David Campbell, the general manager for SQL Server at Microsoft. "These are foundational, or watershed, releases, and we will capitalize on them going forward. It took longer than we expected, but we did a lot of learning in the process."
Understanding the product editions
These days, Microsoft is SKU-happy (where each SKU, or Stock Keeping Unit, represents a discrete product edition). You see it in Office, you'll see it in the next version of Windows (see my showcase about the Windows Vista product editions), and today you see it in Visual Studio 2005 as well.
In Visual Studio 2005, Microsoft has increased both the breadth and depth and its product lineup. On the low-end, there are new Express Editions of Visual Basic, Visual C#, Visual C++, and Visual J#, as well as a new product called Visual Web Developer (think of it as a new version of Visual InterDev) that will be offered very cheaply and address the enthusiast/individual developer/student markets.
At the high end of the market, Microsoft now has three other new Visual Studio versions: Team Edition for Software Architects, Team Edition for Software Developers, and Team Edition for Software Testers, and above that, its Team Foundation Server, a server-based product that provides version control, work item tracking, and build automation.
In the middle of the product lineup, are the more obvious Standard and Professional Editions of Visual Studio 2005 and most of the standalone products (Visual Basic, Visual C#, Visual C++, and Visual J#).
Confused? You're not alone. But at least Microsoft is addressing virtually every part of its customer base this time around. Let's take a closer look at the product editions.
Visual Studio 2005 Express Editions
While many college students and teachers will be able to purchase the Standard or Professional editions of individual Visual Studio products (like Visual Basic 2005 or the suite itself) at a steep educational discount, the new Express editions are a fantastic way for anyone to investigate software or Web development. The products target hobbyists, enthusiasts, high school students, and small businesses, with versions of the core Visual Studio products that are more approachable and less bloated than the full product suites. There's no Visual Studio 2005 Express Edition per se. Instead, you can pick up Express Editions of Visual Basic, Visual C#, Visual C++, and Visual J#. Plus, there's the new Visual Web Developer I mentioned previously and a free version of SQL Server 2005 called SQL Server 2005 Express Edition (see Part 2 for details).
What's really cool is that each of these products includes a number of amazing Starter Kits, which are pre-built applications that new users can learn with. But the Start Kit applications aren't just for show: They are fully-realized and absolutely useful as real-world applications, and Microsoft expects to see a wide range of freeware and shareware offerings that build off of the Starter Kits. For example, Visual Basic 2005 Express Edition and Visual C# 2005 Express Edition both come with Starter Kits for building a screensaver and a movie collection application.
Each of the Express Editions also includes a wealth of tutorials and getting started documentation, and links to community resources, such as newsgroups and Web-based forums. During install, you can optionally download and install the MSDN 2005 Express Edition Library, which includes the full suite of documentation for each Express product, which is aimed more at the learning developer than is the traditional MSDN Library documentation. Some of the documentation even points to video and presentation content on the MSDN Web site, which is particularly valuable.
As I noted in a Windows IT UPDATE commentary earlier this year, Visual Web Developer 2005 Express Edition is particularly awesome. I've switched from the editor in Microsoft FrontPage 2005 to this product for my own Web-development projects and am happy to once again be ensconced in the warm and capable hands of Microsoft's best code editor. Visual Web Developer 2005 Express has two huge improvements over FrontPage: First, you can expand and contract code segments, leaving open only the parts of the code you need to work on. Second, you don't need a Microsoft IIS Web server to create a local Web site. Yes, Visual Web Developer 2005 Express Edition works with IIS, FTP, and Windows SharePoint Services sites, but it can also create a full-featured Web site from an empty Web folder. Finally.
So what are the limitations of the Express Editions, you ask? You can't access remote data; these versions use only a locally installed data source (including the free SQL Server 2005 Express Edition). There are no mobile device development features in VB Express, Visual C# Express, or Visual C++ Express; you must upgrade to Visual Studio 2005 Standard Edition to get those features. And all the high-end features from the Visual Studio Team System editions (see below) are missing, of course, including application and code modeling, unit testing, static code analysis, and the like.
The Express Edition products will retail for just $49 each. This is a stunning bargain for any aspiring developer, and while Microsoft doesn't expect these products to generate much income for the company directly, it does believe that they will open up its development products to a much wider audience. "This is really about broadening the [user] base," said Microsoft Senior Vice President Eric Rudder. "We're trying to make the Microsoft commercial ecosystem bigger. These low-cost, approachable products will help hobbyists and students learn new skills in a simple and enjoyable way."
Visual Studio 2005 Standard Edition
Visual Studio 2005 Standard Edition is the mainstream, entry-level development suite aimed at occasional developers who need to create Windows applications, mobile applications, or Web pages and Web applications. It includes all of the standard Visual Studio languages--Visual Basic, C#, C++, and Java/J#--and can be thought of as the combination of all Express products with remote data support added (but without remote debugging or server-side development features).
What's missing, when compared to Professional Edition (below), is support for the aforementioned remote server development and debugging, and SQL Server 2005 integration. Standard Edition does let you perform local data access from within the traditional languages, and remote data access from Visual Web Developer. Also, Standard Edition features a simpler, more streamlined integrated development environment (IDE) than that found in Professional Edition, according to Microsoft, though I'm having trouble understanding what that means (I don't see any difference).
Standard Edition supports the new ClickOnce deployment scheme only, and the user interface is extensible via extensions. However, you cannot build Visual Studio extensions with Standard Edition. This version also supports SQL Server Reporting Services, but not Crystal Reports.
Standard Edition can target only 32-bit code. Visual Studio 2005 Standard Edition costs $299, or $199 for the upgrade version.
Visual Studio 2005 Professional Edition
Visual Studio 2005 Professional Edition is aimed at professional developers and builds off of the features found in Standard Edition but adds support for remote server development and debugging, and remote SQL Server 2005 development. That last bit is particularly important: In Professional Edition, SQL Server project types appear alongside those for Visual Basic, C#, and the other standard Visual Studio languages. Professional Edition also supplies the full Visual Studio development environment, not the streamlined version found in Standard Edition. Professional Edition ships with a copy of SQL Server 2005 Developer Edition (see Part 2 for details).
Professional Edition supports previous deployment types as well as the new ClickOnce deployment scheme. Like Standard Edition, you can extend the Professional Edition IDE with extensions, but Professional Edition also lets you build Visual Studio extensions. Professional Edition supports both SQL Server Reporting Services and Crystal Reports.
Professional Edition can target both 32-bit and 64-bit code. Visual Studio 2005 Professional Edition costs $799, or $549 for upgrades.
Visual Studio Team System Editions
The company will also offer a new Visual Studio 2005 Team System, which is designed for application life cycle management, to subscribers of the upcoming Microsoft Developer Network (MSDN) Premium membership and will cut the cost of Visual Studio 2005 Professional Edition.
"With Visual Studio 2005 Team System, Microsoft introduces features and technologies to support application development through all phases of the software life cycle, from development to deployment," S. Somasegar, corporate vice president of Microsoft's Developer Division, said. "In addition, more accessible tools pricing for small businesses and simplification of MSDN subscription levels for our enterprise customers will enable Microsoft to deliver a complete development platform to satisfy developers at all levels."
I didn't evaluate any of the Team System products. But Visual Studio Team System includes all of the features from Professional Edition, and adds support for Microsoft Excel 2003, Word 2003, and InfoPath 2003 development (like Visual Studio Tools for Office, a separate product edition), mobile device development, code profiling, static analysis, unit testing, code coverage, and project management. Additionally, Team System includes source code control through a bundled copy of Visual Source Safe.
Visual Studio 2005 Team System start at $3191 and will include the upcoming MSDN Premium subscription. A server-based Team Edition offering, called Foundation Server, will cost $2799. And Team Suite, which combines Team Edition with Foundation Server, will cost $6382 and will include the MSDN Premium subscription.
New features in the Visual Studio 2005 products
Once you get past the admittedly confusing list of product versions, the next logical question to ask is: What exactly is new in each of these products? To answer this question, I've broken down the products into their individual languages, because certain languages get different additions, based on need and feature-set requirements.
Some improvements, of course, transcend individual products. For example, all languages that can create Windows applications now benefit from snap lines that help you line up user interface controls in the visual designer (Figure). There are also a number of new user interface controls to choose from in the Toolbox, including the new ToolStrip control, which lets you create Office 2003-style toolbars.
One of the biggest additions in Visual Studio 2005, of course, is ClickOnce, which lets you deploy Visual Studio solutions directly from within the IDE. But ClickOnce also solves the big problem with previous .NET-based application deployments, by eliminating the DLL version hell that could occur when specific application versions needed particular .NET DLL versions. Now, applications can be deployed via a network or the Web, securely and easily.
The development environment itself has been dramatically upgraded with new window layout management tools (Figure), an IDE navigator for switching between open windows in the UI, a live, Web-linked Start Page, and a new extensibility model.
Visual Basic 2005
With this version, Microsoft is reaching out to Visual Basic 6.0 developers while not actually addressing their core complaints about the company discontinuing their beloved programming language, which is free of the complexities (and power) of Object Oriented Programming (OOP) and class libraries. Nostalgia aside, Microsoft is right to move on with Visual Basic 2005. And, really, much of VB 2005 is similar to that of classic VB versions: While creating a Windows application, for example, you drag controls onto a, double-click a control to bring up the default event handler, and write code that handles events. It's the same basic theory. What you see in VB .NET and newer versions of VB, however, is all of the underlying code that makes up a project. In VB 6 and previous versions, you didn't see the code that created the main window of a typical Windows application. Now you do.
Here's what else is new in Visual Basic 2005. First, it's now possible to access many parts of the .NET Framework (and, indeed, many non-managed interfaces) in a simple manner using the new My namespace. From what I can tell, the My namespace is pure VB: Fun, simple, and obvious. Consider a simple example, in which you reference the user name of the currently logged on user. With the new My namespace, the code to access that information is literally this simple:
So you might display the user name in a message box, perhaps in response to a button click, with the following code:
The My namespace includes six simple classes--Application, Computer, Forms, Resources, Settings, and User--that should be fairly self-explanatory. It's a great addition that really harkens to VB's roots.
The second big feature is Edit and Continue, which should be familiar to VB 6.0 users, since that's where it comes from. Missing in action in VB .NET and VB .NET 2003, Edit and Continue is back, and it's better than ever. Basically, this feature lets you change code while an application is running in debug mode, letting you see how those changes affect the program in real time.
The next big feature is more pervasive IntelliSense, which rears its head in a variety of ways. If you try to reference an object that you haven't declared, the code editor will provide you with a blue squiggly underline underneath the object. If you hover over that code, a small yellow tool tip describes the problem. VB 2005 also supports a related AutoCorrect feature that provides a Smart Tag when you make obvious typing errors. So if you Dim a variable as a String instead of a String (or whatever), you can click the Smart Tag and apply the fix.
In another nod to VB 6.0, you can perform calculations in the Immediate window during design time once again. And for classic VB developers who are threatened by seeing all the code that is automatically generated for windows, forms, and other user interface entities, VB 2005 lets you display only your code, shielding you from that complexity. On the other end of the spectrum, VB now includes true operator overloading, bringing it inline with other .NET languages (and, arguably, removing one of the remaining arguments against this language's appropriateness as an OOP solution).
Visual C# 2005, Visual C++ 2005, and Visual J# 2005
Like VB, Visual C# 2005 adds Edit and Continue and a simpler debugger that includes datatips and debugger visualizers in-place so you can see how your data structures are changing during program execution. New language constructs include support for Generics, nullable data types, iterators, and anonymous methods.
Visual C++ has always occupied a strange place in the .NET lineup because of its non-managed code roots and historic wide use with Win32-based applications. In the 2005 edition, Visual C++ continues this bent, but gains a number of .NET-friendly features that bring it closer to the managed code world of Visual C#. For example, you can now use Visual Studio's friendly drag-and-drop Visual Designer to create application user interfaces, and use .NET-based data access, Web services, and printing support more easily. It's still not a complete .NET environment, however. For example, you cannot create ASP .NET Web forms in Visual C++ 2005.
Speaking of uneasy relationships, Visual J# 2005 continues Microsoft's Frankenstein-like tradition of combining .NET with Java. In this version, Visual J# is compliant with the Common Language Specification (CLS), ensuring that solutions created in this language can interoperate seamlessly with other Visual Studio languages.
Visual Studio 2005 is a solid upgrade to the world's best software and Web development environment, and one that enthusiasts and enterprise developer teams alike should find immensely worthwhile. As previously noted, Microsoft is never going to calm down certain VB 6.0 advocates, but the reality is that Visual Studio 2005 goes a long way toward answering their complaints without actually taking a technological step backwards and ignoring the strengths and advantages of .NET managed code. Regardless of which Visual Studio version you're now using, Visual Studio 2005 is a tremendous upgrade. And if you're interested in software development but never really knew where to start, check out the wonderful Express Editions. Microsoft really got it right this time.
On to Part 1: Visual Studio 2005
On to Part 2: SQL Server 2005 (Coming soon)