Hesam Seyed Mousavi, January 4, 2014
Microsoft delivers editing, debugging, deployment, project architecture, and ALM improvements stretching from Windows to Web development, from mobile devices to clouds.
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.
[ Work smarter, not harder — InfoWorld has tips and trends programmers need to know in the Developers’ Survival Guide. Download the PDF today! | Stay abreast of key Microsoft technologies in our Technology: Microsoft newsletter. ]
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
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.
Visual Studio 2013 (VS2013) is another release that adds important new technologies that I’ll touch upon shortly. Among the most visible are some cosmetic changes, such as more than 400 modified icons that update the UI to a more colorful Windows 8 look. Others changes are nifty code editing efficiencies that appeared first in Visual Studio Power Tools add-ons, but are now officially integrated and supported. For example, editing improvements such as in-line code navigation and automatic bracket completion. But my favorite code editing improvement is the new scrollbar behavior: “Bar mode” is the traditional scrollbar operation, while “map mode” is something seen only in a few editors such as Sublime Text. In the VS2013 implementation, a miniaturized representation of the entire file being edited appears in a thin window down the right side of the edit panel. The map highlights the section of code that your cursor is located in and allows you to zoom in, thereby facilitating navigation in a large source file.
Other code enhancements include the in-line Peek Definition view from the Go To Definition context-sensitive menu option, automatic bracket completion, and the ability to move blocks of code via the a keyboard shortcut (which can be changed in the Tools -> Options -> Environment -> Keyboard dialog). Check out Microsoft’s Visual Studio tips and tricks page for other useful keyboard shortcuts.
For Web development, the editor has been updated to support the latest HTML5 and CSS tags, and it is IntelliSense-enabled. And seeing how audio and video file elements dragged into the code window are wrapped inside appropriate HTML5 tag structures is a great help.
Another long overdue feature I was glad to see is VS2013’s ability to edit-and-continue native 64-bit application debugging sessions. Considering that the majority of new enterprise applications are 64-bit, this improvement finally brings the 64-bit development experience to parity with the 32-bit step-debugging tools we have come to expect in any modern IDE.
On the code management front, the latest Team Foundation Server is supported along with the addition of the Git distributed SCM that has all but replaced Subversion as the default open-source code-management solution. And very helpful code changeset pop-ups embedded within the code quickly show exactly who wrote what.
There are a host of Windows 8.1-specific support enhancements as well, especially in the development of XAML-centric applications. For example, the XAML editor now supports a comprehensive set of IntelliSense options ranging from data and template binding, to finding references and Go To Definitions, to better integration with Microsoft’s Azure Mobile Services for cloud-based hosting. Microsoft’s standalone Blend designer tool also includes better styling and timeline capabilities to help speed up XAML interface development. And VS2013 now provides XAML performance analyzers to measure responsiveness, energy consumption, memory, and other metrics. They are especially helpful, though, in diagnosing delays in responses.
Visual C++ has also received some well-deserved attention in VS2013, including better support for the C++11 specification (constructor delegation, explicit conversion operators, and variadic templates to name a few). A new Profile Guided Optimization leverages VS2013’s improved profiling tools by allowing you to refine your C++ program based on visualizing the hotter and colder code paths.
VS2013 also supports Office 365 Cloud Business application development. With rumors swirling that a fully implemented Microsoft Office suite will one day make it to Android and iOS platforms, this technology has tantalizing possibilities for easy Office-centric ALM across a variety of mobile platforms.
Web development is another area where VS2013 has made ample improvements. ASP.NET developers will be pleased to discover that they can comfortably mix and match whatever framework they prefer (MVC, Web API, WebForms) in the same project. Gone are they days of segregating Web applications based on framework boundaries. Now, all of these technologies can operate happily together under the same umbrella.
Another nifty feature that will elicit a nod of satisfaction from Web developers is the new Browser Link capability. Browser Link keeps the latest browsers such as Internet Explorer, Chrome, and Firefox in sync with your code, showing design and behavior code changes in real-time. You can finally say goodbye to unnecessary button clicks, keypresses, and manual page refreshes.
Many useful additions make this an attractive release, but writing Windows Store apps remains clumsy work.
For those who opt to use Microsoft’s Team Foundation Service, you will be able to manage team rooms for each project, easily generate large scale test plans for apps that live within the Windows Azure cloud, and create Work Item Charting to visualize what is most important to your dashboard needs (bug count, tasks, etc.). It’s impressive to consider that all these new features made it into a release only a year after the feature-laden VS2012 IDE became available.
Migrating to VS2013
I built a Windows 8.1 store application based on a sample that needed to be upgraded to the 8.1 configuration to take advantage of the new features in the operating system. I also built a JSON-consuming console application for testing purposes. Both were written, compiled, and run in less time than it took to install VS2013 on my PC.
Using the Nuget package manager now built into VS2013, I was able to easily locate and install the latest JSON package for my console application. I never once had to leave the IDE.
Even though I had no problems during my Windows 8 to 8.1 project conversions, VS2013 smartly urges you to back-up your projects before upsizing them. Of course, you already have your project assets backed-up, preferably to an off-site location, any time there is a change…right?
Debugging XAML and running the new performance tracking tools was also painlessly easy and very informative. Responsive UIs and routines that are less taxing on CPU (and, ultimately, battery charge) will no doubt be incorporated as a standard design practice as a result of the seamless debugging and testing integration that VS2013 offers.
Limitations and Future Improvements
Not everything in the IDE received an upgrade. Some of the minor issues I had in Visual Studio 2012 are still present in 2013, most of them regarding WinRT development. For example, creating a Windows Store account and authorizing an app for store deployment is still not an integrated experience. When launching VS2013 for the first time, you are given the option to sign in with your MSDN ID to synchronize your VS2013 environment settings across different computers, so the IDE already knows who you are.
Perhaps in the next release, Microsoft can take a closer look at how Apple enables the sign-up and issues of provisioning profiles in a few mouse clicks. Making this a simple, unified process will help increase the number of apps available in Microsoft’s online marketplace. Another problem is that when certificates are issued, they’re only valid for one month. Why? Apple’s certificates are valid for three months, and Android’s are valid for as long as the registered Android developer prefers.
Creating WinRT screens is also somewhat disjointed when bouncing between Visual Studio’s designer and the Blend tool. Seamless round-tripping between the two (or better yet, embedding Blend into the Visual Studio designer environment) would bring back the efficiencies (along with the “I’m a programmer, not a graphic artist” design aesthetics) of WinForms development.
I would also like to see Microsoft continue to expand its Team Foundation Service tools to capture ad hoc messages between developers, and allow for a playback/rewind function that assembles the code coupled with the conversations along the way. This will help new team members get up to speed quickly and understand how these interactions shaped the source code, especially at key decision points.
Having used both Apple’s Xcode and Google’s Android Studio, I find there’s a degree of flow in Visual Studio that those environments can’t match. The coding improvements made in VS2013 build upon and refine this nearly effortless development experience. The new code editor improvements keep code entry at parity with modern editors like Sublime Text, while the new Windows 8.1 features maintain VS2013’s dominance as the primary means to build the latest Windows programs. Even if you don’t develop Windows applications, download the trial and play around with the IDE (preferably on a decent Windows PC and not inside a slower Windows virtual machine). VS2013’s feature set and performance set the standard by which other IDEs should be evaluated.
If you’re using earlier versions of Visual Studio, including VS2012, or considering adding Windows 8.1 development to your armory, then upgrading to VS2013 is a no-brainer. The bevy of enhancements and new features justify the upgrade price or MSDN renewal. For those rare individuals who are getting into Windows development for the first time, Visual Studio 2013 can seem daunting given its extensive options and customization capabilities. But the investment is well worth the price to start using one of the best programming IDEs available today.
Source: Visual Studio Magazine