Muutke küpsiste eelistusi

Getting Started with the Uno Platform and WinUI 3: Hands-On Building of Cross-Platform Desktop, Mobile, and Web Applications That Can Run Anywhere 1st ed. [Pehme köide]

  • Formaat: Paperback / softback, 548 pages, kõrgus x laius: 254x178 mm, kaal: 1075 g, 160 Illustrations, black and white; XXIII, 548 p. 160 illus., 1 Paperback / softback
  • Ilmumisaeg: 01-Oct-2022
  • Kirjastus: APress
  • ISBN-10: 1484282477
  • ISBN-13: 9781484282472
  • Pehme köide
  • Hind: 57,96 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 68,19 €
  • Säästad 15%
  • Raamatu kohalejõudmiseks kirjastusest kulub orienteeruvalt 2-4 nädalat
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Tellimisaeg 2-4 nädalat
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 548 pages, kõrgus x laius: 254x178 mm, kaal: 1075 g, 160 Illustrations, black and white; XXIII, 548 p. 160 illus., 1 Paperback / softback
  • Ilmumisaeg: 01-Oct-2022
  • Kirjastus: APress
  • ISBN-10: 1484282477
  • ISBN-13: 9781484282472
Get ready to build applications that can run anywhere using the Uno Platform and WinUI. Modern application development can be an intimidating and complex topic, especially when you are building cross-platform applications that need to support multiple operating systems and form factors. There are so many options when it comes to frameworks and selecting the right one for your enterprise is critical in delivering a successful product to market. For the developer who has zero experience building apps with Xamarin, UWP, WinUI, or the Uno Platform, this book deconstructs those complex concepts into tangible building blocks so that productivity gains are immediately recognized.You will start off learning basic concepts and get a bird's-eye view of the enabling technologies to ensure that you feel comfortable with the tools and terminology. From there, you will learn about some of the more popular options in the .NET ecosystem, understand their attributes and shortcomings, and learn why the Uno Platform is ideal for building a cross-platform application that targets Android, iOS, Windows, WASM (Web Assembly), Linux, and MacOS.





Then, you will follow a product release timeline that takes you through building an application, introducing key concepts at every step of the way. Each section of the book is chock full of tips and edge case documentations for the different platforms.





What You Will Learn













Manage multi-targeting solutions: specifically, how to handle the different project heads Effectively write cross-platform software and handle the edge cases of the different platforms Understand the fundamentals of working with Uno Platform WinUI apps Explore enterprise-grade application architecture using MVVM Understand Dependency Injection and how it applies to application architecture

























Who This Book Is For



Developers who understand some basics of C# and object-oriented programming
About the Author xvii
About the Technical Reviewer xix
Acknowledgments xxi
Introduction xxiii
Chapter 1 Introduction to Uno Platform
1(6)
Who Is This Book For? All Developers
2(2)
.NET MAUI and Xamarin.Forms Developers
2(1)
Universal Windows Platform (UWP) and WinUI Developers
2(1)
Windows Presentation Framework (WPF) Developers
3(1)
.NET and C# Developers
3(1)
What Is Uno Platform
4(2)
Pixel Perfect
4(1)
Architecture
4(1)
Windows
5(1)
WebAssembly
5(1)
macOS and iOS
5(1)
Android
6(1)
Xamarin Is Not Xamarin.Forms
6(1)
Conclusion
6(1)
Chapter 2 New Project
7(46)
Visual Studio
7(2)
Requirements
8(1)
Project Templates
9(1)
Uno Check
9(4)
Requirements
10(1)
Installing Uno Check
11(1)
Run Uno Check
11(2)
Other IDEs
13(1)
UWP vs. WinUI
13(1)
Create a New Project
13(38)
Why Shared Projects?
17(1)
Shared Code: UnoDrive.Shared
18(1)
Windows Target: UnoDrive.Windows
19(1)
WebAssembly: UnoDrive.Wasm
20(3)
Mobile Targets
23(12)
WPF Target: UnoDrive.Skia.Wpf
35(3)
GTK Target: UnoDrive.Skia.Gtk
38(13)
Conclusion
51(2)
Chapter 3 Your First Page
53(24)
The Login Page
53(16)
Adding Controls
56(7)
Customize Layout and Controls
63(6)
Test Cross-Platform
69(6)
WebAssembly
70(1)
Android
71(1)
iOS
72(1)
macOS
73(1)
Linux
74(1)
WPF
75(1)
Conclusion
75(2)
Chapter 4 Application Styles
77(20)
Style Implementations
77(5)
Control Styles
78(2)
Page Styles
80(1)
Application Styles
80(1)
Named Styles
81(1)
Style Inheritance
82(3)
Organizing Styles
85(2)
App.xaml Styles
85(1)
Grouped Styles
86(1)
Implement Grouped Styles
87(8)
Create Entry Point
88(3)
Add TextBlock Styles
91(2)
Add Button Styles
93(1)
Update LoginPage.xaml
93(2)
Conclusion
95(2)
Chapter 5 Platform-Specific Code and XAML
97(24)
Pre-processor Directives
98(1)
XAML: XML Namespaces
98(1)
Multi-targeting Project
98(1)
Pre-processor Directives
99(14)
Code Organization
108(5)
Special Cases with Skia
113(1)
XAML: XML Namespaces
113(5)
Native Controls
118(1)
Multi-targeted Projects
118(1)
Conclusion
119(2)
Chapter 6 Master-Detail Menu and Dashboard
121(50)
Navigation Types
121(3)
Frame-Based Navigation (View Stack)
121(1)
Tabbed Menu
122(1)
Master-Detail Menu
123(1)
Combination
123(1)
Create a Dashboard Layout
124(19)
PaneCustomContent
126(1)
Menultems
126(1)
Header
126(1)
Frame
127(8)
Windows
135(1)
WASM
136(1)
Android
136(2)
iOS
138(3)
macOS
141(1)
Linux
141(1)
WPF
142(1)
Menu Navigation
143(3)
Page Header
146(24)
Windows
150(1)
WASM
151(1)
Android
152(3)
iOS
155(3)
macOS
158(1)
Linux
159(1)
WPF
160(3)
Windows
163(1)
WASM
164(1)
Android
165(1)
iOS
166(2)
macOS
168(1)
Linux
169(1)
WPF
170(1)
Conclusion
170(1)
Chapter 7 Custom Fonts
171(20)
Download Material Icons
171(1)
Add Font Styles
172(3)
Update the Header Control
174(1)
Add Font Files to Projects
175(1)
Windows
175(1)
Android
176(2)
Skia: Linux and WPF
178(4)
Linux
179(1)
WPF
180(2)
iOS
182(3)
macOS
185(3)
WASM
188(2)
Conclusion
190(1)
Chapter 8 Model-View-ViewModel (MVVM)
191(16)
What Is MWM?
191(2)
View
192(1)
Model
192(1)
ViewModel
192(1)
MWM Example
193(2)
MWM in UnoDrive
195(10)
ViewModelLocator
195(9)
Set AutoWireViewModel
204(1)
Use LoginViewModel
205(1)
Conclusion
206(1)
Chapter 9 Dependency Injection and Logging
207(32)
What Is Dependency Injection?
207(5)
Parts of the System
208(1)
Example
209(3)
Dependency Injection in UnoDrive
212(6)
Add Logging to Dependency Injection
218(19)
LoginViewModel
223(1)
Windows
223(3)
WebAssembly (WASM)
226(2)
WPF
228(2)
GTK
230(2)
Android/iOS/macOS
232(5)
Conclusion
237(2)
Chapter 10 Application Navigation
239(20)
Navigation in Uno Platform
240(3)
Optional Parameters
241(1)
Navigation Page Overrides
242(1)
Navigation Example
242(1)
Add Navigation to LoginViewModel
243(5)
Add NuGet Packages to Target Platforms
244(2)
Add Commanding to LoginViewModel
246(1)
Test Login Flow
247(1)
Create NavigationService
248(10)
Create INavigationService and Implementation
248(4)
Register INavigationService with Dependency Injection
252(1)
Add INavigationService to LoginViewModel
252(2)
Add INavigationService to the Dashboard
254(3)
Test the Application
257(1)
Conclusion
258(1)
Chapter 11 Authentication with Azure Active Directory
259(64)
How Does It Work?
259(3)
Scopes
260(1)
Access Token
260(1)
Refresh Token
261(1)
Redirect URI
261(1)
Azure App Registration
262(6)
Implement Authentication
268(45)
NuGet Packages
269(1)
Configuration and Dependency Injection
270(13)
Authentication Service
283(21)
Application Code Flow
304(9)
Test Authentication
313(8)
Windows
313(2)
WebAssembly (WASM)
315(1)
WPF
315(1)
GTK
316(1)
Android
317(1)
iOS
318(2)
macOS
320(1)
Conclusion
321(2)
Chapter 12 Converters
323(14)
How Does It Work?
324(1)
Create the Converters
325(7)
Is Empty To Visibility Converter
325(4)
Bool To Visibility Converter
329(3)
Add Converters to Global Styles
332(3)
Usage
335(1)
Conclusion
336(1)
Chapter 13 Microsoft Graph, Web APIs, and MyFilesPage
337(64)
Microsoft Graph
337(1)
Web APIs and Uno Platform
338(1)
Graph Service Implementation
338(23)
Add NuGet Packages
338(1)
Data Models
339(2)
.NET 6 Mobile Data Models
341(4)
GraphFileService Interface
345(1)
GraphFileService: Stubs
346(1)
GraphFileService: AuthenticationProvider
347(2)
GraphFileService: GetFilesAsync
349(9)
GraphFileService: GetRootFilesAsync
358(3)
Dependency Injection Setup
361(1)
ViewModel Implementation
361(17)
Constructor
362(2)
Properties and Data Binding
364(5)
Data Loading
369(3)
ViewModel Entry Point and Unitialize
372(3)
Complete View Model Code
375(3)
User Interface Implementation
378(13)
Address Bar
379(6)
Files and Folders Explorer
385(4)
MyFilesPage.xaml Complete Code
389(2)
Testing the Code
391(9)
Windows
392(1)
WebAssembly (WASM)
393(1)
WPF
394(1)
GTK
395(2)
Android
397(1)
iOS
398(1)
macOS
399(1)
Conclusion
400(1)
Chapter 14 Microsoft Graph and Dashboard Menu
401(18)
DashboardViewModel
401(10)
Implement the Constructor
402(1)
Public Properties
402(2)
Microsoft Graph Integration
404(3)
Initialize Implementation
407(2)
Complete DashboardViewModel Implementation
409(2)
Dashboard Changes
411(1)
User Interface Testing
412(6)
Windows
412(1)
WebAssembly (WASM)
413(1)
WPF
414(1)
GTK
415(1)
Android
416(1)
iOS
417(1)
macOS
418(1)
Conclusion
418(1)
Chapter 15 Images and GridView
419(16)
Uno Platform Image Layer
419(2)
Adding Images
421(2)
Displaying Images
423(4)
Create DataTemplate
424(3)
Test the User Interface
427(7)
Windows
428(1)
WebAssembly (WASM)
429(1)
WFP
430(1)
GTK
431(1)
Android
432(1)
iOS
433(1)
macOS
434(1)
Conclusion
434(1)
Chapter 16 Selectors
435(8)
How Do Selectors Work?
435(2)
Implement the Selector
437(5)
Add the Selector
437(2)
Update GridView Styles
439(3)
Conclusion
442(1)
Chapter 17 OneDrive Navigation
443(10)
Update Models
443(1)
Item Click Navigation
444(3)
Forward and Back Navigation
447(4)
Testing the User Interface
451(1)
Conclusion
452(1)
Chapter 18 Offline Data Access
453(48)
Offline Data Access Strategies
453(3)
Caching Strategies
455(1)
Local Data Store and LiteDB
456(4)
Add the LiteDB NuGet Package
457(1)
Create the DataStore
457(3)
Authentication and Token Caching
460(9)
Simple Caching in the Dashboard
469(7)
Add APIs to the DataStore
469(4)
Add Offline Code to the Dashboard
473(3)
GraphFileService and MyFilesPage Caching
476(24)
Add APIs to DataStore
476(8)
Add Offline Code to GraphFileService
484(10)
Update Loading Indicators
494(6)
Conclusion
500(1)
Chapter 19 Complete App
501(32)
Update the GraphFileService and Data Model
501(9)
Update View Models
510(16)
Port Existing Code into BaseFilesViewModel
511(9)
Update MyFilesViewModel
520(4)
Implement RecentFilesViewModel
524(1)
Implement SharedFilesViewModel
525(1)
Update the User Interface
526(5)
Conclusion
531(2)
Index 533
Skye Hoefling is a Lead Software Engineer and works on cross-platform apps for desktop, mobile, and web using Xamarin and .NET technologies. She has been using .NET and Microsoft technologies since 2006 and has a Bachelor of Science degree from Rochester Institute of Technology in Game Design and Development. Skye has a background in enterprise software, building custom web portals for large corporations as well as small projects used by general consumers. She is an active Open Source contributor, a Microsoft MVP in Developer Technologies, and a .NET Foundation Member. You can find her on twitter @SkyeTheDev as well at her software development blog, SkyeTheDev, where you will find a wide range of blogs.