Simon Bisson
Contributor

5 Microsoft developer tools and technologies to explore in 2020

analysis
Dec 31, 20196 mins
Microsoft .NETMicrosoft AzureSmall and Medium Business

What should Microsoft platform developers focus on in 2020? .NET 5, WinUI 3.0, AKS, WSL 2, and Azure Sphere, for starters

digital tunnel future futuristic
Credit: Thinkstock

At the end of 2019, it’s worth looking ahead as you put together your application development plans and your technology roadmaps. The last few years have delivered a lot of change for anyone building on Microsoft’s many platforms, and that pace isn’t slowing down.

What should you be looking at in 2020, and why? Here are five options for Windows, for Azure, and beyond. They’re not the only ones, but they should start you on a road to a more modern set of development platforms and tools.

Start the transition to .NET 5

Perhaps the biggest challenge facing anyone building .NET code is the change from the aging .NET Framework to .NET Core with the release of .NET 5 towards the end of 2020. Bringing together the two strands of .NET makes sense, even if it does require losing some older APIs. Microsoft has put out a list of what will and won’t make the transition on the .NET GitHub repository. Some of the missing APIs will shift to community implementations, while others gain more modern alternatives.

If you support and develop .NET Framework code, 2020 gives you a good opportunity to explore how code will be delivered in the future. The current .NET Core 3.1 release is a long-term support version and, together with the .NET Standard libraries, supports many of the APIs that will be in .NET 5. Porting code to .NET Core 3.1 gives you an opportunity to explore not only what changes need to be made to your code, but also to build a new toolchain.

The future of .NET Core is a cross-platform one, with Blazor on WebAssembly and server-side via ASP.NET and Razor; .NET Core on Windows, macOS, and Linux; and with Xamarin on mobile devices. Moving code to .NET 5 isn’t only about supporting future Windows releases, it’s an opportunity to deliver it to many more platforms and users.

Begin exploring WinUI 3.0

2020 is when the Windows platform changes. Microsoft is finally splitting the Windows SDK in two: separating out UI components into WinUI and leaving the OS-level features. With the upcoming release of WinUI 3.0, UI components will be able to ship on a different cadence from the OS, adding new controls as they’re released. They will be supported across Windows 10 for use in Win32 and WinForms apps as well as in Universal Windows Platform (UWP) applications.

WinUI will also be supported in modern browsers such as the new Chromium-based Edge through a partnership with the Uno Platform, which will be porting controls to WebAssembly, allowing WinUI to reach a much wider audience. Existing UWP applications will be able to use WinUI 3.0 with minimal changes, and C++ code will be able to use new controls to add support for Microsoft’s Fluent design language.

Use AKS for cloud-native applications

Building modern cloud applications means building distributed microservice-based applications, deploying containerized code when and where it’s needed, and managing resources to respond to demand. That all adds up to needing an orchestrator to manage scaling and deployment. You could implement Kubernetes yourself, getting into the nitty-gritty of kubectl and YAML configuration files. However, there’s an alternative on Azure: a managed option with the Azure Kubernetes Service, for both Linux and Windows containers.

This simplifies deploying your containerized applications and services, using the familiar Azure portal, with access to Azure’s own networking features and the ability to work with tools such as HashiCorp’s Terraform. Other options include role-based access control to lock down access to resources, reducing your security exposure.

AKS will automatically scale your Kubernetes cluster up and down, and it integrates with Azure’s monitoring tools so you can keep a close eye on your service operations. The result is a mix of a pure Kubernetes platform that can be managed using Kubernetes tools for fine-grained control and the familiar Azure portal with managed access to other Azure services. That service integration can simplify Kubernetes operations, for example with direct access to Azure storage for persistent data and support for Azure’s own container registry.

If you’re building Kubernetes applications on Azure there really is no alternative, especially when you consider services like Azure Dev Spaces. Building on AKS, Dev Spaces gives you a secure, private environment to build, test, and debug your cloud-native code without affecting production services.

Develop for the cloud on your laptop with WSL 2 and Docker

It wasn’t that long ago that you’d see nothing but a line of glowing Apple logos at any developer event. Now it’s a much more mixed lineup, as Microsoft has worked to win developers back to Windows, delivering quick access to popular languages such as Python, an easy-to-customize programmer’s editor in Visual Studio Code, a new Windows Terminal, and, most importantly, the Windows Subsystem for Linux (WSL).

Initially emulating a Linux kernel, WSL will soon be upgraded with its own Linux kernel running alongside Windows. Intended to make it simpler to build and test cloud applications on a PC, WSL 2 will also include a Linux file system that can be accessed from Windows, and support for remote editing using Visual Studio Code. Docker has begun testing a version of Docker Desktop for WSL 2. This adds native Linux container support to Windows, using familiar dockerfiles to build and deploy local container instances, and Code to work directly with their contents.

The combination of Windows, Linux, and Docker provides a flexible basis for constructing a powerful end-to-end set of development tools that uses each platform fully and gives you the flexibility to work the way you want while still delivering code to common repositories.

Secure IoT with Azure Sphere

It’s been a while since I last looked at Azure Sphere, Microsoft’s platform for secure IoT. Mixing hardware-based security with a custom Linux kernel and a cloud-hosted management platform is a way of ensuring that the operating system and the applications running on your hardware haven’t been tampered with, and that code can’t be changed or inserted by malicious third parties.

A development board using Microsoft’s secure ARM microcontroller has been available for some time now, and it’s recently been joined by cheaper alternatives. It’s clear that Azure Sphere is now ready for use in your products, with production-ready modules and SOCs now available, so you can build your own hardware around it. You don’t need new development tools; all Azure Sphere development takes place in the familiar Visual Studio.

One of the more interesting developments is a set of Sphere-based guardian units that can work with existing industrial controllers, adding a layer of protection when integrating PLCs and other existing industrial systems with your applications, allowing you to connect devices that may have been considered too risky to add to an IoT platform in the past.

Simon Bisson
Contributor

Author of InfoWorld's Enterprise Microsoft blog, Simon Bisson prefers to think of “career” as a verb rather than a noun, having worked in academic and telecoms research, as well as having been the CTO of a startup, running the technical side of UK Online (the first national ISP with content as well as connections), before moving into consultancy and technology strategy. He’s built plenty of large-scale web applications, designed architectures for multi-terabyte online image stores, implemented B2B information hubs, and come up with next generation mobile network architectures and knowledge management solutions. In between doing all that, he’s been a freelance journalist since the early days of the web and writes about everything from enterprise architecture down to gadgets.

More from this author