Connect 2015, Microsoft’s online developer event being held this week, is crammed with announcements of new developer tools and sneak peaks at the future of Visual Studio and C#. If you take a step back from the flood of details, though, there’s a clear direction emerging.
Microsoft is leveraging open source and cross-platform development tools to reach a wider range of developers. Those changes mean CIOs need to think differently about what projects Microsoft’s development tools are suitable for, now that they support far more than only Microsoft platforms.
“We’re working to make innovative tools available to all developers, easy to acquire, and in many, many cases – free,” Microsoft’s vice president for cloud developer services Brian Harry says. “We’re going to continue to focus on enabling every developer regardless of what kind of app they're building and platform they're building it on.”
There’s also more emphasis on how to deploy, support and maintain software as a key part of the development lifecycle. For that, says Harry, “there’s our devops solution and how we enable teams to be agile and deliver in a cloud-cadence world.”
The DevOps tools are so important that Microsoft is renaming the Visual Studio Online development service to Visual Studio Team Services to emphasize the shift it sees to continuous development and deployment, the integration of cloud services, and generally faster-paced delivery cycles.
That’s what Microsoft itself is doing across the range of its own software – like Windows, Office and System Center – as well as its cloud services. It’s also a trend that Microsoft expects customers to adopt, so it’s increasingly designing both developer tools and new features in Windows Server 2016 (like support for containers and the new hyper-thin Nano Server option) to support this.
Just as your IT team will have to get used to a stream of new features arriving in Windows and Office the way they already do in cloud services and mobile apps, you’re going to need to look at internal development as something that moves more quickly, delivers more often and is more accountable to business units.
DevOps isn’t just about getting developers involved in the ops side so they write software that’s easier to maintain and run, having your ops team understanding that configuration is code that needs to be debugged and tested before it’s deployed, and showing stakeholders the status of both development and live systems – although those are major cultural changes for many organizations. Rather DevOps reflects the changes in what enterprise developers actually do. “Every company is a software company,” Harry says. “It’s how they differentiate. It’s critical for them to be more agile and more efficient, to be faster so they can iterate on their applications based on customer feedback.”
Rather than coding a business app that will be used, unchanged, for the next decade, your developers might be building models for predictive analytics and machine learning to improve customer service and support (and revising those frequently). Or they might be building those lines of business apps, but by composing them from of a mix of cloud services they program against and microservices they write to run in containers and update frequently. But first, they’re going to need tools that can provide the automation and monitoring to deliver all that effectively.
Microsoft says it has the tools for that, but that it’s been inadvertently hiding their light under a bushel by giving them the wrong name.
“Everyone thinks Visual Studio Online is an IDE and it's not,” Harry says. “We're going to try and fix that in the name. We’re calling it Visual Studio Team Services so that people understand it's really a set of services to enable your team to adopt agile DevOps practices. It's not an IDE and it never will be.”
The name change comes with new features to support the Windows platform (a package management service that includes a NuGet server and a preview of the next-generation build management service), as well as Mac and iOS (a partnership with MacinCloud for building to iOS or OS X), Java (a new plugin for IntelliJ IDEA) and other mobile platforms (an extension for integrating with the HockeyApp crash analytics and beta distribution service Microsoft bought last year).
The new release management tools are cross-platform, too. “We’ve showed Docker support, Apache Tomcat support, Linux shell scripts, Perl, Chef… lots of capabilities for doing deployment onto non-Microsoft platform,” Harry says.
Cross-platform matters more than the price tag
The way you use Microsoft developer tools is changing, and so is what you can do with those tools. But don’t expect to save a lot of money on your developer tools budget, despite many new free tools (now brought together in the new Dev Express program, which will include some free Azure usage in 2016).
Microsoft’s free Visual Studio Code editor – which has moved from a preview to beta – runs on Linux and OS X as well as on Windows, and it’s getting extensions to make it more powerful. These range from handy add-ins like a spell checker and a markdown plugin to in-depth support for more languages. “Someone has built a Go development environment that includes syntax coloring, Intellisense, debugging capabilities. Someone else has done the same thing for Object Pascal. You’re going to start to see all the various languages begin to come into Visual Studio Code,” says Harry. “We’ll have almost a hundred extensions in the marketplace for Visual Studio Code from day one.”
That reflects new enthusiasm for Microsoft developer tools among developers who are not the traditional Microsoft audience. That may also drive the new Visual Studio Marketplace, which Microsoft is opening up so developers will be able to sell extensions there, as well offering free add-ons (many of which work in the free Visual Studio Community edition).
Some of those free tools are available for enterprises, some aren’t, says Microsoft’s John Montgomery. “We’re not changing the terms of Visual Studio Community — it is still for learning, open source projects and very small teams. We’re also not changing the terms of the free Visual Studio Team Services offering — it’s for teams of under five. The new Dev Essentials program doesn’t have a restriction beyond the restriction of the individual products (and only Visual Studio Community has a license restriction). As a result, an enterprise could leverage parts of Dev Essentials for every developer — a team of up to five using Visual Studio Team Services and open source development with VS Community, say, and taking advantage of VS Code and our training and (when it comes) even the Azure benefits. But they still couldn’t do their commercial development with Visual Studio Community or put their whole enterprise into Visual Studio Team Services.”
The flexibility of monthly and annual cloud subscriptions to Visual Studio might prove more interesting. It will let businesses give developers short-term access to Visual Studio Professional and Enterprise, so you can be more flexible about staffing and resourcing projects.
But the fact that Visual Studio Code is free is almost less important than the fact that it’s open source (the code is on GitHub under an MIT licence) and cross platform.
Microsoft has announced more cross-platform tools for creating apps for Android and iOS, along with more options for developing on OS X; the popular Visual Studio Android emulator will be coming to OS X, there’s a new GDB Debugger Extension coming for Visual Studio that supports Linux native remote debugging (for Linux servers and IoT devices) and Visual Studio is getting Java support.
That’s not an attempt to compete with the Eclipse IDE, Harry says. “The scenario is people building Android device apps, particularly when they’re using cross-platform C++ to share components and they've got some native Android UI that's in Java they want to manage, and they don’t want to switch back and forth between Visual Studio and Android Studio. We'll provide a Java language service that gives you syntax coloring, Intellisense, and also enables debugging.”
This is a change of emphasis for Microsoft’s developer division and it goes hand-in-hand with open sourcing .NET, which has meant Microsoft and the open source community working together to put a full implementation of .NET Core on Linux and OS X. “We’re announcing .NET Core 5 and ASP.NET 5 release candidate, with a ‘Go Live’ licence for .NET Core running on Windows, Mac and Linux,” Harry told us. “This marks a transition from the early previews to people running it in production. We have customers using .NET Core in real environments.”
One of those is Verizon, a long-time ASP.NET customer, who is now using .NET Core, ASP.NET and Docker on Linux for some systems. That kind of cross-platform support is precisely why Microsoft open sourced .NET; it’s trying to build a thriving developer ecosystem that will bring new features and tools to .NET, and to give you more choices about the infrastructure you use Microsoft tools and services on. If your developers are building complex server-side web applications for a project, .NET and ASP.NET are strong choices for that – but you no longer need Windows Server (or a cloud or hosting service that specializes in Windows Server) to take advantage of them.
That’s a clear reflection of the fact that Microsoft’s developer tools are far more open and far less isolated from the rest of the development world than they used to be, and you should be thinking about them in a much broader way. The focus isn’t on Microsoft platforms, or even Microsoft technologies. It’s on providing tools that make developers more efficient and productive. You can take advantage of an increasing number of those even if you don’t currently use Microsoft technologies, or even run Windows, so if you thought Microsoft development tools weren’t relevant to your business, you may want to take another look.