Microsoft’s annual Ignite conference has usually catered to IT professionals, with a focus on servers, applications, and management tooling. That’s not the case this year, with developers getting a much larger slice of the pie.
It’s not surprising, really. Microsoft’s transition to cloud behemoth is almost complete, and the modern hybrid cloud needs code that can take advantage of Azure’s hyper-scale platform. There were so many developer announcements that they ended up getting their own separate keynotes, one for Azure and one that brought Windows and Office together under the umbrella of Microsoft 365.
What were the biggest announcements for developers at Microsoft Ignite 2019? I’ll explore the top five below.
Azure Arc: Hybrid cloud everywhere
The biggest news was Microsoft doubling down on its hybrid cloud platform. Microsoft has finessed its Azure Stack range of on-premises cloud servers, rebranding its Data Box Edge devices as Azure Stack Edge, with more of a focus on its containerized IoT Hub services and on-board machine learning systems that can be addressed by local code. Azure Stack Edge goes further than the single rack unit that’s been demonstrated in the past; now it’s available as a rugged man-portable backpack unit that brings Azure services right where they’re needed, when they’re needed.
But the heart of Microsoft’s new hybrid platform is a new Azure service, Azure Arc. Designed to bring Azure’s container and virtual machine management capabilities to any infrastructure, whether it’s on-premises or another public cloud. Using virtual machines, containers, and a set of management agents, it can deploy modern distributed applications to any Kubernetes implementation, along with a set of data services based on Azure SQL Database and on Azure’s PostgreSQL implementation.
With Azure Arc you’re able to deploy and manage cloud services from the Azure Portal, once you’ve connected a data center via Azure Arc’s management agent. Policy driven management makes sure that all instances of an application have the same security model, enforcing policies across your entire estate of servers and services. That approach simplifies managing Kubernetes, as you’re only responsible for managing the underlying service infrastructure and Azure Arc manages everything else. That’s the same approach taken by Microsoft’s new open source distributed application tooling, with Azure Arc using a similar set of design patterns to OAM.
One thing missing from Azure Arc currently is support for Microsoft’s serverless Azure Functions. While you could use Azure Arc to deploy the containerized host for Azure Functions, you’d still have to deploy the code separately. Microsoft has said that serverless support is on the roadmap. Its arrival should make Azure Arc more of a competitor to Google’s Anthos.
WinUI 3.0: Modern controls for Win32 and .NET Core
Microsoft’s new design language, Fluent, was originally limited to its UWP modern application APIs. With the Windows Store now open to a wider selection of apps, and the transition from the .NET Framework to .NET Core well underway, it’s time to expand the reach of those controls and design tools.
WinUI is Microsoft’s new cross-framework UI tooling for Windows 10, with WinUI 3.0 now in early preview. WinUI is designed to bring the UWP XAML controls to the rest of the Windows developer platform, with support for Win32 and for Windows apps built using .NET Core.
Earlier versions of WinUI were tightly coupled to UWP, so making WinUI 3.0 independent is a significant change. Existing Win32 apps can be updated using XAML Islands, while new apps can work with WinUI 3.0 directly. Interestingly Microsoft intends to use WinUI 3.0 to bridge the gap between Windows and cross-platform UI frameworks like React Native. Installed via NuGet, WinUI 3.0 works with both .NET languages and C++. Microsoft is working with the Uno team to bring WinUI 3.0 to browsers via WebAssembly.
Separating WinUI from UWP doesn’t signal the death of Microsoft’s new Windows SDKs; they’re still under development as they offer more features than the older Win32. However, Microsoft is starting its migration away from WPF and WinForms, using WinUI to bring Fluent Design to more developers and to more apps. Decoupling UI tooling from the rest of the framework should allow the two to move faster, as core APIs will no longer be dependent on UI APIs and vice versa.
Fluid Framework: Fast online collaboration tools
Microsoft teased a new way of working with documents at Build, showing off a prototype of its Fluid Framework. While still not ready for general release, Fluid Framework is entering a set of previews. The first, a public preview due to launch in the next few weeks, shows off the collaboration tools for multi-user co-authoring. The preview is somewhat reminiscent of some of Apple’s OpenDoc work from the mid-1990s, with componentized documents that can be remixed and worked with by humans and by code.
Developers can sign up for a private Fluid Framework preview that will expose the APIs used to develop the preview, including a new fast sync protocol that gives near real time performance across browser instances. A private demo showed some aspects of the new services, with interactive tables appearing in Outlook email, with live components shown by a halo effect.
The back-end technology for Fluid is close to being ready. What’s more of an issue is how we show our users that documents are now more like a Git repository, with a full history and the ability to branch and to merge. It’s a model that changes how we think about documents, and how we think about building applications around them.
Visual Studio Online: Code in your browser
Setting up modern development tools, even something “lightweight” like Visual Studio Code, takes time, when you’re choosing the right plug-ins, getting the right color scheme, making sure you’ve got the right language extensions, etc. Everyone has their own way of working, so it’s hard to either pick up a home PC to quickly fix a bug or to work on a colleague’s machine.
What if your browser was your development environment? Then you could code anytime, anywhere, and on any machine Now in public preview Visual Studio Online is just that, a cloud-hosted development environment that can quickly provision either local development tooling (with support for Visual Studio Code and the Visual Studio IDE) or run in a browser-hosted code editor based on the one used in Visual Studio Code.
Visual Studio Online’s development environments are stored in Git repositories, with dotfiles that define the extensions and customizations you use. The service is backed by Linux environments, with Windows in private preview. You can monitor your cloud development environment using the built-in terminal, then switch to a writeable terminal when you want to make changes. Hosting customizations, profiles, and dotfiles on Git makes it easy to share them with colleagues, or to spin up a new environment with your choice of features whenever you want.
New Edge beta: Test with WebDriver
Microsoft has been working on a new version of its Edge browser for much of the last year. Based on Google’s open source Chromium, it’s been shaping up into a rather nice browser. With the latest beta release, the new Edge is close to release, with a stable version planned for mid-January 2020. Where things get interesting for developers is the work Microsoft is doing on bringing support for more web development tooling to its browser.
Perhaps the most important is support for the WebDriver browser automation framework. Each development channel for Edge has its own WebDriver version, so you can test web application code against Canary, Dev, and Beta releases. Using the Beta channel for automated tests will give you early warning of any major effects on your sites and web apps — and then six weeks or so to ensure they’re fixed! There’s additional support for the Puppeteer tools, as well as support for automated testing of the embedded IE 11 mode with legacy web apps.