Review: Visual Studio 2017 is the best ever

Visual Studio 2017 is not only smaller and faster, but armed for many more use cases than previous versions

Review: Visual Studio 2017 is the best ever
AxxLC (CC0)
At a Glance
ed choice plum InfoWorld

Two years ago, when I reviewed Visual Studio 2015, I came away thinking that Microsoft’s IDE had become the most complicated product ever, and Microsoft would have to simplify it in the future. I was wrong in one respect: Although Microsoft threw out a few features for Visual Studio 2017, it added a great deal more. But sure enough, Microsoft managed to deliver a simpler—and nimbler—IDE in Visual Studio 2017, despite increasing its capabilities.

Unlike some past versions of Visual Studio that focused on introducing complicated new Microsoft-specific technologies such as Windows Communication Foundation and Windows Workflow Foundation, Visual Studio 2017 installs and works better and faster, supports more programming languages and platforms, improves developer productivity, and applies to cross-platform workloads in natural ways.

For most users of Visual Studio 2015, upgrading to Visual Studio 2017 will be a no-brainer. Let’s explore why.

Bigger and smaller

In some respects, Visual Studio 2017 looks even more like a big grab bag of tenuously related products than previous versions of Visual Studio. Its expanding collection of development targets now includes Windows, Android, iOS, Linux, MacOS, .Net Core, Anaconda, Azure web apps and connected services, Docker, Office, and web development with ASP.Net, HTML5/CSS3, JavaScript, Node.js, Python, or (big breath) TypeScript. What a list—and it’s not even complete, as there are additional supported technologies, such as SQL Server, Visual Studio Extensions, and R.

How does one even begin to tie web development with ASP.Net to Android and iOS development? Well, there’s a way to do all of the above in C#, with Xamarin and Mono as the technologies for the mobile side. That isn’t the only option for mobile in Visual Studio 2017, however.

Perhaps you don’t like C# but still want to develop for Android and iOS. Then how about using C++ or JavaScript? Both languages have supported workloads for mobile development. As you dig deeper, the Visual Studio strategy of having something for everybody all tied together with common interfaces (both UI and API) starts to make sense. After all, most software developers are of necessity multilingual when it comes to programming languages and related technologies. The days of being able to write everything in Fortran are long gone. And most companies have strong opinions about their “standard” development languages and environments.

But what about installation? The enormous size of the Visual Studio installation has been a problem since the first Visual Studio product 20 years ago. Visual Studio 2017 features a much more modular installer than previous versions (see the figure below), a welcome improvement. The minimum install is, surprisingly, a relatively svelte few hundred megabytes. However, a full install of the Enterprise Edition takes 30GB to 40GB depending on the prerequisites already on the system. Microsoft tells me the average installation is about half that.

The size of the full install is not all Microsoft’s fault. For example, the Google Android Emulator alone uses more than 17GB. That implies Visual Studio itself is much smaller than it used to be, though it covers all of the additional target systems.

visual studio 2017 targets InfoWorld

Visual Studio 2017 covers a wide spectrum of development targets. While that’s good, it makes a complete install quite large. Fortunately, Visual Studio 2017 features a much more modular installer than previous versions of the IDE.

What’s new?

What’s new and exciting in Visual Studio 2017 that might tempt you to upgrade from Visual Studio 2015 with the current service pack? Microsoft claims the IDE is faster “from startup to shutdown” and now provides a way to view, edit, and debug code without projects and solutions. Microsoft also claims that enhancements to code navigation, IntelliSense, refactoring, code fixes, and debugging save you time and effort on everyday tasks regardless of language or platform. Certainly all of those are nice to have, but is the improved productivity enough to make you upgrade? I’ll try to describe how they feel in practice when I discuss the IDE.

If you don’t want to do a full install, either because you lack disk space or aren’t interested in every aspect of the product, the modular installer is much more convenient than the Visual Studio 2015 installer. On the other hand, how often do you install Visual Studio? A couple times a year, with updates every few weeks? I appreciate the improvement, but it shouldn’t have much of an impact unless you’re constrained for disk space—for example, if you develop on a laptop that came with a 128GB solid-state disk.

A faster IDE, on the other hand, has a huge impact. Visual Studio startup and solution load have become noticeably faster in the last few iterations, going from “I’d better go boil water and brew tea while my project opens” in Visual Studio 2008 to the current “Let me just get up and stretch for a few seconds while my project opens.” As for working with code minus projects and solutions, well, I’ve only wanted that for 20 years, since Visual Studio 97.

Microsoft touts a built-in suite of Azure tools that let you configure, build, debug, package, and deploy applications and services on Microsoft Azure directly from the IDE. If you use Azure, that’s a win: Jumping between the Azure console, the Azure command line, and Visual Studio can be distracting and interrupt your flow. If AWS is your primary cloud, however, you may not care about this at all.

Finally, Microsoft promises that with Visual Studio 2017 and Xamarin, it's faster and easier than ever to build, test, and debug mobile apps for Android, iOS, and Windows. If Xamarin has finally been shaken down to work on Android and iOS without bugs (which I have not tested extensively), and if the XAML designer has become fast enough to use without making me want to throw the computer out onto the street, that will be a big plus.

On the latter issue, Microsoft claims that about 90 percent of the overhead of opening the XAML designer is gone. Consistent with that claim, I now observe a five-second pause with a “loading the designer ...” message, which is certainly better than the minute or so the designer used to take to load. I’m also seeing a faster response to both dragging widgets to the design surface and typing into the XAML code window. The delay while synchronizing the two windows is still noticeable, but no longer makes me think that Visual Studio might have crashed.

You can also develop cross-platform mobile apps in Visual Studio 2017 with Apache Cordova or Visual C++. The use case for mobile development with JavaScript and Cordova is clear, and many people already rely on it for cross-platform mobile apps. But why do we need Visual C++ cross-platform library development between iOS and Android? It turns out there are many mobile C++ developers who will appreciate it. For mobile games and consumer apps, the common code, usually in C or C++, turns out to be a significant percentage of the project, with a UI written in Objective C++ or Java on top.

Although Visual Studio 2017 does support some iOS and MacOS development from Windows, you still need a Mac. Why? To debug console applications and ASP.Net for MacOS, to build GUIs for MacOS, and to build and debug apps for iOS.

C++ is the very model of a modern portable language, and it’s often used for developing applications that run on multiple operating systems. That’s in part why Microsoft also added C++ support for Linux development in this release and improved its C++ standard compliance.

What’s gone?

Visual Studio 2017 has dispensed with several rarely used features. You may, however, currently rely on some of the features that were pining for the fjords; they are still available, but only if you run an old version side by side with the new one. That may still hinder your adoption, because installing multiple instances of Visual Studio (especially the older versions) on a single disk is practically begging for a disk space problem.

Silverlight, an improper subset of Windows Presentation Foundation for delivering media and rich interactive applications from a browser add-in, was all the rage in the early 2010s and is now deprecated. I’ll skip over the internal Microsoft power struggle between the Silverlight camp and the HTML5 camp; suffice to say that Silverlight lost. It’s therefore no surprise that Visual Studio 2017 omits Silverlight development support. If you need to maintain old Silverlight applications, you’ll have to keep using Visual Studio 2015.

Similarly, Microsoft no longer makes Windows Phone smartphones and is deprecating older Windows Phone and Windows Store versions in favor of Windows 10. Depending on the version of Windows Phone you need to maintain, stick with either Visual Studio 2015 or Visual Studio 2012.

Microsoft has dropped UML modeling from Visual Studio 2017 and has no plans to invest further in UML. Instead, it has layer modeling, dependency diagrams, and architecture layer checks for code. You can also create and deploy layer modeling extensions.

If you really need UML in Visual Studio 2017, you can use one of the hundreds of UML tools available today, many of which are free and open source, and some of which currently include Visual Studio extensions.

Installing Visual Studio 2017

I installed Visual Studio 2017 on two Windows 10 machines: a laptop with a very small SSD and a tower with a decent-sized hard disk. Note that I was using a release candidate from February, not the final release version due the second week of March. The laptop already had Visual Studio 2015 installed; the tower had the Visual Studio 15 preview installed, which was the predecessor to Visual Studio 2017. I used the web installer from MSDN. In fact, I never saw an ISO installation image on offer, although that doesn’t mean one doesn’t exist.

I hoped that the Visual Studio 2017 installer would be smart enough to offer to remove Visual Studio 2015 when it saw there wasn’t enough space on the laptop’s SSD for both versions. No such luck. Because there are use cases for having both Visual Studio 2017 and Visual Studio 2015 on the same machine, the Visual Studio 2017 installation basically bailed out on me. I had to resort to manually uninstalling anything resembling Visual Studio 2015 and older versions of related technologies such as SQL Server, a job that took me about an hour and required constant interventions. I was then able to install a usefully large chunk of Visual Studio 2017. The installer kept a running tab of the disk space requirements of the workloads and modules I had chosen, and it would not proceed until it was sure everything selected would fit.

I honestly thought that having to do the manual uninstall was an unnecessary hardship. On the other hand, the only thing I could think of that would have made my job easier would have been an uninstall wizard for old Visual Studio versions.

On the tower, I was able to select all of the workloads of Visual Studio 2017 and press Install. The process may have taken an hour. I don’t know for sure because I was able to walk away and come back to find it completed. I think that’s the first time I’ve ever been able to say that about a Visual Studio installation.

The new modular install seems like a big win. The choices it offers are divided logically into “workloads,” and within any workload you can easily include or exclude specific components, such as the Google Android Emulator that I initially had to exclude on the laptop to install the rest of the Xamarin Mobile workload. You can supposedly install as little as a few hundred megabytes and still have a working environment, which is nice for team members with focused responsibilities and small disks.

visual studio 2017 install InfoWorld

The Visual Studio 2017 modular installer organizes installation items by workloads, individual components, and language packs. This screen shows workloads, with a pending modification to add the Google Android Emulator to the Mobile Development with .Net workload at a cost of 17.58GB of disk space.

Faster, smarter, better

For as long as I’ve used (and developed) IDEs, which is more than 25 years, the name of the game has been programmer productivity. Even in the bad old days of minicomputers and workstations, the biggest cost of creating software was developer salaries. Now that hardware and software costs are measured in the thousands of dollars instead of tens of thousands, and annual programmer salaries run over $100,000 instead of under $50,000, programmer productivity is even more important to the bottom line. Let’s look at features of Visual Studio 2017 that are aimed at improving productivity—and “delighting” the developer, to quote Microsoft.

InfoWorld Scorecard
Capability (30%)
Performance (30%)
Ease of Use (20%)
Documentation (10%)
Value (10%)
Overall Score (100%)
Visual Studio 2017 10 10 9 8 9 9.5
At a Glance
  • Visual Studio 2017 installs and works better and faster, supports more programming languages and platforms, and applies to cross-platform workloads in natural ways.

    Pros

    • A highly capable integrated development environment for professional coders
    • Supports even more programming languages than previous versions
    • Targets more platforms than ever, including Linux, Docker, cross-platform mobile, and IoT
    • Smaller and faster than ever

    Cons

    • Universal Windows app development, including designing, editing, and debugging, requires Windows 10
    • Features and documentation are so voluminous that it is sometimes hard to find what you need
1 2 Page 1
Page 1 of 2