Just over 20 years have passed since Microsoft first shipped Visual Studio, which bundled development environments for C++, Visual Basic, and its Java dialect J++. Since then, the languages have changed—only C++ remains, with Visual Basic replaced by its .NET namesake, J++ killed off in the courts, and C# and F# children of the 21st century—and the integration has improved—it’s actually one development environment instead of a different one for each language. Today, Microsoft is releasing the 11th version of Visual Studio: Visual Studio 2017, previously codenamed Visual Studio “15,” because its version stamp is 15.0.
Microsoft had four main areas of improvement in Visual Studio 2017: “productivity and performance,” mobile, cloud, and devops.
The first is apparent as soon as you install Visual Studio 2017: the installer is faster and should make installing only the features you need easier. The quickest installation should take no more than about three minutes. Visual Studio itself is also faster, especially when loading large C++ projects. Its startup time should also be less painful than in 2015. As well as opening faster, projects are also not quite as necessary as they were before; Visual Studio 2017 can sort of open a folder as if it were a project. This allows for editing and building of ad hoc directories full of code. This is great when working on codebases that aren’t primarily developed in Visual Studio.
The editing experience has been improved, with better, filterable IntelliSense, and a reworked “go to any symbol/file/type” feature.
C# and VB.NET developers are getting updated versions of their respective languages along with a compelling “live unit test” feature. As you edit the code, the live unit test shows which lines of code are covered by unit tests and whether those tests are passing or failing. Visual Studio 2017 will re-run the tests in the background so that the editor window shows a continuous view of whether your code passes its tests or not. Those developers also now have a “run to click” feature that looks roughly equivalent to the C++ “run to cursor” feature: It runs the program up to the chosen line and then pauses in the debugger, without needing to set any manual breakpoints.
C++ developers can enjoy better standards compliance, including some C++17 features, and support for CMake build scripts.
On the mobile front, Xamarin integration has been enhanced, with a previewer for Xamarin Forms and better IntelliSense for Xamarin Forms XAML. Plumbing mobile apps into cloud services is also streamlined, as adding a service will now pull in all the necessary dependencies.
Cloud services, and especially Azure integration, remain a development focus for Microsoft. Visual Studio 2017 syncs Visual Studio with .NET Core, supporting versions 1.0 and 1.1 of Microsoft’s (somewhat) slimmed down, cross-platform, open-source .NET runtime environment. .NET Core apps can be run and deployed on Linux and macOS, as well as Windows. Both .NET and .NET Core applications can be containerized for deployment using Docker. This support extends to Azure: Creating an app, containerizing it, and then deploying it on Azure is a matter of a few mouse clicks.
For devops, Git integration is improved. More Git functionality is exposed directly within the development environment, and Visual Studio now uses the Git executable, rather than GitHub’s libgit2. This means that Visual Studio can better track Git features going forward, and it also picks up some older features, most importantly SSH, that are normally taken for granted by Git users.
Microsoft is also trying to bring cleaner development and deployment workflows to databases, through inclusion of third party tools from Redgate. All versions of Visual Studio 2017 will include Redgate’s SQL search for searching for SQL across databases. Enterprise users will also get Redgate’s ReadyRoll Core, which enables source control management of database versions, and SQL Prompt Core, which provides IntelliSense for SQL code.
As well as Visual Studio 2017 itself, Microsoft has more for developers today. A new preview of Visual Studio for Mac adds support for .NET Core, bug fixes, and performance improvements. There’s also an update to the preview of Visual Studio Mobile Center, which adds support for building, testing, and distributing Xamarin and React Native apps, adding to the existing support for Objective-C, Java, and Swift.
Finally, Visual Studio Team Foundation Server 2017 is receiving Update 1, which, among other things, add support for npm packages.