What this book covers
Chapter 1, Introduction to WinUI, examines the history of UI frameworks in Windows and the origins of WinUI. It also walks you through creating your very first WinUI 3.0 project in Visual Studio 2019.
Chapter 2, Configuring the Development Environment and Creating the Project, introduces you to the project used throughout much of the book. The chapter explains the anatomy of a WinUI project and covers platform basics including the application life cycle and data binding.
Chapter 3, MVVM for Maintainability and Testability, explains the Model-View-ViewModel (MVVM) pattern, a design pattern that is fundamental to WinUI application development. You will also learn the basics of unit testing WinUI projects in this chapter.
Chapter 4, Advanced MVVM Concepts, continues to examine MVVM concepts in WinUI by adding a dependency injection (DI) NuGet package and service classes for page navigation and data retrieval.
Chapter 5, Exploring WinUI Controls, explores the controls available in WinUI 3.0 by introducing you to the XAML Controls Gallery application. This open source application helps developers discover controls with sample code that can be used in WinUI projects. You will then add a couple of new controls from the gallery to your project.
Chapter 6, Leveraging Data and Services, expands upon the data services created in Chapter 4, Advanced MVVM Concepts, to add a SQLite data store for persisting user data in the sample application. Data validation concepts will also be introduced to ensure invalid data cannot be entered by users.
Chapter 7, Fluent Design System for Windows Applications, covers Microsoft's cross-platform Fluent Design System for applications. The history and evolution of Windows design concepts will be explored. The chapter will also introduce the Fluent XAML Theme Editor for creating a custom UI theme for a WinUI application.
Chapter 8, Building WinUI Applications with .NET 5, explains how to create a WinUI for Desktop project that targets the .NET 5 platform instead of the UWP app platform. The chapter also illustrates how to create a .NET 5 control library to share controls across multiple WinUI desktop projects.
Chapter 9, Enhancing Applications with the Windows Community Toolkit, introduces you to the open source Windows Community Toolkit and its sample application for Windows. Controls, helpers, and other libraries from the toolkit will be explored and added to the sample projects in this chapter.
Chapter 10, Modernizing Existing Win32 Applications with XAML Islands, covers the XAML Islands controls from the Windows Community Toolkit and explains how to integrate them into WPF and WinForms applications as the first step toward application modernization and WinUI adoption.
Chapter 11, Debugging WinUI Applications with Visual Studio, takes a deep dive into the XAML debugging tools available to Windows developers in Visual Studio 2019. These tools allow WinUI developers to optimize and troubleshoot their XAML-based user interface code and data binding issues.
Chapter 12, Hosting an ASP.NET Core Blazor Application in WinUI, describes how to create and deploy a Blazor single-page application (SPA) to Azure with Visual Studio Code and GitHub Actions. The deployed Blazor application will then be hosted within a Windows application by leveraging the new WebView2 WinUI control.
Chapter 13, Building, Releasing, and Monitoring Applications with Visual Studio App Center, examines the features available in Visual Studio App Center to build, deploy, and monitor Windows applications. The chapter will help you understand how to instrument your code to get real-time analytics and crash data from your production applications.
Chapter 14, Packaging and Deploying WinUI Applications, talks about the different methods for deploying WinUI applications to consumers. The chapter explores how to use Visual Studio, the Microsoft Partner Center, the Microsoft Store, and WinGet to deploy your applications.