Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Learn WinUI 3
Learn WinUI 3

Learn WinUI 3: Leverage WinUI and the Windows App SDK to create modern Windows applications with C# and XAML , Second Edition

Arrow left icon
Profile Icon Alvin Ashcraft
Arrow right icon
Can$42.99
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.2 (5 Ratings)
eBook Oct 2023 386 pages 2nd Edition
eBook
Can$42.99
Paperback
Can$53.99
Subscription
Free Trial
Arrow left icon
Profile Icon Alvin Ashcraft
Arrow right icon
Can$42.99
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.2 (5 Ratings)
eBook Oct 2023 386 pages 2nd Edition
eBook
Can$42.99
Paperback
Can$53.99
Subscription
Free Trial
eBook
Can$42.99
Paperback
Can$53.99
Subscription
Free Trial

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
Table of content icon View table of contents Preview book icon Preview Book

Learn WinUI 3

Introduction to WinUI

WinUI 3 is a set of user interface (UI) controls and libraries that Windows developers can leverage in their desktop applications. It is the UI part of the Windows App SDK, which was previously known as Project Reunion. UWP developers use the Windows Software Development Kit (Windows SDK) to build their applications and are required to select a target SDK version in a project’s properties. By extracting the UWP controls and UI components from the Windows SDK, rewriting them for use with .NET, and releasing them as a set of libraries in the Windows App SDK under the name WinUI, Microsoft has been able to release versions at a faster cadence than Windows itself (as Windows SDK versions are linked to those of Windows). This separation also enables the controls to be used on older versions of Windows 10. While building desktop applications with WinUI is the current recommendation, it is important to learn where WinUI and the Windows App SDK fit into the larger...

Technical requirements

To follow along with the examples in this chapter, the following software is required:

  • Windows 10 version 1809 or later or Windows 11. You can find your version of Windows in Settings | About.
  • Visual Studio 2022 version 17.0 or later with the following workload: .NET Desktop Development. On the Installation details tab of the Visual Studio Installer, ensure that Windows App SDK C# Templates is selected.

The source code for this chapter is available on GitHub at this URL: https://github.com/PacktPublishing/Learn-WinUI-3-Second-Edition/tree/main/Chapter01.

Note

The Windows App SDK site on Microsoft Learn has up-to-date guidance on setting up a developer workstation for WinUI 3 development: https://learn.microsoft.com/windows/apps/windows-app-sdk/set-up-your-development-environment.

Before UWP – Windows 8 XAML applications

Before UWP applications were launched with Windows 10 in 2015, there were XAML applications for Windows 8 and 8.1. The XAML syntax and many of the application programming interfaces (APIs) were the same, and they were Microsoft’s next step to achieve universal app development across desktop, mobile, and other platforms (Xbox, mixed reality, and so on). A XAML app could be written for Windows 8 and Windows Phone. These projects would generate separate sets of binaries that could be installed on a PC or a Windows Phone.

These apps had many other limitations that modern UWP apps do not. For instance, they only ran full-screen, as shown in the following screenshot:

Figure 1.1 – Windows 8 full-screen app (sourced from Stack Overflow; reproduced under CC BY-SA 4.0 – https://creativecommons.org/licenses/by-sa/4.0/)

Figure 1.1 – Windows 8 full-screen app (sourced from Stack Overflow; reproduced under CC BY-SA 4.0 – https://creativecommons.org/licenses/by-sa/4.0/)

Many other early restrictions on Windows 8 apps have been lessened or completely...

Windows 10 and UWP application development

While taking a leap forward with the launch of Windows 10, Microsoft also blended the best of what worked in previous versions of Windows. It brought back the start menu, but its contents look an awful lot like the Windows 8 home screen experience. In addition to an alphabetized list of all installed apps, there is a resizable area for pinned app tiles. In fact, when running Windows in Tablet mode, the start menu can transform into the Windows 8-style home screen experience for better usability on a touchscreen.

When Microsoft launched Windows 10, it also introduced UWP applications to Windows developers. While UWP apps have their roots in the XAML apps of Windows 8, some key differences give developers some major advantages when building apps for the platform.

A key advantage is the universal aspect of these apps. Microsoft builds versions of Windows 10 to run on different device families, listed as follows:

  • Desktop (PC)
  • ...

What is XAML?

XAML is based on Extensible Markup Language (XML). This would seem like a great thing as XML is a flexible markup language familiar to most developers. It is indeed flexible and powerful, but it has some drawbacks.

The primary problem with Microsoft’s implementations of XAML is that there have been so many variations of the XAML language created for different development platforms over the years. Currently, WinUI/UWP, Windows Presentation Foundation (WPF), and .NET MAUI (formerly Xamarin.Forms) applications all use XAML as their UI markup language, in addition to some third-party UI frameworks. However, each of these uses a different XAML implementation or schema, and the markup cannot be shared across the platforms. In the past, Windows 8, Silverlight, and Windows Phone apps also had additional.

If you have never worked with XAML before, you’re probably ready to see an example of some UI markup. The following XAML is a fragment that defines Grid containing...

What is WinUI?

The WinUI library is a set of controls and UI components that has been extracted from the Windows SDK and included in the Windows App SDK. After this separation, many controls have been enhanced and others have been added. The Windows App SDK is being developed in the open. Its issues are tracked on GitHub and with input from Microsoft and the Windows developer community.

So, if these WinUI libraries are based on UWP libraries in the Windows SDK, you may be wondering why you should choose WinUI as your UI framework instead of UWP. UWP has been around since the launch of Windows 10 and is quite robust and stable. There are several very good reasons to consider WinUI.

Choosing WinUI brings with it many of the benefits of open source software (OSS). OSS is typically very reliable. When software is developed in the open by an active developer community, issues are found and resolved quickly. In fact, if you find an issue with an open source package, you can fix it...

What’s new in WinUI 3?

Unlike WinUI 2.0 and the incremental versions that followed, WinUI 3 is a major update featuring more than new and improved controls and libraries to use with Windows desktop apps. In fact, the primary goal of WinUI 3 was not to add new controls and features beyond its current UWP counterparts. The Windows App SDK team has made WinUI a complete UI framework that can sit atop the Windows desktop .NET platform.

Goodbye UWP?

So, what is happening to UWP? Will our UWP apps stop working?

As previously mentioned, the plan for the UWP UI libraries is to keep providing important security updates, but they will not receive any new features going forward. It is likely that WinUI 2.8 will be the final 2.x version. All new features and updates will be developed for WinUI and the Windows App SDK. New applications will be developed in WinUI with either .NET, written in C# or VB, or with native C++. These clients will sit on top of the Win32 platform. This is...

WinUI 3 compared to other Windows development frameworks

Where does WinUI fit into the overall landscape of Microsoft’s Windows development frameworks? Let’s draw some comparisons to help answer that question, starting with those that are most like WinUI.

WinUI versus UWP

This is a tricky comparison because WinUI apps today share the same XAML schema as UWP apps. In fact, WinUI 2.x are controls for UWP applications. They share the same XAML schema, base visuals, and underlying Windows APIs. Any UWP app that has the same minimum and target versions of Windows specified can add the WinUI 2.x libraries to leverage the new and updated features. However, UWP will not receive any feature updates beyond WinUI 2.8. Only security and bug-fix updates will be released as 2.8x minor releases.

A key difference between apps that use WinUI versus traditional UWP apps is access to new and updated controls and other visual elements without requiring an updated Windows SDK. This...

Summary

We covered a lot of the history of Windows application development in this chapter. We learned about the origins of UWP and its roots in Windows 8 apps and learned of the benefits of XAML when building Windows UIs. We had a taste of what some simple WinUI app code and UIs look like. Finally, we examined the recent history of WinUI versions and how WinUI 3 is a complete replacement for the UWP UI libraries and a viable option for WPF developers going forward.

This will give you a good foundation of what’s to come as we start building an app with WinUI in the chapters ahead. In the next chapter, you will set up your development environment, learn about the app project that we will create throughout the book, and create your first WinUI 3 project. When we get to Chapter 3, MVVM for Maintainability and Testability, we will refactor the app to use the MVVM pattern. This will set us up with a solid, maintainable design as we later add to and extend the app throughout the...

Questions

  1. Which version of Windows first introduced UWP apps to developers?
  2. What is the name of the pattern commonly used by WinUI and other XAML developers to separate the UI logic from the business logic?
  3. WinUI and WPF apps can share the same XAML. True or false?
  4. Which was the first Microsoft UI framework to use XAML to define the UI?
  5. What was the version number of the first WinUI release?
  6. What is one of the benefits of developing with WinUI over WinForms?
  7. Can WinUI apps only be developed with .NET languages?
  8. Challenge: create a style that will apply to Button elements.
Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Find out how to create modern Windows apps with native UI controls
  • Get to grips with modernizing existing desktop apps with a modern UI
  • Leverage WinUI code to build apps for iOS, Android, the web, and more
  • Purchase of the print or Kindle book includes a free PDF eBook

Description

WinUI 3 takes a whole new approach to delivering Windows UI components and controls and has the ability to deliver the same features across multiple versions of Windows. Learn WinUI 3 is a comprehensive introduction to WinUI and Windows apps for anyone who is new to WinUI and XAML applications. This updated second edition begins by helping you get to grips with the latest features in WinUI and shows you how XAML is used in UI development. The next set of chapters will help you set up a new Visual Studio environment, develop a new desktop project, incorporate the Model-View-ViewModel (MVVM) pattern in a WinUI project, and develop unit tests for ViewModel commands. Next, you’ll cover the basics of data access from WinUI projects with a step-by-step approach. As you advance, you’ll discover how to leverage the Fluent Design System to design beautiful WinUI applications. You’ll also explore the contents and capabilities of the Windows Community Toolkit and learn how to create cross-platform apps with markup and code from your project using Uno Platform. The concluding chapters will teach you how to build, debug, and deploy apps to the Microsoft Store. By the end of this book, you’ll have learned how to build WinUI applications from scratch and how to modernize existing desktop apps using WinUI 3 and the Windows App SDK.

Who is this book for?

This book is for anyone looking to develop applications for Windows with a modern UI. If you’re familiar with Windows desktop app development and want to enhance your knowledge of the latest Windows development techniques, this book is for you. Whether you're starting a new project or planning to modernize your existing Windows apps, this book will provide you with guidance. Hands-on experience with C# and .NET is expected, but no prior knowledge of WinUI or the Windows App SDK is required.

What you will learn

  • Discover the latest features of WinUI 3 and learn how to provide product feedback
  • Understand the WinUI project structure and the app lifecycle
  • Use the MVVM pattern in WinUI and discover open source MVVM projects
  • Find out how to create a simple data store to save app data between sessions
  • Get to grips with incorporating the concepts of Fluent Design into a WinUI app
  • Discover how to use push notifications and app notifications in WinUI
  • Reuse WinUI views and view models in a cross-platform Uno Platform app

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Oct 31, 2023
Length: 386 pages
Edition : 2nd
Language : English
ISBN-13 : 9781805129707
Category :
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning

Product Details

Publication date : Oct 31, 2023
Length: 386 pages
Edition : 2nd
Language : English
ISBN-13 : 9781805129707
Category :
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just Can$6 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just Can$6 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total Can$ 188.97
Learn WinUI 3
Can$53.99
The MVVM Pattern in .NET MAUI
Can$58.99
C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals
Can$75.99
Total Can$ 188.97 Stars icon

Table of Contents

19 Chapters
Part 1:Introduction to WinUI and Windows Applications Chevron down icon Chevron up icon
Chapter 1: Introduction to WinUI Chevron down icon Chevron up icon
Chapter 2: Configuring the Development Environment and Creating the Project Chevron down icon Chevron up icon
Chapter 3: MVVM for Maintainability and Testability Chevron down icon Chevron up icon
Chapter 4: Advanced MVVM Concepts Chevron down icon Chevron up icon
Chapter 5: Exploring WinUI Controls Chevron down icon Chevron up icon
Chapter 6: Leveraging Data and Services Chevron down icon Chevron up icon
Part 2:Extending WinUI and Modernizing Applications Chevron down icon Chevron up icon
Chapter 7: Fluent Design System for Windows Applications Chevron down icon Chevron up icon
Chapter 8: Adding Windows Notifications to WinUI Applications Chevron down icon Chevron up icon
Chapter 9: Enhancing Applications with Community Toolkits Chevron down icon Chevron up icon
Chapter 10: Accelerating App Development with Template Studio Chevron down icon Chevron up icon
Part 3:Build and Deploy on Windows and Beyond Chevron down icon Chevron up icon
Chapter 11: Debugging WinUI Applications with Visual Studio Chevron down icon Chevron up icon
Chapter 12: Hosting a Blazor Application in WinUI Chevron down icon Chevron up icon
Chapter 13: Take Your App Cross-Platform with Uno Platform Chevron down icon Chevron up icon
Chapter 14: Packaging and Deploying WinUI Applications Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.2
(5 Ratings)
5 star 40%
4 star 0%
3 star 20%
2 star 20%
1 star 20%
Ngô Tiến Đường Feb 06, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Feefo Verified review Feefo
Michael Nov 05, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I recently had the pleasure of reading a preview copy of "Learn WinUI 3," and I must say, it exceeded my expectations. The chapter on packaging and deploying a completed app was particularly impressive. All the directions were clear and complete, making the typically frustrating process a breeze. If there’s an area for improvement, I wished it had more examples of simple applications. However, this book is well-written and highly recommended for anyone looking to master WinUI,
Amazon Verified review Amazon
Greg Grewe Jun 05, 2024
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
Though the content of my book was good and I did gain some value from the purchase. Within the book, there were several grammatical errors, incomplete examples, and syntax errors.
Feefo Verified review Feefo
Deniz Apr 26, 2024
Full star icon Full star icon Empty star icon Empty star icon Empty star icon 2
I start a new Job soon writing WinUI3 programs and I didn't found any good resource to understand the whole package of WinUI3. Then I found this book and thought it would be a nice resource to learn everything before starting the Job.The first two Chapters were great and understandable. These chapters helped me a lot. Though starting from Chapter 3 this book went downhill fast. The author suddenly stopped explaining stuff and just advices to copy the code from the github repo. Learning effect = 0. You have to puzzle together what you need to add or what you need to change. No explanation what you did and why you did it. The author suddenly renames whole methods for one page and assumes that you will somehow make it right. For example : he names a method in Chapter 4 "RegisterComponents" which returns nothing (void) then suddenly the method is called "RegisterServices" and returns "IServiceProvider" which won't be returned in the code example from the book - looking in the github repo there is no method called "RegisterServices" and the changes explained are done inside "RegisterComponents". It feels like the Author couldn't decide if he wants to write this book for people experienced in .NET GUI Frameworks or not. Concepts explained and whole chapters resolve around concepts you'd learn as a newbee but the way its explained (and skipped through) it rather feels like he assumes you already are very familiar and can work around it yourself.And one of the worst things in my opinion are the order he does stuff. Instead of starting from the beginning and working up, he starts with "easier" stuff that doesn't make sense when you didn't do the backbones of the changes you're about to do. Like for example starting in the View and then creating ViewModel or anything. You don't know why you do stuff - the IDE cant autocomplete because it doesn't know yet what data structures you are going to implement etc.If you're a bloody beginner you're screwed. Luckily I am not and somehow work around this confusing writing.I am now in the midst of chapter 4 and need to pause every few pages since its so exhausting how confusing this book is written and how much effort I have to put in to "fix" what the author should explain and show.I'd only recommend this book if you really want or need to learn WinUI3 since its the only available resource besides official documentation and figuring out yourself.Very sad considering I had really much fun the first two chapters.
Amazon Verified review Amazon
Bobby Waters Oct 26, 2024
Full star icon Empty star icon Empty star icon Empty star icon Empty star icon 1
I purchased Learn WinUI3 Second Edition in March 2024 and started working through the chapters. In Chapter 3 the book falls apart. The code in the book does not resemble the code on github. The sample application was poorly chosen in my opinion. It makes little sense and then the books code does not work. I thought it was just my lack of experience until I saw comments on the book's github repos. Hopefully better sources will emerge on this topic soon.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.