Book Image

Learn WinUI 3.0

By : Alvin Ashcraft
5 (1)
Book Image

Learn WinUI 3.0

5 (1)
By: Alvin Ashcraft

Overview of this book

WinUI 3.0 takes a whole new approach to delivering Windows UI components and controls, and is able to deliver the same features on more than one version of Windows 10. Learn WinUI 3.0 is a comprehensive introduction to WinUI and Windows apps for anyone who is new to WinUI, Universal Windows Platform (UWP), and XAML applications. The book begins by helping you get to grips with the latest features in WinUI and shows you how XAML is used in UI development. You'll then set up a new Visual Studio environment and learn how to create a new UWP project. Next, you'll find out how to incorporate the Model-View-ViewModel (MVVM) pattern in a WinUI project and develop unit tests for ViewModel commands. Moving on, you'll cover the Windows Template Studio (WTS) new project wizard and WinUI libraries in a step-by-step way. As you advance, you'll discover how to leverage the Fluent Design system to create beautiful WinUI applications. You'll also explore the contents and capabilities of the Windows Community Toolkit and learn to create a new UWP user control. Toward the end, the book will teach you how to build, debug, unit test, deploy, and monitor apps in production. By the end of this book, you'll have learned how to build WinUI applications from scratch and modernize existing WPF and WinForms applications using WinUI controls.
Table of Contents (20 chapters)
1
Section 1: Introduction to WinUI and Windows Applications
8
Section 2: Extending WinUI and Modernizing Applications
13
Section 3: Build and Deploy on Windows and Beyond

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.