Biz & IT —

Visual Studio 2015 launches, with Android, iOS, and even Apple Watch support

.NET 4.6 is also out now.

Visual Studio 2015 launches, with Android, iOS, and even Apple Watch support

A few days ahead of the Windows 10 launch, Microsoft has released the latest version of its development environment. Over the last few years, Microsoft has been making Visual Studio into a tool for cross-platform development, with a mix of both first- and third-party components, and Visual Studio 2015 takes this to the next level.

Out of the box, a full install of Visual 2015 Enterprise includes support for C#, C++, Visual Basic, Java, F#, Python, JavaScript, PowerShell, Microsoft's JavaScript-based TypeScript, and SQL. It can target Windows and Android—during installation there's an option to fetch and install the Android SDK—and with the included Xamarin libraries it also supports iPhones, iPads, and Apple Watches.

This makes for a hefty package; with all the options and all the third-party components, Visual Studio 2015 weighs in at 23GB. Add local documentation and another few gigabytes are eaten up.

Oddly, there's one platform not supported: Microsoft's Windows 10 Universal App Platform. Although the Windows 8.1 Universal platform is supported, its Windows 10 iteration, which is more universal and will one day support both HoloLens and Xbox in addition to Windows 10 on PCs, tablets, and phones, isn't supported yet. The SDK for Windows 10 isn't being released until July 29, the same day that Windows 10 will have its retail release. In the meantime, developers wanting to build for Windows 10 have to stick with the Visual Studio 2015 Release Candidate.

The development environment itself has seen some love. The C# and Visual Basic code editors now use the open source Roslyn compiler framework behind the scenes. This is an extensible framework that enables teams to create their own warnings and refactorings to meet their needs. Refactoring support in Visual Basic is a new addition to the IDE. The use of Roslyn allows much more complex rules to be incorporated into the text editor. Roslyn, as a compiler, gives extensions an accurate view of which classes are being used, which methods are being called, the types (and occasionally values) of the arguments being passed to methods, and so on. This enables some features that previously only worked at compile time—the FxCop style and correctness rules, for example—to be "brought forward" and implemented live in the text editor. Instead of being told about improper method usages when compiling, the Roslyn-powered system can warn of problems as soon as they're typed.

Roslyn-powered FxCop warning of a bad coding practice.
Enlarge / Roslyn-powered FxCop warning of a bad coding practice.

The languages themselves have been updated. C# is now at version 6, with perhaps the most widely used feature being a new string interpolation system for creating strings that embed the value of variables. F# is now at version 4, and the functional language has a range of features to make using it more uniform and a better participant in the .NET world; among other things, constructors are now first class functions, where handling of arrays, lists, and sequences has been made consistent, and the mutable syntax can be used "everywhere."

C++ standards conformance has been improved, though Microsoft has taken a hodge-podge of features and implemented them. Visual C++ supports large parts of C++ 11 and C++ 14 and some parts of the not-yet-finalized C++ 17 specs, but doesn't implement any of them in their entirety. My favorite new feature is undoubtedly polymorphic lambdas, which are new to C++ 14, but one important C++ 11 ("SFINAE") is still unimplemented. Progress is certainly being made since Microsoft started taking C++ seriously once more in 2012, but there's still some way to go before the compiler equals its peers in this regard.

Which is not to say that Visual C++ is without its merits. The debugger, already a strength of Visual Studio, has a new data visualization capability to make it easier to control how complex classes are shown during debugging. There's a new memory snapshot feature to help see where programs are using memory, and developers can now monitor GPU performance with a new GPU usage tool.

The C++ text editor also includes some refactoring support for the first time.

The cross-platform capabilities are many and varied. Android is supported a couple of ways. Native Android apps, in C++ and Java, can be built using the Android toolchain in the Android SDK. C#/.NET Android apps can be built using Xamarin. Both can be tested and debugged on Microsoft's high-performance Android emulator. This uses Hyper-V behind the scenes and both starts and runs faster than Google's emulator. iOS and Apple Watch apps are built in C#/.NET with Xamarin. Using Xamarin requires a separate Xamarin license, and building software for Apple's platforms requires access to a machine running OS X to run the Apple compilers.

A number of recent versions of Android are supported in the emulator.
A number of recent versions of Android are supported in the emulator.

Android, iOS, and Windows can also all be targeted with HTML/JavaScript apps built using the Apache Cordova framework.

The .NET framework has also seen some improvement and is now at version 4.6. There's a new just-in-time compiler for 64-bit platforms and a new ahead-of-time compiler for Universal apps. With this compiler, the resultant programs are native machine code and do not use the .NET just-in-time compiler to run. .NET 4.6 also has an improved garbage collector and support for SIMD instruction sets such as SSE and AVX.

As with previous versions of Visual Studio, 2015 includes improved collaborative development capabilities, especially when used in conjunction with Team Foundation Server. Native git support has also been enhanced to include better visualization of branches and a better view of a project's commit history.

Showing the git history of a project.
Enlarge / Showing the git history of a project.

Last but by no means least, the development environment also returns to using Title Case for menus instead of 2013's ALL CAPS.

Microsoft will continue its series of semi-regular updates to Visual Studio. Visual Studio 2013 Update 5 was also released today, marking five updates of varying sizes to the development tool. Some of these updates have been little more than bug fixes. Others have introduced a bunch of new features, such as new languages, greater parallel processing of compilation, and new ways of visualizing information when debugging. We'd expect a similar mix for Visual Studio 2015.

In all, this is a substantial update. It also introduces a new product lineup. Visual Studio Community 2015 replaces the old Express editions and supersedes Visual Studio Community 2013. The middle tier is essentially unchanged; Visual Studio Professional 2015 replaces Visual Studio Professional with MSDN. At the top, both Visual Studio Premium with MSDN and Visual Studio Ultimate with MSDN are replaced with a single Visual Studio Enterprise 2015 version. Existing Premium subscribers may be able to upgrade to Enterprise, representing a step up in capabilities. For former Ultimate users, the new edition represents a big price cut; $5,999 with a $2,569 renewal, as compared to $13,299 and a $4,249 renewal.

Channel Ars Technica