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
Free Trial
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.2 (5 Ratings)
Paperback Oct 2023 386 pages 2nd Edition
eBook
₱1199.99 ₱1714.99
Paperback
₱2142.99
Subscription
Free Trial
Arrow left icon
Profile Icon Alvin Ashcraft
Arrow right icon
Free Trial
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.2 (5 Ratings)
Paperback Oct 2023 386 pages 2nd Edition
eBook
₱1199.99 ₱1714.99
Paperback
₱2142.99
Subscription
Free Trial
eBook
₱1199.99 ₱1714.99
Paperback
₱2142.99
Subscription
Free Trial

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
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 : 9781805120063
Category :
Languages :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

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

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 ₱260 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 ₱260 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 7,552.97
Learn WinUI 3
₱2142.99
The MVVM Pattern in .NET MAUI
₱2347.99
C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals
₱3061.99
Total 7,552.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

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.