What Windows 11 means for developers
A new Windows offers an updated UI and big changes to the Windows Store with no limits on application packaging.
Microsoft’s announcement of Windows 11 covers a lot more than an operating system. It sets a direction for Windows application development for the next several years, with a new Windows Store and, more important, a new set of policies for application distribution. Other aspects of the launch include a name for Project Reunion, new WinUI 3 controls, and a new set of material UI elements as part of Windows’ Fluent UI model.
Under the hood, Windows 11 builds on the same Windows-as-a-service model as Windows 10. Insiders using the Dev branch of builds have already been using much of the underlying Windows 11 code, only without its new chrome. The 2xxxx series builds have proven compatible with most Windows applications, so there should be little to worry about with existing code and the new operating system.
Some key Windows 10 features are being deprecated; for example, Live Tiles are no longer supported. This changes the way applications work with the Start menu, but it shouldn’t affect application operation. Microsoft is working on a Widget platform for its applications that will support a quick glance at your Outlook calendar alongside news and weather, which implies a possible set of extensions that may allow third-party access for notifications, but it hasn’t yet unveiled any APIs for this.
Building applications for Windows 11
It’s important to note that there’s no need to pause your Windows application development; what you’re doing right now will still work with Windows 11. You may want to start considering technologies like Project Reunion to modernize older applications, as it’s now a much more important part of the overall Windows developer platform. A new Windows Dev Center site brings together tools and documentation to help you get started.
Project Reunion’s new name, the Windows App SDK, may seem like a small change, but it has big ramifications for Windows. By saying it’s officially the next generation of the Windows SDKs, Microsoft is putting a line under both the Win32 and WinRT years, using Windows 11 as the jumping off point for a new set of SDKs and APIs.
Keep in mind that the Windows App SDK isn’t just for Windows 11. Windows 10 will continue to be supported for several more years and isn’t going away (especially if Microsoft continues to lock out a large number of CPUs from Windows 11 updates). Developers will still need to build Windows 10 code, and knowing that the Windows App SDK will build backwards-compatible code as well as Windows 11 apps should make it easier to transition from Win32 or WinRT. Currently, apps built for Windows 11 will be backwards compatible to the 1809 Windows 10 release.
A 0.8 release was made at Build 2021, adding support for new releases of Visual Studio and updating its WinUI 3 components. It’s supported for packaged MSIX applications, with experimental support for unpackaged apps (which can be distributed using the new Windows Store). The 1.0 release is planned for the fourth quarter of 2021 and will add full application life-cycle support for packaged and unpackaged code, with experimental push notification support for both.
That’s not to say there won’t be issues building code that works in both Windows 10 and Windows 11. For one thing there are some significant architectural changes around elements like the Action Center, which will mean having adaptive code that can work with both sets of APIs. There are also new Windows 11 features, like the Live Tile replacement Widgets. Microsoft has yet to discuss how they’re being opened up to third-party developers.
Using the new UI in your applications
Improvements to WinUI 3 focus on its support for the new-look windowing environment in Windows 11. Obvious features include rounded corners to Windows, new fonts, and a new set of icons. The update includes an update to Windows’ Fluent design language’s material design, adding new materials.
This new option, Mica, is opaque where Acrylic is translucent. This changes the role of Acrylic, which is now only used for temporary UI elements, such as flyouts or drop-downs, which overlay existing UIs. Mica is for permanent UI elements, such as menu bars, where it picks up the background colors from your desktop (and has automatic support for light and dark modes). Another material, Smoke, is used to deemphasize app content and windows when another UI element, such as a dialog, requires interaction, blocking the existing UI.
As Microsoft updates its WinUI controls to take advantage of these new materials, you should find them automatically applied to your code. The new look is already in many of Windows 11’s built-in tools, so you can see how they operate before you use them in your own code.
If you’re building HTML-based applications, Windows 11 now includes the evergreen version of the WebView 2 control, so your applications can always have access to the latest Chromium features. Microsoft is using this to support the next major update to Teams, which will ship as a WebView 2 app rather than Electron, requiring substantially less in the way of system resources.
A new Windows Store
The biggest change is to how applications are distributed, with significant changes to the Windows Store. Users get a refreshed design and new ways of finding apps; the under-the-hood changes are bigger and affect anyone building Windows applications.
First and foremost, there are no limitations on application packaging. Where the Windows 10 Store was limited to appx- and MSIX-packaged code, the new store adds support for packaged and unpackaged Win32 code as well as .NET applications (both using standard XAML and Xamarin), and Java installers. There’s even support for web-based applications built using React Native and Electron (and Microsoft’s own WebView 2), as well as for Progressive Web Apps (PWAs). A new version of PWABuilder will allow developers to create and publish apps based on existing and new HTML and JavaScript content.
Opening up the store to a wider range of applications is a sensible decision since a huge base of existing applications can still run on Windows 11. Those legacy apps now get a new distribution channel, and more important, a new source of monetization. Microsoft isn’t only opening the store to more apps, it’s allowing you to bring your own payment engine. If you’re selling enterprise tools through the Store you don’t have to pay Microsoft 15%; you can offer your own payment service and keep all your revenue.
Other announced features include support for Android apps built using Amazon’s App Store APIs. How this will work in Windows remains to be seen, as initial builds won’t include this feature.
Windows 11 is a mix of the familiar and the new, with Microsoft’s ongoing commitment to backward compatibility making it easy to bring old apps to the new OS and to continue developing new code. It’s worth pulling down insider builds to test code and experiment with the new Windows App SDK, or if you prefer, you can sign up to use Microsoft’s preview cloud-hosted test environment, Test Base, which will have Windows 11 builds and can be automated via Azure DevOps.
What Windows 11 means for developers
A new Windows offers an updated UI and big changes to the Windows Store with no limits on application packaging.
Microsoft’s announcement of Windows 11 covers a lot more than an operating system. It sets a direction for Windows application development for the next several years, with a new Windows Store and, more important, a new set of policies for application distribution. Other aspects of the launch include a name for Project Reunion, new WinUI 3 controls, and a new set of material UI elements as part of Windows’ Fluent UI model.
Under the hood, Windows 11 builds on the same Windows-as-a-service model as Windows 10. Insiders using the Dev branch of builds have already been using much of the underlying Windows 11 code, only without its new chrome. The 2xxxx series builds have proven compatible with most Windows applications, so there should be little to worry about with existing code and the new operating system.
Some key Windows 10 features are being deprecated; for example, Live Tiles are no longer supported. This changes the way applications work with the Start menu, but it shouldn’t affect application operation. Microsoft is working on a Widget platform for its applications that will support a quick glance at your Outlook calendar alongside news and weather, which implies a possible set of extensions that may allow third-party access for notifications, but it hasn’t yet unveiled any APIs for this.
Building applications for Windows 11
It’s important to note that there’s no need to pause your Windows application development; what you’re doing right now will still work with Windows 11. You may want to start considering technologies like Project Reunion to modernize older applications, as it’s now a much more important part of the overall Windows developer platform. A new Windows Dev Center site brings together tools and documentation to help you get started.
Project Reunion’s new name, the Windows App SDK, may seem like a small change, but it has big ramifications for Windows. By saying it’s officially the next generation of the Windows SDKs, Microsoft is putting a line under both the Win32 and WinRT years, using Windows 11 as the jumping off point for a new set of SDKs and APIs.
Keep in mind that the Windows App SDK isn’t just for Windows 11. Windows 10 will continue to be supported for several more years and isn’t going away (especially if Microsoft continues to lock out a large number of CPUs from Windows 11 updates). Developers will still need to build Windows 10 code, and knowing that the Windows App SDK will build backwards-compatible code as well as Windows 11 apps should make it easier to transition from Win32 or WinRT. Currently, apps built for Windows 11 will be backwards compatible to the 1809 Windows 10 release.
A 0.8 release was made at Build 2021, adding support for new releases of Visual Studio and updating its WinUI 3 components. It’s supported for packaged MSIX applications, with experimental support for unpackaged apps (which can be distributed using the new Windows Store). The 1.0 release is planned for the fourth quarter of 2021 and will add full application life-cycle support for packaged and unpackaged code, with experimental push notification support for both.
That’s not to say there won’t be issues building code that works in both Windows 10 and Windows 11. For one thing there are some significant architectural changes around elements like the Action Center, which will mean having adaptive code that can work with both sets of APIs. There are also new Windows 11 features, like the Live Tile replacement Widgets. Microsoft has yet to discuss how they’re being opened up to third-party developers.
Using the new UI in your applications
Improvements to WinUI 3 focus on its support for the new-look windowing environment in Windows 11. Obvious features include rounded corners to Windows, new fonts, and a new set of icons. The update includes an update to Windows’ Fluent design language’s material design, adding new materials.
This new option, Mica, is opaque where Acrylic is translucent. This changes the role of Acrylic, which is now only used for temporary UI elements, such as flyouts or drop-downs, which overlay existing UIs. Mica is for permanent UI elements, such as menu bars, where it picks up the background colors from your desktop (and has automatic support for light and dark modes). Another material, Smoke, is used to deemphasize app content and windows when another UI element, such as a dialog, requires interaction, blocking the existing UI.
As Microsoft updates its WinUI controls to take advantage of these new materials, you should find them automatically applied to your code. The new look is already in many of Windows 11’s built-in tools, so you can see how they operate before you use them in your own code.
If you’re building HTML-based applications, Windows 11 now includes the evergreen version of the WebView 2 control, so your applications can always have access to the latest Chromium features. Microsoft is using this to support the next major update to Teams, which will ship as a WebView 2 app rather than Electron, requiring substantially less in the way of system resources.
A new Windows Store
The biggest change is to how applications are distributed, with significant changes to the Windows Store. Users get a refreshed design and new ways of finding apps; the under-the-hood changes are bigger and affect anyone building Windows applications.
First and foremost, there are no limitations on application packaging. Where the Windows 10 Store was limited to appx- and MSIX-packaged code, the new store adds support for packaged and unpackaged Win32 code as well as .NET applications (both using standard XAML and Xamarin), and Java installers. There’s even support for web-based applications built using React Native and Electron (and Microsoft’s own WebView 2), as well as for Progressive Web Apps (PWAs). A new version of PWABuilder will allow developers to create and publish apps based on existing and new HTML and JavaScript content.
Opening up the store to a wider range of applications is a sensible decision since a huge base of existing applications can still run on Windows 11. Those legacy apps now get a new distribution channel, and more important, a new source of monetization. Microsoft isn’t only opening the store to more apps, it’s allowing you to bring your own payment engine. If you’re selling enterprise tools through the Store you don’t have to pay Microsoft 15%; you can offer your own payment service and keep all your revenue.
Other announced features include support for Android apps built using Amazon’s App Store APIs. How this will work in Windows remains to be seen, as initial builds won’t include this feature.
Windows 11 is a mix of the familiar and the new, with Microsoft’s ongoing commitment to backward compatibility making it easy to bring old apps to the new OS and to continue developing new code. It’s worth pulling down insider builds to test code and experiment with the new Windows App SDK, or if you prefer, you can sign up to use Microsoft’s preview cloud-hosted test environment, Test Base, which will have Windows 11 builds and can be automated via Azure DevOps.