Last week Microsoft finalized its latest Visual Studio release, making it available for MSDN subscribers, along with downloads for the new free Community edition. It’s an interesting release, one that reflects changes in both the way Microsoft is building its own apps and in where the rest of the industry is moving.
I first wrote about Visual Studio in the 1990s. Over the years I've learned that Microsoft’s development tooling offers an interesting guide to the way Microsoft thinks about application development -- and how Redmond is writing code. Visual Studio 2015 in particular shows how serious Microsoft is about supporting new patterns and practices developers are adopting today.
Openness in practice
Drill into Visual Studio 2015 and you’ll find tooling for many modern platforms, not only for Microsoft .Net languages. There’s Python support, Node.js tooling, and cross-platform mobile support for Apache Cordova.
Microsoft’s open source .Net Core is also supported, so you can build cross-platform server apps running on Windows, Linux, and Mac OS. Web applications built with ASP.Net 5 will use .Net Core, with platform-specific APIs available as downloadable packages. Because .Net Core itself is granular, you don’t have to download an entire framework, only the packages you need for your current application.
That cross-platform approach isn’t for server-side code alone. It’s also for client applications. Visual Studio now supports development of cross-platform C++ libraries that run on iOS and Android (KitKat and Lollipop). Apps built in Visual Studio can run natively on both platforms, though you’ll need a Mac to build iOS code. You don’t need to use Microsoft’s own compiler because Visual Studio now also supports the popular, open Clang and LLVM compilers, as well as GCC. Adding the third-party Xamarin tools to Visual Studio gives you support for more devices, including the Apple Watch.
Bundled templates simplify building cross-platform apps, and code can be used in Xamarin apps. Perhaps more usefully, Microsoft provides a set of Android emulators, so you can debug code without leaving Visual Studio. It’s worth taking advantage of Visual Studio’s NuGet tooling to download additional tooling for your apps, including Ionic templates for use with Cordova.
The behemoth extends
Even with the renaissance of the programmer’s editor, there’s still a role for a heavyweight IDE like Visual Studio. Projects in Visual Studio can take in all the elements of a modern application, from multiple mobile devices to IoT endpoints to microservices to the cloud. Support for Microsoft’s cloud-hosted Visual Studio Online also means it’s possible to integrate with GitHub and to target multiple OSes, building iOS and Android apps alongside Windows.
Extensibility remains an important Visual Studio feature, and with the new Community edition replacing the older Express versions, independent and hobbyist developers now get access to the same tooling as Professional and Enterprise developers. That means they can use NuGet to download add-ons, as well as get access to more of the debugging and code intelligence built into Visual Studio (including elements of the new .Net Roslyn compiler).
It’s not only applications, it’s also the techniques we’re using to build modern applications. Microservices and APIs are key elements in building scalable cloud applications. It’s not surprising to see that service developers can use a NuGet library to work with the Swagger API description language inside Visual Studio, consuming and creating service descriptions before writing the code that works with and behind those APIs.
Talking to members of the Visual Studio product team, it’s clear that cross-platform development was a key design consideration. It’s a journey that began when Microsoft CEO Satya Nadella was running the company’s Cloud and Enterprise group, but became more visible when he took over from Steve Ballmer, branching out from a relatively narrow ecosystem. Technologies like Cordova and cross-platform C++ are only the visible part of the iceberg. It’s the code that developers are writing that really matters.
Feeding the IoT frenzy
There’s also a bigger picture: the millions of new devices that need code. The Internet of things is a huge opportunity for developers and for good development tooling, as hardware and software transition from maker hacks to full-blown products.
A few weeks ago, at Maker Faire in San Mateo, we were hearing about go-to-market processes for hardware from silicon vendors. With the IoT tooling in Visual Studio 2015, Microsoft aims to provide a similar path for software, with recent announcements, including a partnership with connected hardware vendor Particle.
As John Montgomery, partner director of program management in the Microsoft Developer Division, points out, the difficulty lies in getting the services IoT devices need to run at scale. For one thing, architectural issues arise, especially when working with devices that use gateways. By providing an open development environment that works from cloud to device, Montgomery thinks that Visual Studio can help close gaps, supporting relatively dumb things with rich protocols to deliver data to services.
There’s a lot to like in this latest Visual Studio. It’s clear that Microsoft is using it to push developers toward building more modern applications, with support for cloud-centric design patterns and for cross-platform mobile endpoints for applications and services. If Visual Studio 2015 really indicates the next few years of developer thinking at Microsoft, we’re in for a very interesting time.