SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
xedotnet.org
How to modernise WPF and
Windows Forms applications
with Windows Apps SDK
Mirco Vanini
@MircoVanini
• Windows Form | aka WinForms
• Windows Presentation Fondation | aka WPF
• Universal Windows Platform | aka UWP *
• Windows UI | aka WinUI
• .NET Multi-Platform Application UI | aka MAUI
• Blazor Desktop
• Windows App SDK
Desktop Technologies
* Microsoft stirred up some debate with its recent announcement that ".NET 5/6 Will Not Be Coming to UWP Project Types,"
which many decried as a further deprecation of UWP on the part of the company.
Platforms
• Support to latest tooling and C# features
• Core runtime and API improvements
• Performance
• Deploy
• Side by side
• Machine global or app local framework
• Self conteined EXEs
Desktop Application .NET 6
• WPF and Windows Forms supported as first-class citizens in .NET
• Improved Designer Support (both WinForms and XAML)
• Improved ClickOnce Support
• Improved performance and reliability
• Accessibility improvements
• Quick Actions
• XAML Hot Reload Improvements (WPF /WinUI)
• Hot Reload
• IntelliSense Improvements
Windows Development
• Use the new TFM dedicated to Windows to light up most of the APIs and features
from Universal Window Platform
• Easily integrate notification, geolocation, Windows Hello, Bluetooth, Low Energy, …
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows10.0.22000.0</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
</PropertyGroup>
</Project>
Windows 10 integration
• .NET aims to re-introduce the experience of publishing small, self-contained
version of applications
• Across all .NET application formats (Windows, Web,…)
• Across all the platforms (Windows, Mac, Linux)
• Required Framework components are included in the deployment
• True xcopy-enabled, single-file executables
• Assembly Trimming
• .NET has come a long way for this
Single File Applications
• New Edge-Chromium-based HTML control
• Available in Windows Forms, WPF
• .NET Framework, .NET Core 3.x, and .NET 5/6
• Windows 7 and later
• Evergreen (updated every 6 weeks)
• WebView2 Evergreen is now a Windows component
WebView2
• .NET has many performance and size optimizations specifically driven by
support for ARM chips
• ARM chips are very popular in phones, but they are also becoming more
popular in laptops
• Surface Pro X is ARM-based
• Apple has announced that their Apple Silicon-based Macs will be ARM based
• IoT devices are often based on ARM chips
• Raspberry Pi 3 & 4 are ARM-based
ARM64
• Improvement to in-app toolbar
• Inline color previews
• Design Time Data
https://docs.microsoft.com/visualstudio/xaml-tools/xaml-designtime-data
• Refresh designer button
• Suggested Actions
• XAML Hot Reload
• XAML Binding Failures
• New Designer for .NET FW apps
• XAML Live Preview !
New features in XAML Tooling
• Reduce time and difficulty modernizing older .NET codebases
• Helps to analyze and upgrade older codebases
• Understands dependencies
• Provides guidance and assistance
• Multiple project types supported
Learn more | https://aka.ms/dotnet-upgrade-assistant
.NET Upgrade Assistant
• Support new hardware
• Modern use experience
• App deploy and management
• Reliability, security, privacy
• System performance and battery life
Making app great for people who use them
… but starting where you are
• Compatibility with all you code (WinForm, WPF, UWP, MFC)
• Support for existing packaging and deployment
• Features that work across users’ version of Windows 10/11
• This is the former “Project Reunion”
• Re-unification of various Windows/Desktop UI technologies
• WinForms, WPF, UWP, WinUI, Xamarin
Windows App SDK
The Windows App SDK is a set of new
developer components and tools that
represent the next evolution in the Windows
app development platform. The Windows
App SDK provides a unified set of APIs and
tools that can be used in a consistent way by
any desktop app on Windows 11 and down-
level to Windows 10, version 1809.
The Windows App SDK does not replace the Windows SDK or existing
desktop Windows app types such as .NET (including Windows Forms and
WPF) and desktop Win32 with C++. Instead, the Windows App SDK
complements these existing tools and app types with a common set of APIs
that developers can rely on across these platforms.
1709 1803 1809 1903 1909 2004 Win11
2018 2019 2020 2021
Windows App SDK
App type 1.0 1.1 (Q2 2022)
Desktop apps
(WinUI 3, WPF, etc)
✅ WinUI 3**
✅ Text rendering
✅ Resource management
✅ App lifecycle
✅ Windowing
🔁 Push Notifications
✅ WinUI 3**
✅ Text rendering
✅ Resource management
✅ App lifecycle
✅ Windowing
✅ Push Notifications
✅ Multiple windows
✅ Elevation support
✅ Local toast notifications
✅ Environmental variables API
✅ Restart API
✅ Self-contained deployment
✅ Supported | 🔁 Experimental
** - WinUI 3 in 1.0 and 1.1 is only supported for use by full WinUI 3 apps. You'll be able to use WinUI 3 in
WPF/WinForms/other apps in a future release via XAML Islands.
WinUI 3
• Continuation of WinRT, XAML Islands,…
• Windows 10/11 only
WinUI 3 is the next generation of
the WinUI framework. It
dramatically expands WinUI into a
full UX framework, making WinUI
available for all types of Windows
apps – from Win32 to UWP – for
use as the UI layer.
• The .NET team is working on next-generation cross-platform
framework for C# developers, called MAUI (Multi App User Interface)
• Use .NET and C# to build application for iOS, Android, MacOS and
Windows
• Share business logic and UI
• WinUI and Windows App SDK is the target framework for Windows
Windows Apps SDK and cross-platform apps
Demo
• Windows Apps SDK SDK doesn’t include only WinUI, but other
features that can be integrated in existing Win32 apps:
• Resource manager
• Activation APIs
• Windowing APIs
• Text rendering
• Push notification
Windows Apps SDK, ther is more...
• Supporto also in Win32 apps the rich activation system introduced in
the universal Windows Platofrm like file, protocol, statup task,
pickers, etc.
• Enables the usage oa the AppInstance class to manage single-
instance apps and multi-instanced apps
• It enables advanced redirection scenarios, like working in single
instance mode, but switching to multi-instance if the application is
activated from file
Windows Apps SDK – Activation APIs
• New AppWindow API which acts as a high-level implementation of
HWND
• Lot of customization options for your windows:
• Customize the title bar
• Use a custom title bar based on XAML
• Support full screen and compact overlay
Windows Apps SDK – Windows management APIs
Q&A
.NET
your platform for building anything
Mirco Vanini
Microsoft® MVP Windows Development
myContactInfo:
{
”e-mail”:“mirco.vanini@proxsoft.it”,
“web”: “www.proxsoft.it”,
“twitter”: “@MircoVanini”
}

Weitere ähnliche Inhalte

Was ist angesagt?

Short introduction - .net core and .net standard 2.0
Short introduction - .net core and .net standard 2.0Short introduction - .net core and .net standard 2.0
Short introduction - .net core and .net standard 2.0Mark Lechtermann
 
How to Port Your .NET Applications to Linux Using Mono Tools for Visual Studio
How to Port Your .NET Applications to Linux Using Mono Tools for Visual StudioHow to Port Your .NET Applications to Linux Using Mono Tools for Visual Studio
How to Port Your .NET Applications to Linux Using Mono Tools for Visual StudioNovell
 
Windows Phone 8 - 1 Introducing Windows Phone 8 Development
Windows Phone 8 - 1 Introducing Windows Phone 8 DevelopmentWindows Phone 8 - 1 Introducing Windows Phone 8 Development
Windows Phone 8 - 1 Introducing Windows Phone 8 DevelopmentOliver Scheer
 
Learn .NET Core - Introduction
Learn .NET Core - IntroductionLearn .NET Core - Introduction
Learn .NET Core - IntroductionEng Teong Cheah
 
Introduction to .NET Core
Introduction to .NET CoreIntroduction to .NET Core
Introduction to .NET CoreMarco Parenzan
 
Tizen Operating System
Tizen Operating SystemTizen Operating System
Tizen Operating SystemUday_Peddur
 
The Future Of Dot Net Core
The Future Of Dot Net CoreThe Future Of Dot Net Core
The Future Of Dot Net CoreRajesh Shirsagar
 
.Net platform .Net core fundamentals
.Net platform .Net core  fundamentals.Net platform .Net core  fundamentals
.Net platform .Net core fundamentalsHosein Mansouri
 
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...Anne Nicolas
 
Mah tweets oss wp7
Mah tweets oss wp7Mah tweets oss wp7
Mah tweets oss wp7Nick Hodge
 

Was ist angesagt? (19)

Short introduction - .net core and .net standard 2.0
Short introduction - .net core and .net standard 2.0Short introduction - .net core and .net standard 2.0
Short introduction - .net core and .net standard 2.0
 
How to Port Your .NET Applications to Linux Using Mono Tools for Visual Studio
How to Port Your .NET Applications to Linux Using Mono Tools for Visual StudioHow to Port Your .NET Applications to Linux Using Mono Tools for Visual Studio
How to Port Your .NET Applications to Linux Using Mono Tools for Visual Studio
 
.Net Core
.Net Core.Net Core
.Net Core
 
Windows Phone 8 - 1 Introducing Windows Phone 8 Development
Windows Phone 8 - 1 Introducing Windows Phone 8 DevelopmentWindows Phone 8 - 1 Introducing Windows Phone 8 Development
Windows Phone 8 - 1 Introducing Windows Phone 8 Development
 
Learn .NET Core - Introduction
Learn .NET Core - IntroductionLearn .NET Core - Introduction
Learn .NET Core - Introduction
 
Introduction to .NET Core
Introduction to .NET CoreIntroduction to .NET Core
Introduction to .NET Core
 
Explore asp.net core 3.0 features
Explore asp.net core 3.0 featuresExplore asp.net core 3.0 features
Explore asp.net core 3.0 features
 
Tizen OS
Tizen OSTizen OS
Tizen OS
 
Firefox os ppt
Firefox os pptFirefox os ppt
Firefox os ppt
 
Tizen Operating System
Tizen Operating SystemTizen Operating System
Tizen Operating System
 
Net core
Net coreNet core
Net core
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
 
The Future Of Dot Net Core
The Future Of Dot Net CoreThe Future Of Dot Net Core
The Future Of Dot Net Core
 
Lets Auto It
Lets Auto ItLets Auto It
Lets Auto It
 
.Net Core
.Net Core.Net Core
.Net Core
 
.Net platform .Net core fundamentals
.Net platform .Net core  fundamentals.Net platform .Net core  fundamentals
.Net platform .Net core fundamentals
 
Dedicated embedded linux af Esben Haabendal, Prevas A/S
Dedicated embedded linux af Esben Haabendal, Prevas A/SDedicated embedded linux af Esben Haabendal, Prevas A/S
Dedicated embedded linux af Esben Haabendal, Prevas A/S
 
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
 
Mah tweets oss wp7
Mah tweets oss wp7Mah tweets oss wp7
Mah tweets oss wp7
 

Ähnlich wie How to modernise WPF and Windows Forms applications with Windows Apps SDK

Xe OneDay - Modernizing Enterprise Apps
Xe OneDay - Modernizing Enterprise AppsXe OneDay - Modernizing Enterprise Apps
Xe OneDay - Modernizing Enterprise AppsMirco Vanini
 
.NET Conf 2021 - Hot Topics Desktop Development
.NET Conf 2021 - Hot Topics Desktop Development.NET Conf 2021 - Hot Topics Desktop Development
.NET Conf 2021 - Hot Topics Desktop DevelopmentMirco Vanini
 
Developing Windows 10 Hosted Web Apps
Developing Windows 10 Hosted Web AppsDeveloping Windows 10 Hosted Web Apps
Developing Windows 10 Hosted Web AppsChris Dufour
 
.NET Conf 2020 - Hot Topics Desktop Development
.NET Conf 2020 - Hot Topics Desktop Development.NET Conf 2020 - Hot Topics Desktop Development
.NET Conf 2020 - Hot Topics Desktop DevelopmentMirco Vanini
 
Windows Phone 8 - introducing wp8 development
Windows Phone 8 - introducing wp8 developmentWindows Phone 8 - introducing wp8 development
Windows Phone 8 - introducing wp8 developmentGouda Mando
 
(WPF + WinForms) * .NET Core = Modern Desktop
(WPF + WinForms) * .NET Core = Modern Desktop(WPF + WinForms) * .NET Core = Modern Desktop
(WPF + WinForms) * .NET Core = Modern DesktopOren Novotny
 
Building Universal Windows Apps for Smartphones and Tablets with XAML & C#
Building Universal Windows Apps for Smartphones and Tablets with XAML & C#Building Universal Windows Apps for Smartphones and Tablets with XAML & C#
Building Universal Windows Apps for Smartphones and Tablets with XAML & C#Nick Landry
 
Microsoft xamarin-experience
Microsoft xamarin-experienceMicrosoft xamarin-experience
Microsoft xamarin-experienceXpand IT
 
Windows Universal Apps
Windows Universal AppsWindows Universal Apps
Windows Universal AppsJames Quick
 
Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderBuild Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderJeffrey T. Fritz
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsVicente Gerardo Guzman Lucio
 
Desktop Bridge with WPF - One way to build modern apps with WPF
Desktop Bridge with WPF - One way to build modern apps with WPFDesktop Bridge with WPF - One way to build modern apps with WPF
Desktop Bridge with WPF - One way to build modern apps with WPFChristian Nagel
 
What's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET DevelopersWhat's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET DevelopersJon Galloway
 
Cloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal AppsCloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal AppsShahed Chowdhuri
 
Windows 8 App and Game Development Landscape
Windows 8 App and Game Development LandscapeWindows 8 App and Game Development Landscape
Windows 8 App and Game Development LandscapeJim O'Neil
 
Windows 10 pentru dezvoltatori - InfoEducație 2015
Windows 10 pentru dezvoltatori - InfoEducație 2015Windows 10 pentru dezvoltatori - InfoEducație 2015
Windows 10 pentru dezvoltatori - InfoEducație 2015Julian Atanasoae
 
What's new in Blend for Visual Studio 2015
What's new in Blend for Visual Studio 2015What's new in Blend for Visual Studio 2015
What's new in Blend for Visual Studio 2015Fons Sonnemans
 
Windows Phone 8 App Development
Windows Phone 8 App DevelopmentWindows Phone 8 App Development
Windows Phone 8 App DevelopmentDalpatTapaniya
 

Ähnlich wie How to modernise WPF and Windows Forms applications with Windows Apps SDK (20)

Xe OneDay - Modernizing Enterprise Apps
Xe OneDay - Modernizing Enterprise AppsXe OneDay - Modernizing Enterprise Apps
Xe OneDay - Modernizing Enterprise Apps
 
.NET Conf 2021 - Hot Topics Desktop Development
.NET Conf 2021 - Hot Topics Desktop Development.NET Conf 2021 - Hot Topics Desktop Development
.NET Conf 2021 - Hot Topics Desktop Development
 
Developing Windows 10 Hosted Web Apps
Developing Windows 10 Hosted Web AppsDeveloping Windows 10 Hosted Web Apps
Developing Windows 10 Hosted Web Apps
 
.NET Conf 2020 - Hot Topics Desktop Development
.NET Conf 2020 - Hot Topics Desktop Development.NET Conf 2020 - Hot Topics Desktop Development
.NET Conf 2020 - Hot Topics Desktop Development
 
Windows Phone 8 - introducing wp8 development
Windows Phone 8 - introducing wp8 developmentWindows Phone 8 - introducing wp8 development
Windows Phone 8 - introducing wp8 development
 
(WPF + WinForms) * .NET Core = Modern Desktop
(WPF + WinForms) * .NET Core = Modern Desktop(WPF + WinForms) * .NET Core = Modern Desktop
(WPF + WinForms) * .NET Core = Modern Desktop
 
Building Universal Windows Apps for Smartphones and Tablets with XAML & C#
Building Universal Windows Apps for Smartphones and Tablets with XAML & C#Building Universal Windows Apps for Smartphones and Tablets with XAML & C#
Building Universal Windows Apps for Smartphones and Tablets with XAML & C#
 
Presentation[1]
Presentation[1]Presentation[1]
Presentation[1]
 
Microsoft xamarin-experience
Microsoft xamarin-experienceMicrosoft xamarin-experience
Microsoft xamarin-experience
 
Windows Universal Apps
Windows Universal AppsWindows Universal Apps
Windows Universal Apps
 
Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderBuild Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilder
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
 
Desktop Bridge with WPF - One way to build modern apps with WPF
Desktop Bridge with WPF - One way to build modern apps with WPFDesktop Bridge with WPF - One way to build modern apps with WPF
Desktop Bridge with WPF - One way to build modern apps with WPF
 
What's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET DevelopersWhat's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET Developers
 
Cloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal AppsCloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal Apps
 
Windows Phone Introduction
Windows Phone IntroductionWindows Phone Introduction
Windows Phone Introduction
 
Windows 8 App and Game Development Landscape
Windows 8 App and Game Development LandscapeWindows 8 App and Game Development Landscape
Windows 8 App and Game Development Landscape
 
Windows 10 pentru dezvoltatori - InfoEducație 2015
Windows 10 pentru dezvoltatori - InfoEducație 2015Windows 10 pentru dezvoltatori - InfoEducație 2015
Windows 10 pentru dezvoltatori - InfoEducație 2015
 
What's new in Blend for Visual Studio 2015
What's new in Blend for Visual Studio 2015What's new in Blend for Visual Studio 2015
What's new in Blend for Visual Studio 2015
 
Windows Phone 8 App Development
Windows Phone 8 App DevelopmentWindows Phone 8 App Development
Windows Phone 8 App Development
 

Mehr von Mirco Vanini

.NET 7 Performance Improvements_10_03_2023.pdf
.NET 7 Performance Improvements_10_03_2023.pdf.NET 7 Performance Improvements_10_03_2023.pdf
.NET 7 Performance Improvements_10_03_2023.pdfMirco Vanini
 
Debugging a .NET program after crash (Post-mortem debugging)
Debugging a .NET program after crash (Post-mortem debugging)Debugging a .NET program after crash (Post-mortem debugging)
Debugging a .NET program after crash (Post-mortem debugging)Mirco Vanini
 
Connect a chips to Azure
Connect a chips to AzureConnect a chips to Azure
Connect a chips to AzureMirco Vanini
 
Connect a chips to Azure
Connect a chips to AzureConnect a chips to Azure
Connect a chips to AzureMirco Vanini
 
Async Debugging A Practical Guide to survive !
Async Debugging A Practical Guide to survive !Async Debugging A Practical Guide to survive !
Async Debugging A Practical Guide to survive !Mirco Vanini
 
IoT support for .NET (Core/5/6)
IoT support for .NET (Core/5/6)IoT support for .NET (Core/5/6)
IoT support for .NET (Core/5/6)Mirco Vanini
 
Async Debugging - A Practical Guide to survive !
Async Debugging - A Practical Guide to survive !Async Debugging - A Practical Guide to survive !
Async Debugging - A Practical Guide to survive !Mirco Vanini
 
IoT support for .NET Core
IoT support for .NET CoreIoT support for .NET Core
IoT support for .NET CoreMirco Vanini
 
IoT support for .NET Core - IoT Saturday 2020
IoT support for .NET Core - IoT Saturday 2020IoT support for .NET Core - IoT Saturday 2020
IoT support for .NET Core - IoT Saturday 2020Mirco Vanini
 
Are you ready for Microsoft Azure Sphere?
Are you ready for Microsoft Azure Sphere?Are you ready for Microsoft Azure Sphere?
Are you ready for Microsoft Azure Sphere?Mirco Vanini
 
IoT Day 2019 Naples - Microsoft Azure Shpere
IoT Day 2019 Naples - Microsoft Azure ShpereIoT Day 2019 Naples - Microsoft Azure Shpere
IoT Day 2019 Naples - Microsoft Azure ShpereMirco Vanini
 
Debugging with VS2019
Debugging with VS2019Debugging with VS2019
Debugging with VS2019Mirco Vanini
 
Optimising code using Span<T>
Optimising code using Span<T>Optimising code using Span<T>
Optimising code using Span<T>Mirco Vanini
 
Azure Sphere - GAB 2019
Azure Sphere - GAB 2019Azure Sphere - GAB 2019
Azure Sphere - GAB 2019Mirco Vanini
 
IoT Day - Introducing Azure Sphere
IoT Day -  Introducing Azure SphereIoT Day -  Introducing Azure Sphere
IoT Day - Introducing Azure SphereMirco Vanini
 
Introducing Azure Sphere
Introducing Azure SphereIntroducing Azure Sphere
Introducing Azure SphereMirco Vanini
 
Debugger Tips and Tricks for .Net developers with Microsoft Visual Studio 2017
Debugger Tips and Tricks for .Net developers with Microsoft Visual Studio 2017 Debugger Tips and Tricks for .Net developers with Microsoft Visual Studio 2017
Debugger Tips and Tricks for .Net developers with Microsoft Visual Studio 2017 Mirco Vanini
 
Xe One Day - Adaptive Code
Xe One Day - Adaptive CodeXe One Day - Adaptive Code
Xe One Day - Adaptive CodeMirco Vanini
 

Mehr von Mirco Vanini (20)

.NET 7 Performance Improvements_10_03_2023.pdf
.NET 7 Performance Improvements_10_03_2023.pdf.NET 7 Performance Improvements_10_03_2023.pdf
.NET 7 Performance Improvements_10_03_2023.pdf
 
Debugging a .NET program after crash (Post-mortem debugging)
Debugging a .NET program after crash (Post-mortem debugging)Debugging a .NET program after crash (Post-mortem debugging)
Debugging a .NET program after crash (Post-mortem debugging)
 
Connect a chips to Azure
Connect a chips to AzureConnect a chips to Azure
Connect a chips to Azure
 
Connect a chips to Azure
Connect a chips to AzureConnect a chips to Azure
Connect a chips to Azure
 
Async Debugging A Practical Guide to survive !
Async Debugging A Practical Guide to survive !Async Debugging A Practical Guide to survive !
Async Debugging A Practical Guide to survive !
 
IoT support for .NET (Core/5/6)
IoT support for .NET (Core/5/6)IoT support for .NET (Core/5/6)
IoT support for .NET (Core/5/6)
 
Async Debugging - A Practical Guide to survive !
Async Debugging - A Practical Guide to survive !Async Debugging - A Practical Guide to survive !
Async Debugging - A Practical Guide to survive !
 
IoT support for .NET Core
IoT support for .NET CoreIoT support for .NET Core
IoT support for .NET Core
 
IoT support for .NET Core - IoT Saturday 2020
IoT support for .NET Core - IoT Saturday 2020IoT support for .NET Core - IoT Saturday 2020
IoT support for .NET Core - IoT Saturday 2020
 
Are you ready for Microsoft Azure Sphere?
Are you ready for Microsoft Azure Sphere?Are you ready for Microsoft Azure Sphere?
Are you ready for Microsoft Azure Sphere?
 
IoT Day 2019 Naples - Microsoft Azure Shpere
IoT Day 2019 Naples - Microsoft Azure ShpereIoT Day 2019 Naples - Microsoft Azure Shpere
IoT Day 2019 Naples - Microsoft Azure Shpere
 
Debugging with VS2019
Debugging with VS2019Debugging with VS2019
Debugging with VS2019
 
Azure Sphere
Azure SphereAzure Sphere
Azure Sphere
 
Optimising code using Span<T>
Optimising code using Span<T>Optimising code using Span<T>
Optimising code using Span<T>
 
Azure Sphere
Azure SphereAzure Sphere
Azure Sphere
 
Azure Sphere - GAB 2019
Azure Sphere - GAB 2019Azure Sphere - GAB 2019
Azure Sphere - GAB 2019
 
IoT Day - Introducing Azure Sphere
IoT Day -  Introducing Azure SphereIoT Day -  Introducing Azure Sphere
IoT Day - Introducing Azure Sphere
 
Introducing Azure Sphere
Introducing Azure SphereIntroducing Azure Sphere
Introducing Azure Sphere
 
Debugger Tips and Tricks for .Net developers with Microsoft Visual Studio 2017
Debugger Tips and Tricks for .Net developers with Microsoft Visual Studio 2017 Debugger Tips and Tricks for .Net developers with Microsoft Visual Studio 2017
Debugger Tips and Tricks for .Net developers with Microsoft Visual Studio 2017
 
Xe One Day - Adaptive Code
Xe One Day - Adaptive CodeXe One Day - Adaptive Code
Xe One Day - Adaptive Code
 

Kürzlich hochgeladen

Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainData modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainAbdul Ahad
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 

Kürzlich hochgeladen (20)

Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainData modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software Domain
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 

How to modernise WPF and Windows Forms applications with Windows Apps SDK

  • 1. xedotnet.org How to modernise WPF and Windows Forms applications with Windows Apps SDK Mirco Vanini @MircoVanini
  • 2. • Windows Form | aka WinForms • Windows Presentation Fondation | aka WPF • Universal Windows Platform | aka UWP * • Windows UI | aka WinUI • .NET Multi-Platform Application UI | aka MAUI • Blazor Desktop • Windows App SDK Desktop Technologies * Microsoft stirred up some debate with its recent announcement that ".NET 5/6 Will Not Be Coming to UWP Project Types," which many decried as a further deprecation of UWP on the part of the company.
  • 4. • Support to latest tooling and C# features • Core runtime and API improvements • Performance • Deploy • Side by side • Machine global or app local framework • Self conteined EXEs Desktop Application .NET 6
  • 5. • WPF and Windows Forms supported as first-class citizens in .NET • Improved Designer Support (both WinForms and XAML) • Improved ClickOnce Support • Improved performance and reliability • Accessibility improvements • Quick Actions • XAML Hot Reload Improvements (WPF /WinUI) • Hot Reload • IntelliSense Improvements Windows Development
  • 6. • Use the new TFM dedicated to Windows to light up most of the APIs and features from Universal Window Platform • Easily integrate notification, geolocation, Windows Hello, Bluetooth, Low Energy, … <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net6.0-windows10.0.22000.0</TargetFramework> <Nullable>enable</Nullable> <UseWPF>true</UseWPF> </PropertyGroup> </Project> Windows 10 integration
  • 7. • .NET aims to re-introduce the experience of publishing small, self-contained version of applications • Across all .NET application formats (Windows, Web,…) • Across all the platforms (Windows, Mac, Linux) • Required Framework components are included in the deployment • True xcopy-enabled, single-file executables • Assembly Trimming • .NET has come a long way for this Single File Applications
  • 8. • New Edge-Chromium-based HTML control • Available in Windows Forms, WPF • .NET Framework, .NET Core 3.x, and .NET 5/6 • Windows 7 and later • Evergreen (updated every 6 weeks) • WebView2 Evergreen is now a Windows component WebView2
  • 9. • .NET has many performance and size optimizations specifically driven by support for ARM chips • ARM chips are very popular in phones, but they are also becoming more popular in laptops • Surface Pro X is ARM-based • Apple has announced that their Apple Silicon-based Macs will be ARM based • IoT devices are often based on ARM chips • Raspberry Pi 3 & 4 are ARM-based ARM64
  • 10. • Improvement to in-app toolbar • Inline color previews • Design Time Data https://docs.microsoft.com/visualstudio/xaml-tools/xaml-designtime-data • Refresh designer button • Suggested Actions • XAML Hot Reload • XAML Binding Failures • New Designer for .NET FW apps • XAML Live Preview ! New features in XAML Tooling
  • 11. • Reduce time and difficulty modernizing older .NET codebases • Helps to analyze and upgrade older codebases • Understands dependencies • Provides guidance and assistance • Multiple project types supported Learn more | https://aka.ms/dotnet-upgrade-assistant .NET Upgrade Assistant
  • 12. • Support new hardware • Modern use experience • App deploy and management • Reliability, security, privacy • System performance and battery life Making app great for people who use them … but starting where you are • Compatibility with all you code (WinForm, WPF, UWP, MFC) • Support for existing packaging and deployment • Features that work across users’ version of Windows 10/11
  • 13. • This is the former “Project Reunion” • Re-unification of various Windows/Desktop UI technologies • WinForms, WPF, UWP, WinUI, Xamarin Windows App SDK The Windows App SDK is a set of new developer components and tools that represent the next evolution in the Windows app development platform. The Windows App SDK provides a unified set of APIs and tools that can be used in a consistent way by any desktop app on Windows 11 and down- level to Windows 10, version 1809. The Windows App SDK does not replace the Windows SDK or existing desktop Windows app types such as .NET (including Windows Forms and WPF) and desktop Win32 with C++. Instead, the Windows App SDK complements these existing tools and app types with a common set of APIs that developers can rely on across these platforms. 1709 1803 1809 1903 1909 2004 Win11 2018 2019 2020 2021
  • 14. Windows App SDK App type 1.0 1.1 (Q2 2022) Desktop apps (WinUI 3, WPF, etc) ✅ WinUI 3** ✅ Text rendering ✅ Resource management ✅ App lifecycle ✅ Windowing 🔁 Push Notifications ✅ WinUI 3** ✅ Text rendering ✅ Resource management ✅ App lifecycle ✅ Windowing ✅ Push Notifications ✅ Multiple windows ✅ Elevation support ✅ Local toast notifications ✅ Environmental variables API ✅ Restart API ✅ Self-contained deployment ✅ Supported | 🔁 Experimental ** - WinUI 3 in 1.0 and 1.1 is only supported for use by full WinUI 3 apps. You'll be able to use WinUI 3 in WPF/WinForms/other apps in a future release via XAML Islands.
  • 15. WinUI 3 • Continuation of WinRT, XAML Islands,… • Windows 10/11 only WinUI 3 is the next generation of the WinUI framework. It dramatically expands WinUI into a full UX framework, making WinUI available for all types of Windows apps – from Win32 to UWP – for use as the UI layer.
  • 16. • The .NET team is working on next-generation cross-platform framework for C# developers, called MAUI (Multi App User Interface) • Use .NET and C# to build application for iOS, Android, MacOS and Windows • Share business logic and UI • WinUI and Windows App SDK is the target framework for Windows Windows Apps SDK and cross-platform apps
  • 17. Demo
  • 18. • Windows Apps SDK SDK doesn’t include only WinUI, but other features that can be integrated in existing Win32 apps: • Resource manager • Activation APIs • Windowing APIs • Text rendering • Push notification Windows Apps SDK, ther is more...
  • 19. • Supporto also in Win32 apps the rich activation system introduced in the universal Windows Platofrm like file, protocol, statup task, pickers, etc. • Enables the usage oa the AppInstance class to manage single- instance apps and multi-instanced apps • It enables advanced redirection scenarios, like working in single instance mode, but switching to multi-instance if the application is activated from file Windows Apps SDK – Activation APIs
  • 20. • New AppWindow API which acts as a high-level implementation of HWND • Lot of customization options for your windows: • Customize the title bar • Use a custom title bar based on XAML • Support full screen and compact overlay Windows Apps SDK – Windows management APIs
  • 21. Q&A .NET your platform for building anything Mirco Vanini Microsoft® MVP Windows Development myContactInfo: { ”e-mail”:“mirco.vanini@proxsoft.it”, “web”: “www.proxsoft.it”, “twitter”: “@MircoVanini” }