In the past couple of years, building modern applications has been substantially more difficult because of the growing consumerization of IT. Users have changing expectations of applications. They expect applications to be simpler and to run on a wide variety of devices. Microsoft's latest release of its flagship development product, Visual Studio 2012, addresses the need to build a wide range of applications as well as embraces agile development methodologies. Built-in test tools help you create high-quality applications and bridge the gap between IT and developers. Team development capabilities make Visual Studio 2012 a unified Application Lifecycle Management (ALM) solution.
With that said, there's no doubt that the big draw to Visual Studio 2012 is the ability to build Windows 8 applications. In the keynote address at the Visual Studio 2012 launch, Soma Somasegar, Microsoft's corporate vice president of the Developer Division, noted there were 600,000 downloads of Visual Studio 2012. Certainly, Windows 8 development is a big part of the new Visual Studio 2012 release -- but that's not all. Visual Studio 2012 is a huge release with more features than I can mention in a single article. One of the most obvious changes is the fact that there's an all-new set of Visual Studio editions. For more information about the different editions of Visual Studio 2012, see the sidebars "Visual Studio 2012 Editions" and "Visual Studio Express 2012 Editions." Now, let's dive into some of the major new features that you'll find in Visual Studio 2012.
If you're used to any of the earlier editions of Visual Studio, one the first things about Visual Studio 2012 that will jump out at you is the new UI. I have to say upfront that I'm not fan of the new UI changes. I find the UI too flat and too dark for my tastes. It's not as easy to differentiate the toolbar icons from one another as it was in past editions. For a product supposedly following Windows 8 UI (formerly called Metro) design patterns, the UI delivers a monochrome experience with lots of black, white, and gray. The icons are small, dark, and not very intuitive. I understand that the idea behind the new UI look is to put the focus on the code, but personally I don't find that the changes help productivity. You can see the new Visual Studio 2012 IDE in Figure 1.
As Figure 1 shows, the icons have little differentiation and the labels for the menu items are all capital letters. For the most part, the positioning of the menu items is about the same, but you have to pay a lot more attention to what you're doing than in the past. At first, I found the all cap labels annoying but later got used to them. However, if you want the menu items to be uppercase and lowercase letters, check out the sidebar "Disabling VisualStudio 2012's All-Caps Feature."
Although there are some nice new features such as tab pinning, I think the UI is the weakest link in the Visual Studio 2012 release. Fortunately, the other features more than make up for any productivity hindrances caused by the UI changes. Without a doubt, the most important of those new features is the ability to develop Windows 8 applications.
Windows 8 Applications
It's no secret that the main reason to upgrade to Visual Studio 2012 is to develop Windows 8 applications. With the release of Windows 8, Microsoft announced the new WinRT framework, which is essentially a Windows runtime that works with devices using ARM processors. A new generation of Windows 8 and Windows RT tablet devices, including the Microsoft Surface tablets, is expected near the end of 2012. Visual Studio 2012 is the tool to develop applications for this new generation of tablet devices -- both Windows 8 x86 devices and the new Windows RT ARM devices.
Visual Studio 2012 lets you create Windows 8 applications using a variety of languages:
- Extensible Application Markup Language (XAML) with C# or Visual Basic
To create Windows 8 applications, Visual Studio 2012 includes a set of project templates titled Windows Store. These templates create a number of different application types, including Blank App (XAML), Grid App (XAML), Split App (XAML), Class Library (Windows Store apps), Windows Runtime Component, and Unit Test Library (Windows Store apps). You can see the new Windows 8 project types in Figure 2.
One thing you might not expect is that you need to get a Windows 8 developer license before you can create any Windows 8 applications. Fortunately, the Visual Studio 2012 Start screen has a link that starts a wizard that steps you through getting a Windows 8 developer license.
After you have the developer license, you can begin using any of the Windows 8 application templates to create a Windows 8 application. Project settings control whether the managed application will be targeted for the Windows 8 or WinRT runtimes. One of the coolest features for Windows 8 development is the inclusion of the new simulator for tablet development. The tablet emulator in Visual Studio 2012 is a lot like the phone emulators that were present in earlier releases of Visual Studio. The tablet emulator lets you test your Windows 8 tablet applications without needing to run them on a separate device. You can see the tablet simulator in Figure 3.
As Figure 3 shows, the tablet emulator presents a tablet-like screen. Moving the mouse simulates using the touch interface (assuming you don't have a touch-enabled monitor).
Visual Studio 2012 includes a limited version of Expression Blend. Expression Blend is a powerful design tool that lets designers modify the look and feel of applications, without requiring them to manually code XAML. The version of Expression Blend that ships with Visual Studio 2012 is only able to work with Windows Store projects. For some reason, you can't use it on other project types. When Expression Blend runs, it starts in its own window outside the Visual Studio 2012 environment, but it does pick up the files from the open solution. If you go back into Visual Studio 2012, the IDE will prompt you that the files have been modified.
Although Windows 8 developers will be interested in Visual Studio 2012, there's little doubt that the biggest audience will be web developers. Visual Studio 2012 has a number of new features that are important to web developers:
- HTML5. Visual Studio 2012 has full HTLM5 support. In addition, the IDE can recognize the version of HTML that you're using and adjust its IntelliSense and error-checking capabilities accordingly.
- Page Inspector. Possibly the most important new feature for the bulk of web developers, the new Page Inspector shows the line of code that was rendered on the server. Moving the mouse over different areas of the designer dynamically highlights the code that will be executed. This feature might be worth the upgrade on its own.
- ASP.NET Web API. Included in ASP.NET MVC 4 and ASP.NET Web Forms, the new ASP.NET Web API can help you build and consume HTTP services.
- Windows Azure. If you're a Windows Azure developer, you'll appreciate that Visual Studio 2012 can publish solutions directly to Windows Azure.
- IIS Express. In past versions of Visual Studio, the built-in web server had a number of incompatibilities with the production IIS servers that your web applications ran on. Visual Studio 2012 uses IIS Express as the default web server, eliminating most of the incompatibility problems.
Another important new addition to Visual Studio 2012 is the inclusion of LightSwitch. Formerly a separate product, LightSwitch is a template-based programming tool that enables rapid application development. One of the most significant new features in LightSwitch is the ability to output HTML5 client applications. With Visual Studio 2012, LightSwitch is now a project type. It's included in Visual Studio 2012 Professional, Premium, and Ultimate.
New Team Development Features
Visual Studio 2012 has a number of important team and productivity features. Some of the most important features include:
- IntelliTrace in Production. Developers typically can't debug production applications using a local debugging session, so reproducing, diagnosing, and resolving problems that happen in production can be challenging. With the new IntelliTrace in Production feature, the operations team can run basic PowerShell commands to activate IntelliTrace collectors to gather data, which they can send to the development team. Developers can then use the information to debug the application in a session that's similar to a local debugging session. IntelliTrace in Production is available only in the Ultimate edition of Visual Studio 2012.
- Task/Suspend Resume. This feature solves the perennial problem of interruptions. You're working on a given problem or bug, then someone needs you for something, so you have to get out of what you're doing -- and it takes another hour to get everything back. Task/Suspend Resume saves all your work, including your breakpoints, to Visual Studio Team Foundation Server (TFS). Later you can restore the entire session with a couple of clicks.
- Code review feature. The new code review feature lets developers send code to other developers for review. Enabling traceability can ensure that code changes have been sent to senior developers and that they've signed off on it.
- PowerPoint Storyboarding tool. This new tool is designed to help facilitate communication between developers and users. Using a PowerPoint add-on, developers can create application mockups that can help users communicate the features they want.
Microsoft .NET Framework 4.5
Like its predecessors, Visual Studio 2012 is accompanied by a new release of the Microsoft .NET Framework. Although the .NET Framework is no longer tied to the Visual Studio release, you need Visual Studio 2012 to take advantage of the new .NET Framework 4.5 enhancements. You can also target your projects for earlier releases of the .NET Framework. There are too many .NET Framework enhancements to list them all, but some of the most important changes include:
- Asynchronous support. Arguably the most important enhancement in the .NET Framework 4.5 is the enhanced ability to write asynchronous code. Asynchronous code keeps your application responsive while it performs CPU-intensive, I/O-bound, or other lengthy code calls that would otherwise tie up your application until the code runs to completion. Although writing asynchronous code was possible in earlier versions of the .NET Framework, it was a complex process involving threads. The new .NET Framework 4.5 streamlines the ability to write asynchronous code. Using the new async and await keywords, you call the asynchronous code the same way you call synchronous code.
- Portable Class Libraries support. The new Portable Class Libraries let you create managed .NET applications that run on multiple .NET platforms, including the .NET Framework 4.5, Silverlight 4 and later, Windows Phone 7 and later, .NET for Windows Store apps, and even Xbox 360.
- Task Parallel Library (TPL). The .NET Framework 4.5 includes enhanced support for parallel programming with the improved TPL. Previous versions of the .NET Framework sometimes forced serial execution of Parallel Language Integrated Query (PLINQ) queries. The new version fixes this problem, thus offering better parallelism.
- ASP.NET 4.5. This new version of ASP.NET provides support for HTML5, the WebSockets protocol, and the new asynchronous modules and handlers. There's also support for model binders in Web Forms. The model binders let you bind data controls directly to data-access methods and convert user input to and from .NET Framework data types.
As you might expect, the new .NET Framework 4.5 provides the latest versions of the different .NET languages, including C# 5.0, Visual Basic 11.0, F# 3.0, and Visual C++ 11. The C++ support now includes the full C++11 library. There's also support for the latest version of the Entity Framework 5.0. The Entity Framework provides an object-oriented layer over an underlying data source. Although the Entity Framework is no longer a part of the .NET Framework, it's built using .NET. You can get the latest version of the Entity Framework for Visual Studio 2012 using the Entity Framework NuGet package.
Developing Applications for the Future
Visual Studio 2012 is a product that needs to cater to the diverse needs of web developers, Windows desktop developers, Windows 8 developers, Windows Azure developers, and Windows Phone developers. Despite of these diverse requirements and a multitude of highly questionable UI design choices, Visual Studio 2012 remains the best-in-class development platform for Windows development. Visual Studio 2012's comprehensive set of development and debugging tools as well as its integrated unit testing and load testing tools can unquestionably help you develop high-quality applications.
For Windows 8 developers, this is a must-have release. For web developers, the Page Inspector and new asynchronous APIs make it a worthwhile upgrade. The inclusion of LightSwitch is definitely a bonus, and the new asynchronous support is a great step forward.
In his keynote address at the Visual Studio 2012 release, Somasegar noted that Microsoft isn't standing still with this release. The company intends to add value to Visual Studio 2012 at a regular cadence, with the first update scheduled for the end of 2012.
Read more: Top New Features in Visual Studio 2012