SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Copyright © Brian Noyes, All rights reserved
Windows Desktop Development
Landscape &
WPF Top Ten Power Features
Brian Noyes
CTO and Co-founder, Solliance
brian.noyes@solliance.net, @briannoyes
Copyright © Brian Noyes, All rights reserved
About Brian Noyes
CTO and Co-founder, Solliance
www.solliance.net
Microsoft Regional Director
Microsoft MVP
Pluralsight author
www.pluralsight.com
t
e brian.noyes@solliance.net
@briannoyes
http://briannoyes.net
Web API Insider, Windows Azure Insider,
Window Store App Insider, C#/VB Insider
Copyright © Brian Noyes, All rights reserved
Agenda
 Windows Desktop Development Landscape
 UI Frameworks
 XAML Platforms
 WPF
 UWP
 Multi-platform targeting
Copyright © Brian Noyes, All rights reserved
UI Framework Mortality
 What does it mean for a software framework to be dead?
 There is a big difference between “dead” and “mature”
 Windows Forms is not dead
 But I wouldn’t build any new projects with it
 Silverlight is not dead
 But it is in the trauma unit on life support
 Windows Phone is not dead
 But it has been bloodied on the battlefield and its fate is uncertain
 WPF is alive and well
Copyright © Brian Noyes, All rights reserved
XAML Platforms
 XAML is the past, present, and future of Windows (and other
platform) desktop development
 Many flavors
 WPF
 Silverlight
 Windows Phone
 WinRT ( aka Windows Runtime, but not the same thing as Windows RT)
 Aka “Windows Store apps” aka “Modern Apps” aka “Metro Apps”
 8.1: Universal Apps
 Universal Windows Platform (UWP – Windows 10 and up only)
 Xamarin
 iOS, Android, Mac desktop, UWP
Copyright © Brian Noyes, All rights reserved
Which Should I Care About?
 WPF
 Silverlight
 Windows Phone
 WinRT
 8.1: Universal Apps
 UWP
 Xamarin
Copyright © Brian Noyes, All rights reserved
WPF
 Almost a decade old
 Which means it should be dead several times over compared to other UI
Frameworks
 Still the most capable XAML platform
 Remarkable how mature it was in v1.0
 Very few function or capability changes since then
 A few that were introduced first into Silverlight 4 & 5, then retrofitted into
WPF 4 and 4.5
Copyright © Brian Noyes, All rights reserved
WPF Capabilities Missing in other XAML Platforms
 Data binding validation
 Implicit DataTemplates
 DynamicResources
 Multi-Bindings
 A half dozen of so other Binding capabilities
 Relative source, Async, update trigger, fallback values, target null value…
 DependencyProperty change callbacks
 Shared Size Groups
 Full .NET framework capabilities
Copyright © Brian Noyes, All rights reserved
WPF Downsides
 Windows Desktop only
 Not as “Touch” friendly out of the box
 Third party control suites help
 Look a little dated with default styling
Phone Small Tablet
2-in-1s
(Tablet or Laptop)
Desktops
& All-in-OnesPhablet Large Tablet
Classic
Laptop
Xbox IoTSurface Hub Holographic
Windows 10
Copyright © Brian Noyes, All rights reserved
Universal Windows Platform (UWP)
 XAML for Windows 10
 all form factors - Large screen, desktop, mobile, Xbox, IoT, Hololens
 Designed for great UX
 Touch, Pen, or keyboard/mouse
 Based on WinRT
 Relaxes some of the dogmatic design guidance of WinRT and
"Modern Apps" aka "Windows Store Apps" aka "Metro Apps"
Copyright © Brian Noyes, All rights reserved
Universal Windows Platform (UWP)
 Broader capabilities
 Function as a desktop app or full screen app, participate in Continuum, use
other Win10 platform features
 Should be a primary consideration for "desktop" apps if targeting
only Windows 10 is not a problem
 Which it is for most businesses and governments right now
Easy for users to get
& stay current
Unified core
and app platform
The convergence journey
Windows 10
Converged
OS kernel
Converged
app model
Design
Design
Understanding the Windows Desktop App Development Landscape   + Top 10 WPF Power Features
Understanding the Windows Desktop App Development Landscape   + Top 10 WPF Power Features
Copyright © Brian Noyes, All rights reserved
Bridges
• iOS (Islandwood), Android (Astoria), Hosted Web Apps (Westminster),
.NET/Win32 apps (Centennial)
• Microsoft play to make it more attractive/easy to migrate from other platforms to
Windows 10
• Not the other way around
• Astoria - Android Bridge
• Demoed at Build 2015
• Wrapper approach to take Android app code and put a wrapper on it so it can be deployed as
a Windows 10 UWP app
• Unofficially dead or delayed
• Islandwood
• Pull iOS ObjectiveC into Visual Studio and recompile it to be a UWP app
• API adapters to integrate with UWP platform features (gaming APIs, UWP lifecycle events,
etc)
Copyright © Brian Noyes, All rights reserved
Xamarin
• Write your shared mobile app code in C#
• Write separate UI presentation code per platform
OR:
• For simple UI (i.e. static content and non-visualization data centric
apps) – use Xamarin Forms
• One UI definition for multiple platforms – in XAML!
• Great integration with Visual Studio
• Separate cross-plat Xamarin Studio for consistent experience on Mac
and Windows
• Good tooling and great ecosystem
Copyright © Brian Noyes, All rights reserved
Multi-platform Targeting
• Can I build a XAML app that I can deploy as a WPF app for <Win10
machines, UWP for Windows machines, and Xamarin for mobile apps?
• No
• Can I build a significant portion of my application logic code in a way that
can be reused in WPF, UWP, and Xamarin apps
• Absolutely!
• Portable Class Libraries (PCLs are the secret sauce)
• Can I reuse any of my XAML across those platforms?
• No, not really
• Copy/Paste/Tweak reuse of fragments
• Different control sets, navigation paradigms, application lifecycles
Copyright © Brian Noyes, All rights reserved
What about Single Page Apps?
What are they?
• Smart/Rich client apps that run in the browser
• A replacement for browser plugins (Silverlight, Flash, Java Applets)
• Written with HTML/CSS/JavaScript
• Based on the modern web (HTML 5, ECMAScript 5,6/2015, CSS 3) and current browser
capabilites (i.e. blazing fast JS execution, rendering that leverages GPU)
• Use SPA frameworks
• Examples: Angular (1.x, 2), Aurelia, React, Ember, Knockout, Backbone
• UI separation patterns: MVC/MVVM
• Have rich data binding
• Use dependency injection
• Have client navigation (routing) functionality
• Assist in making AJAX (Web API) calls
• Same architectural patterns as a well designed XAML desktop app, just different syntax
and execution environment
Copyright © Brian Noyes, All rights reserved
What about Single Page Apps?
What would you choose them?
• Because you get to write your app in JavaScript, baby! 
• Inherently cross platform on desktop machines
(Windows/Mac/Linux/Mobile)
• With responsive design, can work beautifully or at least sufficiently on
mobile web browsers
• Can be packaged with Cordova as an installed mobile app from the
app stores (Apple App Store, Google Play, Windows Store)
Copyright © Brian Noyes, All rights reserved
Break!
Copyright © Brian Noyes, All rights reserved
WPF Top Ten(-ish) Power
Features
Copyright © Brian Noyes, All rights reserved
Top Ten-ish Power Features/Tips/Techniques
(in presentation order, not importance)
1. Format XAML
2. Data binding errors
3. Smart converters
4. XAML namespaces
5. Vector Images
1. Xamalot
6. ItemsControl panel customization
a) ListBox templating
7. Implicit DataTemplates
8. Use MVVM and Leverage a framework
• Prism, MVVM Light, Caliburn Micro, MVVMCross
Copyright © Brian Noyes, All rights reserved
Top Ten-ish Power Features/Tips/Techniques
(in presentation order, not importance)
7. Leverage the Designer
• Clear Layout, Grid cols/rows
• Drag/Drop data binding
8. Leverage Blend
• VSM, Behaviors, Animations
9. Behaviors
10. Visual State Manager
11. Understand and Inspect the Visual Tree
12. Shared Size Groups

Más contenido relacionado

Was ist angesagt?

Cloud Apache OpenOffice based on HTML5
Cloud Apache OpenOffice based on HTML5Cloud Apache OpenOffice based on HTML5
Cloud Apache OpenOffice based on HTML5pescetti
 
EDMUG Silverlight Talk
EDMUG Silverlight TalkEDMUG Silverlight Talk
EDMUG Silverlight TalkMark Bennett
 
Opening the mobile web mozilla and firefox os-chit thiri maung
Opening the mobile web   mozilla and firefox os-chit thiri maungOpening the mobile web   mozilla and firefox os-chit thiri maung
Opening the mobile web mozilla and firefox os-chit thiri maungChit Thiri Maung
 
Silverlight Framework Architecture By Satyen
Silverlight Framework Architecture By SatyenSilverlight Framework Architecture By Satyen
Silverlight Framework Architecture By SatyenSatyen Pandya
 
Silverlight Framework Architecture
Silverlight Framework ArchitectureSilverlight Framework Architecture
Silverlight Framework ArchitectureAshok
 
Silverlight 4 @ MSDN Live
Silverlight 4 @ MSDN LiveSilverlight 4 @ MSDN Live
Silverlight 4 @ MSDN Livegoeran
 
MikeTaulty_Ux_Update
MikeTaulty_Ux_UpdateMikeTaulty_Ux_Update
MikeTaulty_Ux_Updateukdpe
 
What's Silverlight?
What's Silverlight?What's Silverlight?
What's Silverlight?Timmy Kokke
 
Xamarin Dev Days Madrid 2017 - Xamarin.Forms
Xamarin Dev Days Madrid 2017 -  Xamarin.FormsXamarin Dev Days Madrid 2017 -  Xamarin.Forms
Xamarin Dev Days Madrid 2017 - Xamarin.FormsJavier Suárez Ruiz
 
WPF & Silverlight Intro
WPF & Silverlight IntroWPF & Silverlight Intro
WPF & Silverlight IntroDave Allen
 
Docker containers en cross platform development
Docker containers en cross platform developmentDocker containers en cross platform development
Docker containers en cross platform developmentDelta-N
 
Introduction to silverlight control 4
Introduction to silverlight control 4Introduction to silverlight control 4
Introduction to silverlight control 4msarangam
 
Make Web, Not War - Keynote: Embracing Chaos, David Crow
Make Web, Not War - Keynote: Embracing Chaos, David CrowMake Web, Not War - Keynote: Embracing Chaos, David Crow
Make Web, Not War - Keynote: Embracing Chaos, David CrowMake Web Not War
 
Developing for Windows Phone 7
Developing for Windows Phone 7Developing for Windows Phone 7
Developing for Windows Phone 7Gergely Orosz
 

Was ist angesagt? (20)

Silverlight
SilverlightSilverlight
Silverlight
 
Cloud Apache OpenOffice based on HTML5
Cloud Apache OpenOffice based on HTML5Cloud Apache OpenOffice based on HTML5
Cloud Apache OpenOffice based on HTML5
 
EDMUG Silverlight Talk
EDMUG Silverlight TalkEDMUG Silverlight Talk
EDMUG Silverlight Talk
 
Opening the mobile web mozilla and firefox os-chit thiri maung
Opening the mobile web   mozilla and firefox os-chit thiri maungOpening the mobile web   mozilla and firefox os-chit thiri maung
Opening the mobile web mozilla and firefox os-chit thiri maung
 
Silverlight Framework Architecture By Satyen
Silverlight Framework Architecture By SatyenSilverlight Framework Architecture By Satyen
Silverlight Framework Architecture By Satyen
 
Silverlight Framework Architecture
Silverlight Framework ArchitectureSilverlight Framework Architecture
Silverlight Framework Architecture
 
Microsoft Silverlight
Microsoft SilverlightMicrosoft Silverlight
Microsoft Silverlight
 
Silverlight 4 @ MSDN Live
Silverlight 4 @ MSDN LiveSilverlight 4 @ MSDN Live
Silverlight 4 @ MSDN Live
 
MikeTaulty_Ux_Update
MikeTaulty_Ux_UpdateMikeTaulty_Ux_Update
MikeTaulty_Ux_Update
 
What's Silverlight?
What's Silverlight?What's Silverlight?
What's Silverlight?
 
Exp Web
Exp WebExp Web
Exp Web
 
Xamarin Dev Days Madrid 2017 - Xamarin.Forms
Xamarin Dev Days Madrid 2017 -  Xamarin.FormsXamarin Dev Days Madrid 2017 -  Xamarin.Forms
Xamarin Dev Days Madrid 2017 - Xamarin.Forms
 
WPF & Silverlight Intro
WPF & Silverlight IntroWPF & Silverlight Intro
WPF & Silverlight Intro
 
Silverlight
SilverlightSilverlight
Silverlight
 
Docker containers en cross platform development
Docker containers en cross platform developmentDocker containers en cross platform development
Docker containers en cross platform development
 
Introduction to silverlight control 4
Introduction to silverlight control 4Introduction to silverlight control 4
Introduction to silverlight control 4
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Make Web, Not War - Keynote: Embracing Chaos, David Crow
Make Web, Not War - Keynote: Embracing Chaos, David CrowMake Web, Not War - Keynote: Embracing Chaos, David Crow
Make Web, Not War - Keynote: Embracing Chaos, David Crow
 
Developing for Windows Phone 7
Developing for Windows Phone 7Developing for Windows Phone 7
Developing for Windows Phone 7
 
Azure mobile services
Azure mobile servicesAzure mobile services
Azure mobile services
 

Ähnlich wie Understanding the Windows Desktop App Development Landscape + Top 10 WPF Power Features

Uncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight SeminarUncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight SeminarAbram John Limpin
 
Introduction to silverlight
Introduction to silverlightIntroduction to silverlight
Introduction to silverlightmsarangam
 
What Is Silverlight
What Is SilverlightWhat Is Silverlight
What Is Silverlightmtaulty
 
What Is Silverlight
What Is SilverlightWhat Is Silverlight
What Is Silverlightguest50274e
 
What Is Silverlight
What Is SilverlightWhat Is Silverlight
What Is Silverlightukdpe
 
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
 
Silverlight Chapter 01 - Introduction
Silverlight Chapter 01 - IntroductionSilverlight Chapter 01 - Introduction
Silverlight Chapter 01 - IntroductionBill Hatfield
 
XAML: One Language to Rule Them All
XAML: One Language to Rule Them AllXAML: One Language to Rule Them All
XAML: One Language to Rule Them AllFrank La Vigne
 
Silver Light for every one by Subodh
Silver Light for every one by SubodhSilver Light for every one by Subodh
Silver Light for every one by SubodhSubodh Pushpak
 
SLUGUK BUILD Round-up
SLUGUK BUILD Round-upSLUGUK BUILD Round-up
SLUGUK BUILD Round-upDerek Lakin
 
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
 
Tech Lunch 9 25 2008
Tech Lunch 9 25 2008Tech Lunch 9 25 2008
Tech Lunch 9 25 2008rothacr
 
Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Marco Tabor
 
01 introducing the windows phone 8.1
01   introducing the windows phone 8.101   introducing the windows phone 8.1
01 introducing the windows phone 8.1WindowsPhoneRocks
 
S1lverl1ght 25.11.10 final
S1lverl1ght 25.11.10 finalS1lverl1ght 25.11.10 final
S1lverl1ght 25.11.10 finalgasbillet
 
S1lverl1ght 25.11.10 final
S1lverl1ght 25.11.10 finalS1lverl1ght 25.11.10 final
S1lverl1ght 25.11.10 finalgasbillet
 
Windows Phone 7: Silverlight
Windows Phone 7: SilverlightWindows Phone 7: Silverlight
Windows Phone 7: SilverlightRishu Mehra
 

Ähnlich wie Understanding the Windows Desktop App Development Landscape + Top 10 WPF Power Features (20)

Uncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight SeminarUncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight Seminar
 
Introduction to silverlight
Introduction to silverlightIntroduction to silverlight
Introduction to silverlight
 
What Is Silverlight
What Is SilverlightWhat Is Silverlight
What Is Silverlight
 
What Is Silverlight
What Is SilverlightWhat Is Silverlight
What Is Silverlight
 
What Is Silverlight
What Is SilverlightWhat Is Silverlight
What Is Silverlight
 
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
 
Silverlight Chapter 01 - Introduction
Silverlight Chapter 01 - IntroductionSilverlight Chapter 01 - Introduction
Silverlight Chapter 01 - Introduction
 
SilverlightCh01
SilverlightCh01SilverlightCh01
SilverlightCh01
 
XAML: One Language to Rule Them All
XAML: One Language to Rule Them AllXAML: One Language to Rule Them All
XAML: One Language to Rule Them All
 
Silver Light for every one by Subodh
Silver Light for every one by SubodhSilver Light for every one by Subodh
Silver Light for every one by Subodh
 
Silverlight
SilverlightSilverlight
Silverlight
 
SLUGUK BUILD Round-up
SLUGUK BUILD Round-upSLUGUK BUILD Round-up
SLUGUK BUILD Round-up
 
Intro to silverlight_20110602
Intro to silverlight_20110602Intro to silverlight_20110602
Intro to silverlight_20110602
 
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
 
Tech Lunch 9 25 2008
Tech Lunch 9 25 2008Tech Lunch 9 25 2008
Tech Lunch 9 25 2008
 
Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9
 
01 introducing the windows phone 8.1
01   introducing the windows phone 8.101   introducing the windows phone 8.1
01 introducing the windows phone 8.1
 
S1lverl1ght 25.11.10 final
S1lverl1ght 25.11.10 finalS1lverl1ght 25.11.10 final
S1lverl1ght 25.11.10 final
 
S1lverl1ght 25.11.10 final
S1lverl1ght 25.11.10 finalS1lverl1ght 25.11.10 final
S1lverl1ght 25.11.10 final
 
Windows Phone 7: Silverlight
Windows Phone 7: SilverlightWindows Phone 7: Silverlight
Windows Phone 7: Silverlight
 

Mehr von MSDEVMTL

Intro grpc.net
Intro  grpc.netIntro  grpc.net
Intro grpc.netMSDEVMTL
 
Grpc and asp.net partie 2
Grpc and asp.net partie 2Grpc and asp.net partie 2
Grpc and asp.net partie 2MSDEVMTL
 
Property based testing
Property based testingProperty based testing
Property based testingMSDEVMTL
 
Improve cloud visibility and cost in Microsoft Azure
Improve cloud visibility and cost in Microsoft AzureImprove cloud visibility and cost in Microsoft Azure
Improve cloud visibility and cost in Microsoft AzureMSDEVMTL
 
Return on Ignite 2019: Azure, .NET, A.I. & Data
Return on Ignite 2019: Azure, .NET, A.I. & DataReturn on Ignite 2019: Azure, .NET, A.I. & Data
Return on Ignite 2019: Azure, .NET, A.I. & DataMSDEVMTL
 
C sharp 8.0 new features
C sharp 8.0 new featuresC sharp 8.0 new features
C sharp 8.0 new featuresMSDEVMTL
 
Asp.net core 3
Asp.net core 3Asp.net core 3
Asp.net core 3MSDEVMTL
 
MSDEVMTL Informations 2019
MSDEVMTL Informations 2019MSDEVMTL Informations 2019
MSDEVMTL Informations 2019MSDEVMTL
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcoreMSDEVMTL
 
Groupe Excel et Power BI - Rencontre du 25 septembre 2018
Groupe Excel et Power BI  - Rencontre du 25 septembre 2018Groupe Excel et Power BI  - Rencontre du 25 septembre 2018
Groupe Excel et Power BI - Rencontre du 25 septembre 2018MSDEVMTL
 
Api gateway
Api gatewayApi gateway
Api gatewayMSDEVMTL
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcoreMSDEVMTL
 
Stephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environmentsStephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environmentsMSDEVMTL
 
Eric Routhier: Garder le contrôle sur vos coûts Azure
Eric Routhier: Garder le contrôle sur vos coûts AzureEric Routhier: Garder le contrôle sur vos coûts Azure
Eric Routhier: Garder le contrôle sur vos coûts AzureMSDEVMTL
 
Data science presentation
Data science presentationData science presentation
Data science presentationMSDEVMTL
 
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...MSDEVMTL
 
Open id connect, azure ad, angular 5, web api core
Open id connect, azure ad, angular 5, web api coreOpen id connect, azure ad, angular 5, web api core
Open id connect, azure ad, angular 5, web api coreMSDEVMTL
 
Yoann Clombe : Fail fast, iterate quickly with power bi and google analytics
Yoann Clombe : Fail fast, iterate quickly with power bi and google analyticsYoann Clombe : Fail fast, iterate quickly with power bi and google analytics
Yoann Clombe : Fail fast, iterate quickly with power bi and google analyticsMSDEVMTL
 
CAE: etude de cas - Rolling Average
CAE: etude de cas - Rolling AverageCAE: etude de cas - Rolling Average
CAE: etude de cas - Rolling AverageMSDEVMTL
 
CAE: etude de cas
CAE: etude de casCAE: etude de cas
CAE: etude de casMSDEVMTL
 

Mehr von MSDEVMTL (20)

Intro grpc.net
Intro  grpc.netIntro  grpc.net
Intro grpc.net
 
Grpc and asp.net partie 2
Grpc and asp.net partie 2Grpc and asp.net partie 2
Grpc and asp.net partie 2
 
Property based testing
Property based testingProperty based testing
Property based testing
 
Improve cloud visibility and cost in Microsoft Azure
Improve cloud visibility and cost in Microsoft AzureImprove cloud visibility and cost in Microsoft Azure
Improve cloud visibility and cost in Microsoft Azure
 
Return on Ignite 2019: Azure, .NET, A.I. & Data
Return on Ignite 2019: Azure, .NET, A.I. & DataReturn on Ignite 2019: Azure, .NET, A.I. & Data
Return on Ignite 2019: Azure, .NET, A.I. & Data
 
C sharp 8.0 new features
C sharp 8.0 new featuresC sharp 8.0 new features
C sharp 8.0 new features
 
Asp.net core 3
Asp.net core 3Asp.net core 3
Asp.net core 3
 
MSDEVMTL Informations 2019
MSDEVMTL Informations 2019MSDEVMTL Informations 2019
MSDEVMTL Informations 2019
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcore
 
Groupe Excel et Power BI - Rencontre du 25 septembre 2018
Groupe Excel et Power BI  - Rencontre du 25 septembre 2018Groupe Excel et Power BI  - Rencontre du 25 septembre 2018
Groupe Excel et Power BI - Rencontre du 25 septembre 2018
 
Api gateway
Api gatewayApi gateway
Api gateway
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcore
 
Stephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environmentsStephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environments
 
Eric Routhier: Garder le contrôle sur vos coûts Azure
Eric Routhier: Garder le contrôle sur vos coûts AzureEric Routhier: Garder le contrôle sur vos coûts Azure
Eric Routhier: Garder le contrôle sur vos coûts Azure
 
Data science presentation
Data science presentationData science presentation
Data science presentation
 
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...
 
Open id connect, azure ad, angular 5, web api core
Open id connect, azure ad, angular 5, web api coreOpen id connect, azure ad, angular 5, web api core
Open id connect, azure ad, angular 5, web api core
 
Yoann Clombe : Fail fast, iterate quickly with power bi and google analytics
Yoann Clombe : Fail fast, iterate quickly with power bi and google analyticsYoann Clombe : Fail fast, iterate quickly with power bi and google analytics
Yoann Clombe : Fail fast, iterate quickly with power bi and google analytics
 
CAE: etude de cas - Rolling Average
CAE: etude de cas - Rolling AverageCAE: etude de cas - Rolling Average
CAE: etude de cas - Rolling Average
 
CAE: etude de cas
CAE: etude de casCAE: etude de cas
CAE: etude de cas
 

Último

How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Libraryshyamraj55
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfTejal81
 
My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIMy key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIVijayananda Mohire
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3DianaGray10
 
Technical SEO for Improved Accessibility WTS FEST
Technical SEO for Improved Accessibility  WTS FESTTechnical SEO for Improved Accessibility  WTS FEST
Technical SEO for Improved Accessibility WTS FESTBillieHyde
 
.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptxHansamali Gamage
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveIES VE
 
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0DanBrown980551
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxNeo4j
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch TuesdayIvanti
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameKapil Thakar
 
Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Muhammad Tiham Siddiqui
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInThousandEyes
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxSatishbabu Gunukula
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)codyslingerland1
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxNeo4j
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdfThe Good Food Institute
 
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox
 

Último (20)

How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Library
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
 
My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIMy key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAI
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3
 
Technical SEO for Improved Accessibility WTS FEST
Technical SEO for Improved Accessibility  WTS FESTTechnical SEO for Improved Accessibility  WTS FEST
Technical SEO for Improved Accessibility WTS FEST
 
.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
 
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch Tuesday
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First Frame
 
Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
 
SheDev 2024
SheDev 2024SheDev 2024
SheDev 2024
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptx
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf
 
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through TokenizationStobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
 

Understanding the Windows Desktop App Development Landscape + Top 10 WPF Power Features

  • 1. Copyright © Brian Noyes, All rights reserved Windows Desktop Development Landscape & WPF Top Ten Power Features Brian Noyes CTO and Co-founder, Solliance brian.noyes@solliance.net, @briannoyes
  • 2. Copyright © Brian Noyes, All rights reserved About Brian Noyes CTO and Co-founder, Solliance www.solliance.net Microsoft Regional Director Microsoft MVP Pluralsight author www.pluralsight.com t e brian.noyes@solliance.net @briannoyes http://briannoyes.net Web API Insider, Windows Azure Insider, Window Store App Insider, C#/VB Insider
  • 3. Copyright © Brian Noyes, All rights reserved Agenda  Windows Desktop Development Landscape  UI Frameworks  XAML Platforms  WPF  UWP  Multi-platform targeting
  • 4. Copyright © Brian Noyes, All rights reserved UI Framework Mortality  What does it mean for a software framework to be dead?  There is a big difference between “dead” and “mature”  Windows Forms is not dead  But I wouldn’t build any new projects with it  Silverlight is not dead  But it is in the trauma unit on life support  Windows Phone is not dead  But it has been bloodied on the battlefield and its fate is uncertain  WPF is alive and well
  • 5. Copyright © Brian Noyes, All rights reserved XAML Platforms  XAML is the past, present, and future of Windows (and other platform) desktop development  Many flavors  WPF  Silverlight  Windows Phone  WinRT ( aka Windows Runtime, but not the same thing as Windows RT)  Aka “Windows Store apps” aka “Modern Apps” aka “Metro Apps”  8.1: Universal Apps  Universal Windows Platform (UWP – Windows 10 and up only)  Xamarin  iOS, Android, Mac desktop, UWP
  • 6. Copyright © Brian Noyes, All rights reserved Which Should I Care About?  WPF  Silverlight  Windows Phone  WinRT  8.1: Universal Apps  UWP  Xamarin
  • 7. Copyright © Brian Noyes, All rights reserved WPF  Almost a decade old  Which means it should be dead several times over compared to other UI Frameworks  Still the most capable XAML platform  Remarkable how mature it was in v1.0  Very few function or capability changes since then  A few that were introduced first into Silverlight 4 & 5, then retrofitted into WPF 4 and 4.5
  • 8. Copyright © Brian Noyes, All rights reserved WPF Capabilities Missing in other XAML Platforms  Data binding validation  Implicit DataTemplates  DynamicResources  Multi-Bindings  A half dozen of so other Binding capabilities  Relative source, Async, update trigger, fallback values, target null value…  DependencyProperty change callbacks  Shared Size Groups  Full .NET framework capabilities
  • 9. Copyright © Brian Noyes, All rights reserved WPF Downsides  Windows Desktop only  Not as “Touch” friendly out of the box  Third party control suites help  Look a little dated with default styling
  • 10. Phone Small Tablet 2-in-1s (Tablet or Laptop) Desktops & All-in-OnesPhablet Large Tablet Classic Laptop Xbox IoTSurface Hub Holographic Windows 10
  • 11. Copyright © Brian Noyes, All rights reserved Universal Windows Platform (UWP)  XAML for Windows 10  all form factors - Large screen, desktop, mobile, Xbox, IoT, Hololens  Designed for great UX  Touch, Pen, or keyboard/mouse  Based on WinRT  Relaxes some of the dogmatic design guidance of WinRT and "Modern Apps" aka "Windows Store Apps" aka "Metro Apps"
  • 12. Copyright © Brian Noyes, All rights reserved Universal Windows Platform (UWP)  Broader capabilities  Function as a desktop app or full screen app, participate in Continuum, use other Win10 platform features  Should be a primary consideration for "desktop" apps if targeting only Windows 10 is not a problem  Which it is for most businesses and governments right now
  • 13. Easy for users to get & stay current Unified core and app platform The convergence journey Windows 10 Converged OS kernel Converged app model
  • 18. Copyright © Brian Noyes, All rights reserved Bridges • iOS (Islandwood), Android (Astoria), Hosted Web Apps (Westminster), .NET/Win32 apps (Centennial) • Microsoft play to make it more attractive/easy to migrate from other platforms to Windows 10 • Not the other way around • Astoria - Android Bridge • Demoed at Build 2015 • Wrapper approach to take Android app code and put a wrapper on it so it can be deployed as a Windows 10 UWP app • Unofficially dead or delayed • Islandwood • Pull iOS ObjectiveC into Visual Studio and recompile it to be a UWP app • API adapters to integrate with UWP platform features (gaming APIs, UWP lifecycle events, etc)
  • 19. Copyright © Brian Noyes, All rights reserved Xamarin • Write your shared mobile app code in C# • Write separate UI presentation code per platform OR: • For simple UI (i.e. static content and non-visualization data centric apps) – use Xamarin Forms • One UI definition for multiple platforms – in XAML! • Great integration with Visual Studio • Separate cross-plat Xamarin Studio for consistent experience on Mac and Windows • Good tooling and great ecosystem
  • 20. Copyright © Brian Noyes, All rights reserved Multi-platform Targeting • Can I build a XAML app that I can deploy as a WPF app for <Win10 machines, UWP for Windows machines, and Xamarin for mobile apps? • No • Can I build a significant portion of my application logic code in a way that can be reused in WPF, UWP, and Xamarin apps • Absolutely! • Portable Class Libraries (PCLs are the secret sauce) • Can I reuse any of my XAML across those platforms? • No, not really • Copy/Paste/Tweak reuse of fragments • Different control sets, navigation paradigms, application lifecycles
  • 21. Copyright © Brian Noyes, All rights reserved What about Single Page Apps? What are they? • Smart/Rich client apps that run in the browser • A replacement for browser plugins (Silverlight, Flash, Java Applets) • Written with HTML/CSS/JavaScript • Based on the modern web (HTML 5, ECMAScript 5,6/2015, CSS 3) and current browser capabilites (i.e. blazing fast JS execution, rendering that leverages GPU) • Use SPA frameworks • Examples: Angular (1.x, 2), Aurelia, React, Ember, Knockout, Backbone • UI separation patterns: MVC/MVVM • Have rich data binding • Use dependency injection • Have client navigation (routing) functionality • Assist in making AJAX (Web API) calls • Same architectural patterns as a well designed XAML desktop app, just different syntax and execution environment
  • 22. Copyright © Brian Noyes, All rights reserved What about Single Page Apps? What would you choose them? • Because you get to write your app in JavaScript, baby!  • Inherently cross platform on desktop machines (Windows/Mac/Linux/Mobile) • With responsive design, can work beautifully or at least sufficiently on mobile web browsers • Can be packaged with Cordova as an installed mobile app from the app stores (Apple App Store, Google Play, Windows Store)
  • 23. Copyright © Brian Noyes, All rights reserved Break!
  • 24. Copyright © Brian Noyes, All rights reserved WPF Top Ten(-ish) Power Features
  • 25. Copyright © Brian Noyes, All rights reserved Top Ten-ish Power Features/Tips/Techniques (in presentation order, not importance) 1. Format XAML 2. Data binding errors 3. Smart converters 4. XAML namespaces 5. Vector Images 1. Xamalot 6. ItemsControl panel customization a) ListBox templating 7. Implicit DataTemplates 8. Use MVVM and Leverage a framework • Prism, MVVM Light, Caliburn Micro, MVVMCross
  • 26. Copyright © Brian Noyes, All rights reserved Top Ten-ish Power Features/Tips/Techniques (in presentation order, not importance) 7. Leverage the Designer • Clear Layout, Grid cols/rows • Drag/Drop data binding 8. Leverage Blend • VSM, Behaviors, Animations 9. Behaviors 10. Visual State Manager 11. Understand and Inspect the Visual Tree 12. Shared Size Groups