Visual Studio remains the heart of Microsoft's development tooling, tied to its MSDN service and providing a one-stop shop for development across the whole Windows family, from phone to cloud. That one-stop approach to development is going to be even more important with Windows 10, where Windows Universal Apps will be one binary in one store for everything from IoT devices to Xbox, and up to the new Surface Hub wall-scale screens.
Microsoft used to deliver a new Visual Studio every couple of years. That's all changed, with major updates every three months or so, and a new release every year. BUILD 2015 saw the company unveil a release candidate for the next big milestone, Visual Studio 2015. With final code just around the corner, it's a good time to sit down with the latest build and take it for a spin. If Microsoft is going to shake up Windows development, this is where it's going to start.
A cross-platform VS
Visual Studio used to be all Windows all of the time, but that's changing, and changing fast. While the various Android and iOS bridges for Windows 10 Mobile and Windows 10 won't be available for some time, Microsoft is making Visual Studio even more of a cross-platform development platform. Part of that comes from a deeper relationship with Xamarin, and part from the improved support for Apache Cordova-wrapped HTML5 applications. They're all really important, but if you're going to build apps that work on Windows, Android and iOS, you need support for native tooling in the development platform.
That's where Visual C++'s new cross-platform tooling comes into to play, with the ability to write native C++ code for Android on your Windows development system -- as well as debugging it in Microsoft's Android emulator with familiar Visual Studio tools. The Android tooling includes IntelliSense support for the Android APIs, all the way up to Lollipop. Code you're developing can also be targeted at iOS, although this isn't as mature as Visual Studio's Android support. Visual Studio 15's Android emulator is a big improvement over earlier versions, running in Hyper-V and supporting sensors plus the ability to switch between device types.
With an increased focus on cross-platform support, Windows developers aren't being left out; Visual Studio 2015 will be the best place to build and test Windows Universal Apps. While Windows 10 development requires you to download extra tools (and really needs to a Windows 10 development system), you can use the Universal App features to build common components for Windows 8 and Windows 10, as well as single binary Windows 10 Universal Apps.
Updating the languages
Microsoft has also update much of its language and compiler tooling. Visual C++ now supports much of C++ 11, and is adding support for key C++ 14 and C++ 17 features. The resulting changes bring Microsoft's C++ dialect much closer to the standard, making it easier to port code from one C++ implementation to another. Similarly, the .NET languages get an upgrade, alongside support for the new CoreCLR open release of the .NET runtime, with a focus on multithreaded and asynchronous applications.
An IDE needs to make things easier for developers, and Visual Studio 2015's compiler improvements are reflected in its code editor. There's more IntelliSense, improving code completion and assisting you in handling refactoring and debugging. One useful new feature takes C++ code and turns it into its own function, ready for reuse across applications.
Much of the .NET improvements are reflected in F#, as well as C# and Visual Basic. These changes make sense with the increasing importance of functional languages in microservices and their uptake in applications that need reliable, predictable, code -- making F# increasingly important in the financial sector. The language also gets new features, improving its integration with .NET and increasing its support for debugging asynchronous operations.
A new Visual Studio also means a new .NET release, and version 4.6 of the .NET Framework comes as part of Visual Studio 2015. It adds new APIs, as well as supporting the open-source .NET Core that's used by Xamarin and in Microsoft's Nano Server. Other .NET tools get upgrades, including ASP.NET and the Entity Framework data model (with increased support for Azure data services and for non-relational databases). There's also a new version of ASP.NET, with support for both the full Windows .NET framework and the cross-platform .NET Core release.
Improving the tooling
The biggest change in Visual Studio 2015 is probably the arrival of the new .NET compiler codenamed 'Roslyn'. Designed to offer real-time services to the Visual Studio IDE, Roslyn powers most of Visual Studio 2015's new editor features. One of the most useful is the new Light Bulb tooling, which brings together tools for refactoring code and adding fixes. By having a compiler running over your code at all times, you can quickly spot errors and are more likely to generate efficient code.
If you're using Visual Studio Online or Team Foundation Server, you'll get access to a new set of Code Lenses focused on managing team development. You can see what code has been changed, and by whom, with graphs to show code change over time. Changes can be tied to commits, and to builds, with commit history visible from your editor -- and with support for working across multiple branches, if you're using a continuous delivery methodology like Gitflow.
Microsoft is delivering a lot more in the way of live code analysis, too, with tooling that works across your own code and any NuGet packages you're using. There's also improved support for working with Microsoft platforms, so you get the advantage of best practices when working with Azure services, for example.
Better debugging tools should mean better apps, and Microsoft has fine-tuned Visual Studio 2015's debugging tools. It's easier to set conditional breakpoints, and to see performance details for an app - even when working with Direct X GPU code. The debugging tools also make it easier to work with XAML UIs, with tools to view live properties on UI elements, so you can see just which pieces of code affect which UI elements -- and how they interact in a running app. If you need to see how UI code performs, a timeline tool lets you drill into how an app interacts with UI elements and with network and disk operations.
Cross-platform applications are increasingly common, and increasingly complex, and the Visual Studio IDE is being updated to help you build cross-platform projects, and work on a wider range of devices. That means improved design tools to bring more user-experience tools into Visual Studio, with a new version of the Blend XAML designer.
The Visual Studio IDE itself also gets better touch support, so you can get more use from it on 2-in-1 devices, as well as improvements that mean it looks better on high-DPI screens. You' can also create your own custom windows layouts -- and save them for future use. That way you can have one layout for client code, another for web and server, and one more for UIless IoT apps, all available at the press of a key.
A new VS for a new way of working
There's a lot here, and a lot to like -- but perhaps the most important feature is that it's not set in stone. Like the last couple of releases, what we get at launch won't be all we get for the life of the product. Regular updates will add new features, and support new devices -- as well as changes in development methodologies and in chosen toolsets. That's a big change, and one that's as welcome today as when it first arrived.
Microsoft has been looking carefully at how DevOps and Agile work, especially in the light of how it's delivering Windows, its applications, and its cloud platform and services. This is a Visual Studio for the world of distributed teams and continuous delivery, for cross-platform apps and for shared development environments. It's a welcome evolution, and one we're looking forward to exploring further.