SlideShare a Scribd company logo
#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

More Related Content

PDF
.Net core 與 .net standard 實戰教學 開發指南
PDF
Deploy Deep Learning Application with Azure Container Instance - Devdays2018
PPTX
#19 Azure with Build 2019 - Windows Terminal
PPTX
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
PDF
TiConf NY 2014 - Alloy 2.0
PDF
RapidDev - Develop Titanium apps at the speed of the web!
PDF
Continuous Integration @ MeetMagento Germany 2015
PDF
Continuous Delivery at Netflix, and beyond
.Net core 與 .net standard 實戰教學 開發指南
Deploy Deep Learning Application with Azure Container Instance - Devdays2018
#19 Azure with Build 2019 - Windows Terminal
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
TiConf NY 2014 - Alloy 2.0
RapidDev - Develop Titanium apps at the speed of the web!
Continuous Integration @ MeetMagento Germany 2015
Continuous Delivery at Netflix, and beyond

What's hot (20)

PDF
[English][Test Girls] Zero to Hero: Start Test automation with Cypress
PPTX
北科大 劉承諺 & 余康正 Processing案例分享
PDF
WordPress + Docker - Reusable WordPress development environments
PDF
Firebaseの運用に役立つTips5
PPTX
Visual Studio ALM Rangers awareness
PPTX
Memaksimalkan Non-Blocking IO pada Node.js
PDF
VAaddyとは VAddyミートアップvol3_20160629
PPTX
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
PPTX
Cypress Automation
PPT
Infrastrucutre As Code
PDF
Horizontally Scaling Node.js and WebSockets
PPTX
Empezá a trabajar en la nube
PPTX
PhoneGap day 2016 EU: Simulating Cordova Plugins in the Browser
PDF
Ti.Roma - Meetup - Jumpstart w/ JALT
PDF
Leveraging the Power of Custom Elements in Gutenberg
PDF
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
PDF
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...
PDF
Webinar - Continuous Integration with GitLab
PDF
Zero To Cloud (OSCon 2014)
PDF
Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)
[English][Test Girls] Zero to Hero: Start Test automation with Cypress
北科大 劉承諺 & 余康正 Processing案例分享
WordPress + Docker - Reusable WordPress development environments
Firebaseの運用に役立つTips5
Visual Studio ALM Rangers awareness
Memaksimalkan Non-Blocking IO pada Node.js
VAaddyとは VAddyミートアップvol3_20160629
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
Cypress Automation
Infrastrucutre As Code
Horizontally Scaling Node.js and WebSockets
Empezá a trabajar en la nube
PhoneGap day 2016 EU: Simulating Cordova Plugins in the Browser
Ti.Roma - Meetup - Jumpstart w/ JALT
Leveraging the Power of Custom Elements in Gutenberg
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...
Webinar - Continuous Integration with GitLab
Zero To Cloud (OSCon 2014)
Building a Spring Boot Application - Ask the Audience! (from JVMCon 2018)
Ad

Similar to Insider Dev Tour Taipei 2019 - Future proof your desktop apps with .net core (20)

PPTX
20141216 멜팅팟 부산 세션 ii - cross platform 개발
PPTX
Modernizing Desktop Apps on Windows 10
KEY
webOS App by Example: Sorting Thoughts
PPTX
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
PPT
MikeTaulty_WPF_DevDays
PPT
Mike Taulty Beyond Silverlight With W P F
PPTX
Runtime 8 and Windows Phone 8
PDF
.NET Conf 2021 - Hot Topics Desktop Development
PDF
201500912 Hello Windows 10
PPT
windows CE
PPT
Working with WebServices.ppt
PPT
Windows Embedded in the Real World
PPTX
Windows Phone 8 - 1 Introducing Windows Phone 8 Development
PPTX
Windows Phone 8 - introducing wp8 development
PDF
Welcome to the .NET world
PDF
The Ultimate Administrator’s Guide to HCL Nomad Web
PPT
Silverlight Training
PPTX
Automating That "Other" OS
PPTX
Windows Phone 8 Advanced Developers Conference
PPTX
Adc2012 windows phone 8
20141216 멜팅팟 부산 세션 ii - cross platform 개발
Modernizing Desktop Apps on Windows 10
webOS App by Example: Sorting Thoughts
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
MikeTaulty_WPF_DevDays
Mike Taulty Beyond Silverlight With W P F
Runtime 8 and Windows Phone 8
.NET Conf 2021 - Hot Topics Desktop Development
201500912 Hello Windows 10
windows CE
Working with WebServices.ppt
Windows Embedded in the Real World
Windows Phone 8 - 1 Introducing Windows Phone 8 Development
Windows Phone 8 - introducing wp8 development
Welcome to the .NET world
The Ultimate Administrator’s Guide to HCL Nomad Web
Silverlight Training
Automating That "Other" OS
Windows Phone 8 Advanced Developers Conference
Adc2012 windows phone 8
Ad

More from Alan Tsai (20)

PDF
初探 Prompt Flow 開發生成式 AI 應用的利器 | R-Ladies Taipei
PDF
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
PDF
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
PDF
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
PDF
Microsoft Learn AI 挑戰賽-實戰三 MLOps | Alan Tsai
PPTX
2021 Net Conf Taiwan-初探 Azure Communication Service 讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
PDF
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
PPTX
我和阿九(Azure)有約 17 Azure Sql Database 基本介紹
PPTX
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
PDF
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
PPTX
我和阿九Azure有約 39 Azure Blob Storage 如何省錢? 設定 Access Tier 以及透過 Lifecycle Managem...
PPTX
我和阿九Azure有約 38 Azure Blob Storage 如何省錢? 搞懂Access Tier (Alan Tsai 的學習筆記)
PPTX
我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...
PPTX
我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)
PPTX
我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)
PPTX
我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...
PPTX
我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...
PPTX
我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)
PPTX
Azure Taiwan - Keep azure cost down (Azure 成本管控)
PPTX
我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)
初探 Prompt Flow 開發生成式 AI 應用的利器 | R-Ladies Taipei
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
Microsoft Learn AI 挑戰賽-實戰三 MLOps | Alan Tsai
2021 Net Conf Taiwan-初探 Azure Communication Service 讓 App 也有視訊、通話、即時聊天、簡訊和電話功能
Visual Studio 開發密技大補帖 | Study4.TW 2021 小聚#2
我和阿九(Azure)有約 17 Azure Sql Database 基本介紹
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務
我和阿九Azure有約 39 Azure Blob Storage 如何省錢? 設定 Access Tier 以及透過 Lifecycle Managem...
我和阿九Azure有約 38 Azure Blob Storage 如何省錢? 搞懂Access Tier (Alan Tsai 的學習筆記)
我和阿九Azure有約 37 Azure Blob Storage 如何檔案異動自動記錄建立檔案版本?Version Preview (Alan Tsai...
我和阿九Azure有約 36 Azure Blob Storage 如何開啟snapshot保留目前狀態 (Alan Tsai的學習筆記)
我和阿九Azure有約 35 Azure Blob Storage 如何開啟 Soft Delete?避免誤刪檔案 (Alan Tsai的學習筆記)
我和阿九Azure有約 34 Azure File Storage 什麼時候適合用Azure File? File vs Disk Storage (Al...
我和阿九Azure有約 33 Azure File Storage 什麼時候適合用Azure File? File vs Blob (Alan Tsai的...
我和阿九Azure有約 32 Azure File Storage 介紹 (Alan Tsai的學習筆記)
Azure Taiwan - Keep azure cost down (Azure 成本管控)
我和阿九(Azure)有約 31 Azure Blob Storage 使用azcopy進行自動化作業 (Alan Tsai 的學習筆記)

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Approach and Philosophy of On baking technology
PDF
KodekX | Application Modernization Development
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Cloud computing and distributed systems.
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
Teaching material agriculture food technology
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Approach and Philosophy of On baking technology
KodekX | Application Modernization Development
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Cloud computing and distributed systems.
Mobile App Security Testing_ A Comprehensive Guide.pdf
The AUB Centre for AI in Media Proposal.docx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Empathic Computing: Creating Shared Understanding
20250228 LYD VKU AI Blended-Learning.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Per capita expenditure prediction using model stacking based on satellite ima...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Encapsulation_ Review paper, used for researhc scholars
Agricultural_Statistics_at_a_Glance_2022_0.pdf
MIND Revenue Release Quarter 2 2025 Press Release

Insider Dev Tour Taipei 2019 - Future proof your desktop apps with .net core

Editor's Notes

  • #5: If you ever built a Windows App, you probably had to choose over one of these three platforms
  • #6: But in fact, what you really want to target is Windows. Windows is the platforms. These options are just different UI framework options you have, when targeting Windows.
  • #7: And even more, when you optimize your App to target Windows 10, you get even more innovations, APIs and benefits that the Windows 10 OS provides you. Think of Windows as the platform. The UI framework is just a preference
  • #8: And again, all these options of UI frameworks are now open-source.
  • #9: Open-Source More performant Great adoption and love More frequent updates
  • #10: Every even numbered release is an LTS version. .NET 5 will unify all flavors of .NET (.NET Framework, .NET Core and Mono) in one, and Microsoft ship the first version of it in November 2020.
  • #11: .Net Portability Analyzer helps you identify parts of your code that are or are not portable to .NET Core, giving you a full Excel report. First step is to migrate from package.json to PackageReference. Easiest way is to create an empty csproj running “dotnet new wpf” or “dotnet new winforms”. You can use the generated csproj as a starting point, migrating your PackageReferences from your old csproj, and going from there. Most projects should be pretty strait forward. If you need more information, follow the steps on the blog post. It is very complete.
  • #12: 8 minutes 3:38 After demo 5 minutes 4:43
  • #17: In 1993 Microsoft shipped Win32. WinForms came 9 years later, in 2002. In 2006 we shipped WPF, and in 2015, UWP. All the innovations we have on input, like inking, touch, and Pen, inside Windows, were only available if you used UWP. So Modern apps can only be developed with UWP? No! That’s what XAML Islands improves. It is the technology that enables developers to modernize their apps at their own pace, using the newest UWP controls in Win32, WinForms or WPF. Just as one example, the new Terminal you just saw uses XAML Island.
  • #18: WinUI provides official native Windows UI controls and features for UWP apps. It is the easiest way to build great Fluent Design experiences for Windows, and it’s open-source! This is the Presentation Framework and the XAML Islands architecture. While WinUI 2 works on multiple version of the OS, XAML Islands works only on the newest version of Windows, the May 2019 Update. We heard the feedback that you wanted to use the greatest and latest controls, and even XAML Islands, on older version of Windows.
  • #19: I’m happy to share that when we ship WinUI 3.0, you’ll be able to use controls that were shipped on newer version of Windows on older versions of Windows, all the way back to the version we released on July/2016, meaning you’ll be able to build your apps with the latest and greatest SDK and ship it without having to wait for your customers to update their Windows version. And that includes XAML Islands! WinUI 3.0 will greatly expand the scope of WinUI to include the full native Windows UI platform.
  • #20: App Manifest to set the MaxTestedVersion property 4 minutes 4:47 After demo 6 minutest 4:52
  • #22: New packaging format that replaces MSI and APPX.