Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

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

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Architecting For Ux
Architecting For Ux
Wird geladen in …3
×

Hier ansehen

1 von 26 Anzeige

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

Herunterladen, um offline zu lesen

Groupe .NET/ASP.NET
Mardi 23 février 2016
Conférencier: Brian Noyes, Washington USA

Sujet #1: Understanding the Windows Desktop App Development Landscape
It's 2016. You've survived the UI technology uncertainties of the post-apocalyptic Silverlight and Windows 8 Store Apps era. You still have requirements to build desktop apps for Windows. Should you just use Windows Forms because you know it well and it has been stable for a decade? Should you use WPF because it is still the most powerful XAML variant out there? Should you jump on the Windows 10 Universal Windows Platform? Or should you give up the rich XAML and C#/VB world for the ever-expanding world of client JavaScript and Single Page Applications (SPAs)? In this session we will discuss all of these options, talk about the pros and cons of each and while there is no "one size fits all", we will try to arm you with the knowledge to make the right choice for your current and emerging client application requirements.

Sujet #2: Top 10 WPF Power Features
WPF is still the right technology for building many client applications today. You may be brand new to the platform, or you may have been using it for a little while. But WPF is vast and there are many different ways to get the same things done, some more efficient than others. In this session, I'll walk you through the top 10 things I think every WPF developer should know and use, along with scenarios where those features make sense.

Groupe .NET/ASP.NET
Mardi 23 février 2016
Conférencier: Brian Noyes, Washington USA

Sujet #1: Understanding the Windows Desktop App Development Landscape
It's 2016. You've survived the UI technology uncertainties of the post-apocalyptic Silverlight and Windows 8 Store Apps era. You still have requirements to build desktop apps for Windows. Should you just use Windows Forms because you know it well and it has been stable for a decade? Should you use WPF because it is still the most powerful XAML variant out there? Should you jump on the Windows 10 Universal Windows Platform? Or should you give up the rich XAML and C#/VB world for the ever-expanding world of client JavaScript and Single Page Applications (SPAs)? In this session we will discuss all of these options, talk about the pros and cons of each and while there is no "one size fits all", we will try to arm you with the knowledge to make the right choice for your current and emerging client application requirements.

Sujet #2: Top 10 WPF Power Features
WPF is still the right technology for building many client applications today. You may be brand new to the platform, or you may have been using it for a little while. But WPF is vast and there are many different ways to get the same things done, some more efficient than others. In this session, I'll walk you through the top 10 things I think every WPF developer should know and use, along with scenarios where those features make sense.

Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

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

Anzeige

Weitere von MSDEVMTL (20)

Aktuellste (20)

Anzeige

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

  1. 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. 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. 3. Copyright © Brian Noyes, All rights reserved Agenda  Windows Desktop Development Landscape  UI Frameworks  XAML Platforms  WPF  UWP  Multi-platform targeting
  4. 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. 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. 6. Copyright © Brian Noyes, All rights reserved Which Should I Care About?  WPF  Silverlight  Windows Phone  WinRT  8.1: Universal Apps  UWP  Xamarin
  7. 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. 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. 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. 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. 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. 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. 13. Easy for users to get & stay current Unified core and app platform The convergence journey Windows 10 Converged OS kernel Converged app model
  14. 14. Design
  15. 15. Design
  16. 16. 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)
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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)
  21. 21. Copyright © Brian Noyes, All rights reserved Break!
  22. 22. Copyright © Brian Noyes, All rights reserved WPF Top Ten(-ish) Power Features
  23. 23. 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
  24. 24. 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

×