What do you do when you have a market-dominating product built from more than 50 million lines of code with a loyal customer base of subscribers who use it all day, every day, and you want to keep them happy? You upgrade it for free at incremental releases to address the pain points, and at a nominal charge at a full release to address new technologies and to make major enhancements. That's exactly what Microsoft has done with service packs to Visual Studio 2012 and now with the release of Visual Studio 2013.

Visual Studio users can fall into a range of categories (developers, testers, architects, and so on) and use a range of technologies (desktop, Web, cloud, Windows store, services, databases, and more). While there are competitors for almost every area where Visual Studio provides a solution, no single product competes with Visual Studio in all fields. The closest I can think of would be Embarcadero All-Access XE, which is more of a suite than a unified product.

The new release sports big improvements in application lifecycle management (ALM), including the ability to build, test, and deploy in the cloud via the new Team Foundation Service and integration with Windows Azure. You'll also find significantly better tooling for Web development with ASP.Net, as well as better support for JavaScript, HTML, CSS, and Python editing and debugging.

In short, Visual Studio 2013 brings not only a number of big improvements tailored to development teams, but also many smaller ones that will actually matter to working developers.

Team Foundation Service

Let's start with the new ALM features in Visual Studio 2013, which is where we thought we'd see the focus of this release back in June. The biggest ALM win from my point of view is that Visual Studio now supports Git in addition to Team Foundation Server's native version control. (Clearly, the Microsoft that added Git support to Visual Studio is not your father's Microsoft; ditto for support of Python, JavaScript, and jQuery. What's next, open sourcing the .Net Framework? Oh, wait -- that happened years ago, at least for the base libraries.)

One thing I don't like about Team Foundation Server is setting it up for a geographically distributed group. Performance can be a big issue, especially when the group spans the globe, as outsourced projects often do. There's an all-Microsoft solution for that: Team Foundation Service. As you might expect, it runs in the Azure cloud. As you might not expect, it's free for teams of five or fewer, and larger installations are included in the higher-end Visual Studio with MSDN subscriptions at no additional charge.

By the way, Microsoft maintains a release archive for Team Foundation Service that shows when certain updates appeared in the Service and the Server. From here on, when I refer to TFS, I mean both Team Foundation Server and Team Foundation Service. The capabilities are available in both the product and the service.

Build and test in the cloud

You can set up TFS to automatically build and test periodically or after every check-in. This is a big convenience and productivity enhancement, even compared to other commercial code-quality services, which usually make you check in separately after the acceptance criteria have been met and all tests are green. In addition, you can deploy successful builds to Windows Azure automatically using the InRelease component discussed below.

Speaking of Windows Azure, you can now create Azure sites and databases directly from Visual Studio once you've installed the current Azure SDK. It couldn't be much easier. When you create an Azure site from Visual Studio 2013, you get a placeholder site even before you deploy what you're building. Visual Studio remembers the Azure connection you create to make later deployment simple.

One hugely useful integration between the Visual Studio editor and TFS (including Git) is Codelens, which shows you version history comments in your code. Codelens also lets you know if you're working with code for which there has been a check-in since you last pulled from the repository. That eliminates a whole class of problems and duplications of effort that commonly crop up in areas of active development. I can't tell you how many times I've gone to check in a bug fix only to find that someone else has taken care of it.

Team Explorer, the client interface to TFS, is much more useful than it was before. Admittedly, that wasn't a high mark to beat, but Team Explorer now shows you what you need to know fairly quickly.

Using Team Room, an integrated chat capability in Team Explorer, can help keep your desktop clutter down, although many development teams will undoubtedly continue to use Skype, Google Hangouts, or their favorite chat program, despite any advantages of Team Room. Never underestimate the power of habits.

Microsoft acquired InRelease, a release management product built specifically for Team Foundation Server by InCycle Software, last July. InRelease, now integrated with Visual Studio 2013, Team Foundation Service, Microsoft Test Manager, and Team Build, enables a number of common release scenarios, including releasing on demand to a local or hosted VM, daily release for smoke testing, and continuous deployment. If you don't already have this kind of capability set up for your products with other tools, you might want to consider using the new release management features in Visual Studio 2013.

Next page: Smarter code editing