Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Moderne Business Apps mit XAML - oder mit WPF für die Zukunft geplant

67 views

Published on

WPF ist seit .NET 3.0 released. Für Desktop-Applikationen wird mittlerweile die Universal Windows Platform mit der Windows Runtime von Microsoft bevorzugt. Wie einfach ist der Umstieg? Wie kann möglichst viel Code gemeinsam mit UWP und WPF verwendet werden?

Published in: Software
  • Be the first to comment

  • Be the first to like this

Moderne Business Apps mit XAML - oder mit WPF für die Zukunft geplant

  1. 1. Moderne Business Apps mit XAML oder: Mit WPF für die Zukunft geplant Christian Nagel csharp.christiannagel.com
  2. 2. Goals • WPF heute • Warum Universal Windows Platform (UWP) • Einfacher Wechsel der Client-Technologie • Non-goals: • Fancy Design
  3. 3. Agenda WPF and UWP Sharing Code Moving to UWP
  4. 4. Christian Nagel • Training • Coaching • Consulting • Development • Microsoft MVP • www.cninnovation.com • csharp.christiannagel.com
  5. 5. WPF and UWP? 1
  6. 6. All your users upgraded to Windows 10!
  7. 7. Rewriting my desktop application takes years 
  8. 8. Desktop Bridge • Supports Build 14393, Anniversary Edition • Deployment • Use Windows Runtime APIs • Add UWP Features over time
  9. 9. Warum UWP • UWP ist die Microsoft Desktop-Plattform • Deployment (APPX) • Windows 10 S • Modernes Styling • Runs Native • Windows 10 verwendet UWP • Neue Features in der Windows Runtime (Updates 2 x im Jahr)
  10. 10. UWP Features • Easy Deployment/Updates • Native, Compiled Binding • Layout • RelativePanel, AdaptiveTrigger, NavigationView • Data Sharing • Tile Updates, Notifications • Multiple Windows • Sideloaded Installation
  11. 11. Sharing Code 2
  12. 12. Demo • View-Model • Commands • Dependency Injection mit WPF und UWP
  13. 13. Libraries • .NET Standard Libraries • Successor for Portable Libraries (Legacy) • .NET Standard 2.0 • .NET Framework 4.6.1 • UWP Build 16299 • Xamarin.iOS 10.14, Xamarin.Android 8.0 • https://docs.microsoft.com/dotnet/standard/net-standard
  14. 14. MVVM Pattern View View-Model Model
  15. 15. Views • XAML • Wenig Code-Behind • Styles in Resources
  16. 16. Views • XAML • Wenig Code-Behind • User Controls • Styles in Resource Dictionaries
  17. 17. Binding • Binding to Lists und Elements • Binding to Properties & Commands • Where to put the BindingContext? • Pages / User Controls
  18. 18. Binding • Binding mit Listen und Elementen • Binding zu Properties & Commands • Wohin mit dem BindingContext? • Pages / User Controls • Data Context wird an User Controls weitergereicht
  19. 19. Models • INotifyPropertyChanged • Benachrichtigung bei Änderungen
  20. 20. Models • INotifyPropertyChanged • Benachrichtigung bei Änderungen
  21. 21. View-Models • Basisklassen für gemeinsame Features • Progress-Information • Error-Handling • Master/Detail • Keine UI Typen im View-Model • Properties und Commands für das View
  22. 22. View-Models • Basisklassen für gemeinsame Features • Progress-Information • Error-Handling • Master/Detail • Keine UI Typen im View-Model • Properties und Commands für das View
  23. 23. View-Models für Items • Items in Listen brauchen oft Commands • View-Models können in Listen verwendet werden
  24. 24. Commands • ICommand Interface • Commands to Delegates
  25. 25. Commands • ICommand Interface • Commands to Delegates
  26. 26. Dependency Injection
  27. 27. Dependency Injection • Einfache View-Models • Services unabhängig von View-Models • Services über DI injecten • Unabhängigkeit von Plattform-Features • Dependency Injection Container erleichtern Dependency Management
  28. 28. Compiled Binding - Demo
  29. 29. What you’ve seen • .NET Standard • MVVM removes strong dependencies • DI Container makes DI easy • Compiled Binding with UWP
  30. 30. Moving to the Universal Windows Platform
  31. 31. UWP - Modern Controls • Layout • NavigationView • RelativePanel • Hub • Flip View • Elements and Lists • TextBox mit Header • CommandBar/AppBar • Inking • AutoSuggest
  32. 32. UWP – Compiled Binding • Compiler Errors • Schneller (ohne Reflection) • Kein DataContext • ViewModel an User Controls weitergeben
  33. 33. Sharing Code • .NET Standard 2.0 • Windows 10 Fall Creators Update • .NET Standard 1.4 • Windows 10+ • Das gleiche View-Model • Die gleichen Services • Contracts für Platform-specific Services
  34. 34. Summary • Sharing Code mit WPF und UWP • MVVM Pattern • Dependency Injection • UWP für Desktop Applikationen
  35. 35. Questions?
  36. 36. More Information (1) • https://blogs.windows.com • Sample Code: • https://github.com/CNinnovation
  37. 37. More Information (2) • https://github.com/ProfessionalCSharp • https://csharp.christiannagel.com • https://www.cninnovation.com • Training & Coaching
  38. 38. Thank you!

×