Skip to main content
#insiderDevTour
Future-proof your Desktop Apps with
.NET Core 3
Alan Tsai
#insiderDevTour
About Me
Alan Tsai
蔡孟玹
• .NET 技術爲主後端工程師
• 喜歡學習不同東西
• DevOps, AI, Container, Azure
• Blogger
• Microsoft Certified Trainer
• Stud4.TW 成員
• 翻譯OSS
• 看小説
#insiderDevTour
WinUI
.NET Core 3
MSIX
XAML Islands
What we’ll cover today
#insiderDevTour
Platform Options
Windows Forms
Windows Presentation Foundation
Universal Windows Platform (UWP)
#insiderDevTour
Platform Options
Windows Forms
Windows Presentation Foundation
Universal Windows Platform (UWP)
#insiderDevTour
Platform Options
Windows Forms
Windows Presentation Foundation
Universal Windows Platform (UWP)
#insiderDevTour
UI Framework Options
Windows Presentation Foundation: https://github.com/dotnet/wpf
Windows Forms: https://github.com/dotnet/winforms
Windows 10 XAML: https://github.com/Microsoft/microsoft-ui-xaml
#insiderDevTour
.NET Core 3. Why?
Faster Side-by-Side
installation
Better packaging
options (MSIX)
Open Source .NET Standard 2.1 New Features
#insiderDevTour
.NET Schedule
July 2019
.NET Core 3.0
RC
Sept 2019
.NET Core 3.0
GA
Nov 2019
.NET Core 3.1
LTS
Nov 2020
.NET 5.0
GA
Nov 2021
.NET 6.0
LTS
Nov 2022
.NET 7.0
GA
Nov 2023
.NET 8.0
LTS
#insiderDevTour
Migrating
• .NET Portability Analyzer
• https://aka.ms/portabilityAnalyzer
• Migrate to PackageReference
• Manual process, but done by VS
• Blog Post with all steps
• https://aka.ms/porting-to-netcore3
#insiderDevTour
Demo
New WPF Project
#insiderDevTour
Environment Preparation - .NET Core 3
• https://dotnet.microsoft.com/download/dotnet-core/3.0
#insiderDevTour
Environment Preparation – VS 2019
• https://visualstudio.microsoft.com/zh-hant/vs
#insiderDevTour
Environment Preparation – Enable Preview
#insiderDevTour
Develop like using .NET Framework Version
#insiderDevTour
XAML Islands
#insiderDevTour
Windows shipped
App developer code
Xaml Hosting API Inbox Xaml Controls
WPF app WinForms app
WPF XAML Host WinForms XAML Host
WPF Control Wrappers WinForms Control Wrappers
C++ Win32 app
HWnd
App code
UWP Custom Controls WinUI 2.x
Windows 10 Subsystems: DirectX, Kernel, drivers, device access, …
1507 1511 1607 1703 1709 1803 1809 1903
Xaml Framework Composition, Animation, Input
OS code
XAML Islands Components Recap
#insiderDevTour
Windows shipped
App developer code
WPF app WinForms app
WPF XAML Host WinForms XAML Host
WPF Control Wrappers WinForms Control Wrappers
C++ Win32 app
UWP Custom Controls
WinUI 3.0
Windows 10 Subsystems: Presentation platform, DirectX, Kernel, drivers, device access, …
1507 1511 1607 1703 1709 1803 1809 1903
Xaml Controls
Xaml Framework & Xaml Host
Composition, Animation, Input
HWnd
App code
OS code
XAML Islands Components Future
#insiderDevTour
Demo
XAML Islands
#insiderDevTour
Try at home - Turn on Developer Mode
#insiderDevTour
MSIX – New Packaging Format
Never regret
installing an app
No machine rot!
Auto updates
Out of the box
Easier
distribution
Store
Network or Local
file share
HTTPS public URL
Container based
on Win10
Access to
Windows 10 APIs
that requires an
App Id.
MSIX Core
Win7 support
#insiderDevTour
Windows Platform
Think Windows10, not UI Framework
.NET Core 3
Open-source, faster, latest features
MSIX
New packaging format
XAML Islands
New UWP UI Controls on Win32
Recap
#insiderDevTour
Some Resource
• 「.net core 與 .net standard 實戰教學」
• https://blog.alantsai.net/tags/「net-core-與-net-standard-實戰教學」
• Sample code used for this session
• https://github.com/microsoft/InsiderDevTourDemos19/tree/master/Sessions/desktopApps
• Modernize your desktop apps
• https://docs.microsoft.com/en-us/windows/apps/desktop/modernize/
#insiderDevTour
You’ll learn:
Learn more!
Check out the lab for this session!
• Sample code used in this session and more
aka.ms/insiderdevtour-labs
#insiderDevTour
Next up…
Thanks!
Please don’t forget to complete the survey!
The Future is Now with ASP.NET Core 3.0
Edward Kuo
#insiderDevTour
Insider Dev Tour