Microsoft is more than an operating system company. It’s a platform company.
That’s the overall message from its Build developer conference this week. And if it’s going to remain a platform company, it needs to keep developers on its side. With much of the developer messaging over the last year focusing on the new WinRT runtime at the heart of Windows 8, it’s no wonder that many developers – especially those building enterprise Windows applications – were feeling a little left out. Build 2013 was Microsoft’s chance to reconnect with those developers and to showcase new tools, technologies and roadmaps.
Making WinRT more palatable -- and less central
WinRT remains an important part of Microsoft’s developer story. It’s the foundation for creating Windows Store apps, and it’s where much of Microsoft’s API attention remains focused. That’s not a bad thing -- it’s designed for the next generation of app development, and for building smart endpoints for cloud-hosted services.
Even so, there’s renewed focus on .NET. It’s the heart of the server and cloud story, and if WinRT is about building endpoints for devices, .NET is about building services in the cloud and in the data center (and also for desktop apps).
So where did WinRT fall down over its first year? Firstly, it was designed to work with a limited set of use cases. That, combined with its strong sandbox, meant it was hard to build apps that worked together, and there were limited tools for connecting to external hardware and for displaying built-in help.
The Windows 8.1 refresh of WinRT begins to fix many of those issues, with improved tooling for handling communication with external devices (including Bluetooth connections, and for working with a range of USB inputs and outputs). It also introduces the concept of child security domains, which will allow applications from the same developer to communicate across the walls of the Windows 8 sandbox without using Microsoft’s built-in contracts. Contracts remain the key to allowing communication between apps, giving users the ability to construct their own workflows between apps from many different developers.
Getting the evangelists out there
New features in WinRT are all very well, but developer engagement is key to Microsoft's future. Recent changes at the top of its developer evangelism team are a hopeful sign, as are admissions that the company has failed to encourage developers to use technologies like Portable Class Libraries (a way of encapsulating common code so that it can be used across WinRT, desktop and server .NET, Windows Phone, and web services).
Build put the evangelism team front and center, publishing email addresses and Twitter handles, and showing demonstrations of how new tools and services would work in developers’ own applications, not just in Microsoft’s.
Another interesting note: This was the third Build conference, but the first to be held in the San Francisco Bay Area -- the heart of Google and Apple territory. (Prior to Build, Microsoft held a similar event called the PDC or Professional Developers Conference; the last time it was held in the Bay Area was 1996.) While Microsoft says it was a decision made around available space and hotel capacity, the choice of venue could also speak to the fact that Microsoft knows it needs to reach the large base of developers who are intrigued with -- and building for -- Android and iOS. Certainly Microsoft went out its way to show more than its own Visual Studio IDE, with cross platform development tools like Xamarin used in many presentations, and keynotes showed Git being used to manage iOS code generated by the Azure mobile services platform.
Reaching out to other platforms
Azure remains at the heart of Microsoft’s transformation. That's where Microsoft builds its own services and where it’s running many developer tools – including a set of tools that let developers quickly create and roll out the back ends needed by many mobile applications.
Azure now boasts deeper integration with many common authentication tools and services, allowing developers to build apps that integrate with many common enterprise cloud services – including Salesforce.com (and, coming soon, Google App Engine and Amazon Web Services). Microsoft has also taken both Azure’s scalable web sites and Mobile Services out of beta. Both of those services are quite friendly to other platforms -- scalable web sites supports common open source Web tooling, and Mobile Services supports iOS and Android as well as Windows 8 and Windows Phone 8.
One thing is very clear about the new Microsoft: It's much more open to working with partners (and competitors) as well as with open source technologies. New enterprise IT companies like Box are providing integration points for Windows and Azure developers, while open web technologies like JQuery and Twitter Bootstrap are first class citizens in Visual Studio. Developers coming from the open web to ASP.NET can bring familiar tools and technologies, sharing skills, and development practices.
In short, Microsoft knows it isn’t the only choice. Its tools now support open development environments like Git, and work with Xcode and Eclipse. They’re also providing points of integration with other, competing development platforms - including Amazon Web Services.
Reaching more types of developers
One key point in the Azure tooling, and in Visual Studio 2013, is that Microsoft now understands that developers do more than just write code. They’re involved with running their apps, and the Azure developer portal is as much about DevOps as it is about development. While Steve Ballmer didn't quite shout "DevOps, DevOps, DevOps!" in his keynote, Microsoft's Server and Tools president Satya Nadella went out of his way to show the management tooling built into Azure's portal and reflected in Visual Studio 2013.
New profiling tools in the upcomoing Visual Studio release will also help developers understand how their applications interact with hardware, showing power usage – and helping them tune apps for low-power devices like phones and small tablets. Even Internet Explorer 11’s new features include non-invasive debugging and profiling, allowing developers to work with running pages to understand performance and how it can be improved.
There’s also tooling for hobbyist and informal developers in its Visual Studio Express and Web Matrix tools, while Windows 8.1’s new 3D printing pipeline lets hardware developers make prototypes directly from their design tools.
Microsoft’s devices and services model is about much more than just tablets and phones and Azure, and maker-friendly features like this are a clear sign that engineering teams in Redmond understand the shift to the Internet of Things and ubiquitous computing.
Outside the world of code and servers, Microsoft recently announced improved benefits for its MSDN developer program that make it easier to take advantage of Azure, with lower-cost – and often free – access for development projects. Those benefits are designed to encourage developers to take advantage of the cloud, giving them the tools to bypass slow procurement and infrastructure deployments. Cloud-hosted infrastructure simplifies development, and with tooling for managing Azure built into the latest Visual Studio release, it’s clear that Microsoft expects it to be a significant component of its developer relationship in the very near future.
Message: We still love you
Microsoft’s message to its developer community is clear: the Redmond giant may be transitioning to devices and services, but it’s not leaving the platform behind. Platforms are what made Microsoft successful in a world of closed computing environments, and that's what it intends to use to build relationships with third parties as it rolls out its devices and services strategy.
Build 2013 is more than a reset of Windows 8, it’s a reset of Microsoft’s developer relationship. The company is still recovering from the lows of its Silverlight and XNA changes, but a refocus on .NET and more context around new platform features has gone a long way to repairing the damage.