1 option
Learn WinUI 3 : Leverage WinUI and the Windows App SDK to Create Modern Windows Applications with C# and XAML / Alvin Ashcraft.
- Format:
- Book
- Author/Creator:
- Ashcraft, Alvin, author.
- Language:
- English
- Subjects (All):
- Application software--Development.
- Application software.
- C# (Computer program language).
- Physical Description:
- 1 online resource (386 pages)
- Edition:
- Second edition.
- Place of Publication:
- Birmingham, England : Packt Publishing Ltd., [2023]
- Summary:
- 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.
- Contents:
- Cover
- Title Page
- Copyright
- Dedication
- Contributors
- Table of Contents
- Preface
- Part 1: Introduction to WinUI and Windows Applications
- Chapter 1: Introduction to WinUI
- Technical requirements
- Before UWP - Windows 8 XAML applications
- Windows application UI design
- Windows Runtime (WinRT)
- User backlash and the path forward to Windows 10
- Windows 10 and UWP application development
- Language choice with UWP development
- Lifting app restrictions
- UWP backward compatibility
- What is XAML?
- Creating an adaptive UI for any device
- Powerful data binding
- Styling your UI with XAML
- Separating presentation from business logic
- What is WinUI?
- The first WinUI release
- The road to WinUI 3
- What's new in WinUI 3?
- Goodbye UWP?
- New features for WinUI 3 and the Windows App SDK
- The Windows App SDK and WinUI
- WinUI 3 compared to other Windows development frameworks
- WinUI versus UWP
- WinUI versus WPF
- WinUI versus Windows Forms (WinForms)
- Summary
- Questions
- Chapter 2: Configuring the Development Environment and Creating the Project
- Installing Visual Studio and Windows desktop development workloads
- Introducing the application idea
- Reviewing the application features
- WinUI in Desktop projects
- Creating your first WinUI project
- Anatomy of a WinUI in Desktop project
- Reviewing App.xaml
- Reviewing App.xaml.cs
- Reviewing MainWindow.xaml
- Reviewing MainWindow.xaml.cs
- Reviewing the project references
- Reviewing the project properties
- XAML basics
- Building the model
- Creating sample data
- Building the initial UI
- Completing the data-binding initialization
- Creating the DataTemplate and binding the UI
- Understanding WinUI and Windows App SDK
- Understanding the .NET app model.
- Working with WinUI controls, properties, and events
- Adding a ListView header
- Creating the ComboBox filter
- Adding a new item button
- Chapter 3: MVVM for Maintainability and Testability
- Understanding MVVM
- MVVM - the big picture
- MVVM libraries for WinUI
- The MVVM Toolkit
- The Prism Library
- MVVMCross
- Choosing a framework for WinUI applications
- Understanding data binding in WinUI
- What are markup extensions?
- Binding markup extension
- x:Bind markup extension
- Updating View data with INotifyPropertyChanged
- Updating collection data with INotifyCollectionChanged
- Implementing MVVM in WinUI applications
- Working with events and commands
- Implementing ICommand
- Using commands in the View Model
- Updating the View
- Leveraging the MVVM Toolkit
- Chapter 4: Advanced MVVM Concepts
- Understanding the basics of DI
- Using DI with ViewModel classes
- Leveraging x:Bind with events
- Page navigation with MVVM and DI
- Migrating MainWindow to MainPage
- Adding ItemDetailsPage
- Adding new interfaces and services
- Creating a navigation service
- Creating a data service
- Increasing maintainability by consuming services
- Handling parameters in ItemDetailsPage
- Creating the ItemDetailsViewModel class
- Chapter 5: Exploring WinUI Controls
- Understanding what WinUI offers developers
- Animated visual player (Lottie)
- Navigation View
- Parallax view
- Rating control
- Exploring the WinUI 3 Gallery app for Windows
- Learning about the ScrollViewer control
- Reviewing what's new in WinUI 3 and the Windows App SDK
- Backward compatibility
- Fluent UI and modern look and feel
- Visual Studio tooling
- The WebView2 control.
- What's new in the Windows App SDK
- Adding some new controls to the project
- Using the SplitButton control
- Adding a TeachingTip control to the Save button
- Chapter 6: Leveraging Data and Services
- Managing application state with app lifecycle events
- Exploring Windows application lifecycle events
- Lifecycle events of WinUI applications
- Additional lifecycle events with FrameworkElement objects
- Creating a SQLite data store
- What is SQLite?
- Adding SQLite as a data service
- Leveraging a Micro ORM to simplify data access
- Adding Dapper to the project
- Updating the data service's initialization
- Retrieving data via services
- Part 2: Extending WinUI and Modernizing Applications
- Chapter 7: Fluent Design System for Windows Applications
- What is the Fluent Design System?
- Exploring Fluent Design for Windows
- Controls
- Patterns
- Layout
- Input
- Style
- Incorporating Fluent Design in WinUI applications
- Updating the title bar
- Changing the style of MainPage
- Changing the style of ItemDetailsPage
- Using the Fluent XAML Theme Editor
- Colors
- Shapes
- Acrylic material and the Fluent Design System
- Use Mica in WinUI applications
- Incorporate Mica into My Media Collection
- Design resources and toolkits for Fluent Design
- Chapter 8: Adding Windows Notifications to WinUI Applications
- Overview of push notifications in the Windows App SDK
- Raw push notifications
- Cloud-based app notifications
- Local app notifications
- Using raw push notifications in WinUI applications
- Adding Windows app notifications with the Windows App SDK
- Chapter 9: Enhancing Applications with Community Toolkits
- Technical requirements.
- Introducing the WCT
- Origins of the WCT
- Reviewing recent toolkit releases
- Exploring the WCT Gallery app
- Installing and launching the app
- Using controls from the toolkit
- Creating the WinUI project
- Referencing WCT packages
- Adding data to the DataGrid control
- Adding controls to the MainWindow control
- Exploring the toolkit's helpers, services, and extensions
- Helpers
- Extensions
- .NET Community Toolkit features
- Chapter 10: Accelerating App Development with Template Studio
- Overview of Template Studio for WinUI
- Starting a new WinUI project with Template Studio
- Exploring the code generated by Template Studio
- Exploring the Core project
- Exploring the main project
- Exploring the MSTest project
- Template Studio extensions for other UI frameworks
- Template Studio for WPF
- Template Studio for Uno Platform
- Part 3: Build and Deploy on Windows and Beyond
- Chapter 11: Debugging WinUI Applications with Visual Studio
- Debugging in Visual Studio
- Debugging local applications
- Debugging remote applications
- Common XAML layout mistakes
- Improving your XAML with static code analysis
- Pinpointing data binding failures
- Common mistakes in data binding
- Using the XAML Binding Failures window
- Debugging live data with Live Visual Tree and Live Property Explorer
- Coding with XAML Hot Reload
- Debugging with Live Visual Tree and Live Property Explorer
- Chapter 12: Hosting a Blazor Application in WinUI
- Getting started with ASP.NET Core and Blazor
- A brief history of ASP.NET and ASP.NET Core
- What is Blazor?
- WebAssembly and client-side .NET development
- Creating a Blazor Wasm application.
- Building a simple application for tracking tasks
- Exploring Blazor Wasm deployment options
- Deployment options for Blazor Wasm projects
- Publishing Blazor to Azure Static Web Apps hosting
- Pushing the project to GitHub
- Creating an Azure Static Web Apps resource
- Publishing an application with GitHub Actions
- Hosting your Blazor application in the WinUI WebView2
- Chapter 13: Take Your App Cross-Platform with Uno Platform
- An overview of Uno Platform
- Creating your first Uno Platform project
- Migrating WinUI XAML markup and code to Uno Platform
- Migrating the WinUI project code
- Migrating the WinUI XAML views
- Running on Android with WSA
- Running in the browser with WebAssembly
- Chapter 14: Packaging and Deploying WinUI Applications
- Discovering application packaging and MSIX basics
- MSIX
- Reviewing MSIX tools and resources
- Packaged applications and application identity
- Getting started with application packaging in Visual Studio
- Deploying applications with Windows Package Manager
- Adding a package to the community repository
- Using WinGet for package management
- Distributing applications with the Microsoft Store
- Preparing a free application for the Microsoft Store
- Uploading a package to the Store
- Sideloading WinUI applications with MSIX
- Creating an MSIX package for sideloading
- Sideloading an MSIX package
- Index
- About Packt
- Other Books You May Enjoy.
- Notes:
- Includes bibliographical references and index.
- Description based on print version record.
- ISBN:
- 9781805129707
- 1805129708
- OCLC:
- 1407633198
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.