First Look Microsoft has released Visual Studio 2017, marking 20 years of the software development tool's, er, development.
Visual Studio 97 was released on March 19, 1997. It came in two editions, Professional and Enterprise, and included Visual Basic 5.0, Visual C++ 5.0, Visual J++ 1.1, Visual InterDev and Visual FoxPro.
Microsoft has released Visual Studio 2017
All these products had different IDEs so at the time the term “Visual Studio” was misleading; “Visual Bundle” would have been more appropriate. It should perhaps have been taken as a statement of intent, since integration did happen eventually (though Visual J++, Visual InterDev and Visual FoxPro dropped by the wayside).
It is also worth noting that Microsoft has never released a mainstream visual programming tool, as in a tool that lets you code visually. Rather, these are GUI-driven development tools. It is probably just as well, since visual programming never caught on despite brave efforts from the likes of IBM, with VisualAge SmallTalk.
Visual Studio, overall, was an immediate success. It meant that most Microsoft-platform developers had access to all the tools they needed, and it has proved effective despite persistent issues with performance and stability.
That said, there have been many changes of direction over the years. Tools have come and gone, a recent example being Visual Studio LightSwitch, a rapid development tool for database applications that deserved better, and suffered from ineffective marketing and documentation, as well as a dependency on Silverlight, Microsoft’s now-abandoned browser plugin.
What's new in Visual Studio 2017?
A highlight of this version is a brand new setup which is more modular than previous efforts. What this means is that the initial install is quick and lightweight, and you then add features as required. Experience with the pre-release versions confirms that this approach is quicker than the old monolithic setup.
Next, Microsoft is now keen on cross-platform development, and this shows throughout the new Visual Studio. Visual C++ can now target Linux as well as Android. The cross-platform version of .NET, called .NET Core, is integrated, and by checking a couple of boxes you can build web applications for Linux and debug them in Docker containers, from within Visual Studio.
Another aspect of .NET Core that will interest Visual Studio developers is performance, since it is faster than the full .NET Framework. However, porting an existing ASP.NET application is non-trivial, especially if you are using the old ASP.NET Web Forms rather than ASP.NET MVC.
The Xamarin tools for cross-platform mobile development with .NET are integrated, including a previewer for Xamarin Forms, which lets you define a user interface using XAML, Microsoft’s XML-based language. Xamarin Forms use controls native to each platform at runtime. You can now also target the Universal Windows Platform with Xamarin Forms, and Microsoft has promised Mac desktop support later this year, so this is a strategic technology. This editor is improving, but it's still a long way behind other varieties of form builder in Visual Studio.
The XAML used in Xamarin Forms is incompatible with the XAML used for UWP, and with the XAML for Windows Presentation Foundation, raising the question of which is intended to be the way forward. Xamarin Forms is attractive because it supports apps that are truly universal, rather than merely running on different varieties of Windows 10. On the other hand, it is less capable and developers have found it somewhat buggy (at the Ignite event in Australia recently, Microsoft said it had fixed 1,800 bugs in Xamarin Forms). Still, with desktop Mac support on the way, this is a compelling choice for C# developers.
The Visual Studio editor is enhanced in this release. New features include:
Structure visualizer: hover the mouse on a closing brace and a tooltip shows the line of code above the opening brace (a neat feature).
Go to All: search for any file, type, member or symbol in a solution. A pop-up results window lets you filter by the type of reference. The old Find all References still exists, and has new filtering and sorting options.
The new Go to All results window
Run to click: hover the mouse over a line of code in break mode and click the “Run to click” button which appears to run to that line.
Exception helper: a new non-modal Exception window which pops up when you hit an exception in debug mode.
Live unit testing: in the Enterprise edition, see test and code coverage results while you code.
Lightweight solution load: an optional feature that loads projects in a solution on demand, improving performance if you only need to work on one of them.
Git support has been improved, with support for push force, viewing commit differences, unset (aka stop tracking) an upstream branch, and SSH support.
Roaming Extensions is a new feature which enables you to store your preferred Visual Studio extensions in the cloud and install them quickly on a new installation, using the Roaming Extension manager.