304 North Cardinal St.
Dorchester Center, MA 02124
Microsoft announced about the release of the Windows App SDK 1.1, which is designed to help developers create native, beautiful and modern applications for Windows. The new version brings with it several new features, as well as improved stability and application performance.
The Windows App SDK is a starting point for building and distributing Windows desktop applications (in C++ and .NET) with WinUI 3 controls and WebView2 to create a modern user interface. You can get acquainted with further plans for the development of the SDK on GitHub in the product roadmap.
You can now use Mica and Backgroud Acrylic materials in WinUI 3 applications. As a reminder, Mica is an opaque material introduced in Windows 11 that uses a desktop background image to create a visual hierarchy within an application. To apply these materials to the background of your app, check out the example in the app. WinUI 3 Gallery. In addition, the WinUI 3 Gallery has several new control examples, and the design of the application has been updated to match the Windows 11 concept.
Packaged (MSIX), partially packaged, and unpackaged applications can now send pop-up notifications (aka Toast notifications) and Push notifications to inform users about something when the application is not in use. This means that you can send notifications both locally and from your own cloud service. You can also send raw notifications from your own cloud service to send out new updates to your application in a power efficient and secure manner. Check out Microsoft’s guidance for the notification user interface, to learn about best practices for designing useful, productive, and engaging notifications.
Windows App SDK 1.1 removes the limitation in version 1.1 that prevented applications from running as an administrator. Tools for developers, administrators and system management can now use the full power of the Windows App SDK. For full support, make sure target computers have the latest updates for Windows 11 and Windows 10 (May 2022 Cumulative Update). Support for Windows 10 LTSC 2019 will come in a future cumulative update.
Significantly improved performance of C# applications in many scenarios through updates at the WinRT. For example, the launch time of a simple “Hello World” application on WinUI 3 will be reduced by about 9% compared to Windows App SDK 1.0. You can also see improvements in dependency properties in WinUI 3 applications.
The Windowing APIs now allow you to control the relative z-order of your windows. This became possible due to the appearance of the WinRT version of the hWndInsertAfter function in SetWindowPos. Each AppWindows is a top-level window that can be moved above or below other top-level windows. Microsoft is currently preparing examples to demonstrate various scenarios for controlling the relative z-order of windows.
Also, custom window titles can now be easily set to a higher height, which will increase the system controls and drag area of the window. This makes your app more touch-friendly and provides more space for interactive content in the title bar, such as the search box. See the documentation on the Microsoft site for details on how to implement a taller title bar.
Another useful innovation is the ability to resize the window depending on the size of the client area. Thus, you can set the size of the client area and then resize the window’s non-client area according to those settings. This eliminates the need for extra calculations when a non-client area needs to get the dimensions of a particular client.
Finally, changes have been made to the default Presenter, which is applied to AppWindows using the GetFromWindowId() function. The changes are not breaking as you will still be able to use the old Presenter implementation (OverlappedPresenter), but it will not block any window style changes that occur outside of the AppWindow/OverlappedPresenter API surface.
Windows App SDK 1.1 allows you to programmatically restart an application and set recovery options after an application closes due to events such as an update, crash, or freeze. This means that you can restore the app’s state after an unexpected restart and users can get back to work immediately.
These capabilities are part of the new AppInstance.Restart() API in the AppLifecycle class. In fact, this is an extended version of the RequestRestartAsync() UWP API that is available for both packaged and unpackaged desktop apps. Detailed usage information Restart API can be found on GitHub.
Released Template Studio for WinUI (C#). This is an extension for Visual Studio 2022 that is designed to speed up the creation of new WinUI applications. Projects created with this extension contain well-structured and readable code, and include all the latest features while implementing proven patterns and best practices. The generated code has links to documentation and TODO comments with information and recommendations for turning the project into a finished application. If you’re new to the WinUI/Windows App SDK or just want to use pre-built design patterns like MVVM in your new projects, Template Studio for WinUI (C#) is a great place to start.
Windows App SDK 1.1 now allows you to create self-contained applications that carry Windows App SDK dependencies. This allows you to control the version of the Windows App SDK and use different deployment strategies, such as xcopy deployment. To learn about the differences between self-contained and platform-dependent applications, see in the Microsoft documentation. To create a self contained application, follow guide on this link.
The Bootstrapper APIs required to use Windows App SDK features (e.g. WinUI 3, MRT Core) in non-MSIX-packaged apps are now easier to use and debug. Updates include a new tooltip in the user interface, more entries in the event log, and more options for handling layers, including calls debugbreak() and/or FailFast.
With Windows App SDK 1.1, you can now add, remove, and modify environment variables without using the registry API. Changing an environment variable in process, user, and machine scope is now a single process. In addition, for packaged applications, environment variable changes made by the manager will be automatically reverted to reduce the number of environment variable changes left behind by applications. Detailed information about EV Manager can be found on GitHub