Microsoft’s annual developer event Build mixes education with new product announcements across its three main developer platforms: .NET and Windows, Azure, and the Power Platform. There’s always a lot of other news, too, with previews going into general availability and new features being added to existing platforms and services. Then there’s the bigger picture, with a snapshot of its developer strategy and its product road map.
What were the key announcements at Build this year? I’ve already looked at the Azure data platform updates, so it’s worth a quick dive into what I think are the most important pieces of news for anyone building applications on Microsoft platforms, whether they’re experienced coders or someone picking up a low-code development tool for the first time.
Azure got the biggest share of Build news this year, cementing its position as the centerpiece of Microsoft’s modern development strategy, with a focus on cloud-native development tools, machine learning (ML), and bringing Azure services to hybrid cloud deployments via Azure Arc and Azure Stack.
Machine learning with a supported PyTorch
One of the more interesting Azure ML announcements is its release of a supported build of PyTorch Enterprise. Originally developed by Facebook but now used by many different organizations (including ones helping develop Microsoft’s own ML products), PyTorch is an open source deep-learning framework that can create and share custom ML models, using either its own inferencing runtime or exporting models as Open Neural Network Exchange (ONNX) for use in Windows.
PyTorch Enterprise builds on the open source tooling and adds a long-term support model, as well as allowing Microsoft to integrate it more closely with Azure tools and services. It’s an approach that should help you move from using PyTorch as a research and development tool to one that’s suitable for production, with Microsoft offering troubleshooting and support for users with existing support contracts. It’ll also be built into the Azure Machine Learning platform, giving you a managed instance that you can use to develop and test models before moving them into production.
Using AI to help low-code developers
We’re finally seeing the first fruits of Microsoft’s partnership with OpenAI, which developed the GPT-3 natural language model. Microsoft is using it in conjunction with its new low-code Power Fx language, going from simple statements to code. Using these tools, you’ll be able to type a basic query in natural language: for example “show me all the customers in the eastern United States,” and the model will generate a set of possible Power Fx statements that can be used in your code. It’s an approach that should make query design available to a greater audience, with no need to learn SQL; all you need to do is ask a question.
Closely related is Microsoft’s own PROSE (PROgram Synthesis using Examples), which uses output examples to create code-generating models. Perhaps you want to display address by street and city only. With well-formatted data, all you need to do is give PROSE one or two examples of how you want the data displayed (based on the contents of your data sources) and it will generate the Power Fx code needed to deliver your chosen output.
AI-assisted programming is an intriguing new direction for Microsoft. It certainly fits in with the stated aims of its recent Power Platform updates, providing tools to assist developers write code to fill the ever-growing app gap in most enterprises. There aren’t enough developers to deliver the code our businesses need, so if tools like GPT-3 can help users write code that solves particular problems, it gives us a much-needed foundation for future development—especially with languages like Power Fx and new tools in Visual Studio and Visual Studio Code that start to cross the boundary between users writing simple functions and full-scale professional application development.
A booster shot for Arm development
Windows on Arm may not appear to have had much development since it launched in 2017, but it’s being developed in lockstep with the familiar Intel version. Arm64 has been a .NET target for some time now, though with many libraries still only supporting Intel, it’s hard for developers to deliver Arm-native code for all their existing applications. Getting those dependencies ported is a priority for Microsoft, and it’s focusing on the transition to the new .NET with the upcoming long-term support release of .NET 6.
The release of Preview 4 of .NET 6 at Build shows how Arm support is being baked into the underlying platform, with support for both Windows Forms and Windows Presentation Foundation. Support for these should make it easier to port older libraries to Arm, encouraging control developers to support new architectures. Interestingly there will be native support for Apple’s M1 processor, though at present this will be limited to new UI frameworks like the Xamarin-based MAUI (Multi-platform App User Interface).
Arm software really needs Arm hardware for development, testing, and builds. While we’re still waiting for Microsoft to put Arm servers in the Azure Devops build pipeline, we can at least look forward to implementing our own pipelines on Windows on Arm developer systems with desktop hardware. Qualcomm and Microsoft have announced a NUC-sized Arm developer system based on the Snapdragon 7c processor. Pricing hasn’t been announced yet, but it’s said to be low cost, which should make it economical to add devices like this to continuous integration and continuous delivery (CI/CD) pipelines as dedicated build and test systems.
Where was Windows?
It’s important to note the virtual absence of Windows at Build, beyond updates to development tools and SDKs. That’s not surprising this year, as Microsoft is unveiling a major reworking of Windows 10 in the second half of the year. Code-named Sun Valley, it will mix a UI refresh with new platform features that have been inherited from the abandoned Windows 10X project. We should learn more about it during the next couple of months, along with the evolution of the Project Reunion Windows APIs (with a 0.8 release entering preview) and the launch of the first long-term support release of the converged .NET 6 in November.
Where product schedules may have aligned with Build in the past, now they’re linked to their own timetables. One big change: With .NET now the responsibility of the .NET Foundation, it gets its own event with .NET Conf. Although Build makes a convenient place for updates, it’s no longer a significant milestone. Online events make it easier to tie events to products rather than products to events. Why run a huge conference when what used to be one or two sessions can now be a day of content to stream at your leisure and save for when you’re actually using a technology?
Following in the footsteps of March 2021’s Ignite, Build 2021 set the scene for much of the rest of the year. It’ll be interesting to see what the rest of Microsoft’s year looks like, as we look forward to what Satya Nadella called “the next generation of Windows” and what that and the ongoing Project Reunion work mean for us as developers.