BASTA2019: Von WPF nach Angular in 60 Minuten

7252086bae9203045dd7f5664fd96a07?s=47 Manuel Meyer
September 25, 2019

BASTA2019: Von WPF nach Angular in 60 Minuten

Die ganze Welt spricht (fast) nur noch von Angular und es scheint, als käme niemand an dem Framework vorbei. Einmal mehr sind die klassischen Windows-Entwickler mit der Attraktivität der Webwelt konfrontiert. Manch einem WPF- oder WinForms-Entwickler graust es noch immer vor HTML und JavaScript. Dabei ist JETZT der ideale Zeitpunkt für den Umstieg! Schaut man sich die Entwicklung mit Angular im Detail an, so stellt man fest, dass die Unterschiede zu den klassischen Disziplinen immer kleiner werden. Dank der sprachlichen Unterstützung durch TypeScript und dergleichen Konzepte, wie zum Beispiel Data Binding, kommen sich die Frameworks immer mehr entgegen. In dieser Session vergleichen wir die Entwicklung mit WPF und Angular und geben Ihnen die Basics mit, um im Web durchzustarten.

7252086bae9203045dd7f5664fd96a07?s=128

Manuel Meyer

September 25, 2019
Tweet

Transcript

  1. www.thomasgassmann.net/ www.manuelmeyer.net/ @gassmannT @manumeyer1 Von WPF nach Angular in 60

    Minuten BASTA 2019 Thomas Gassmann, Manuel Meyer
  2. Agenda ▪ WPF to Angular ▪ How to start with

    Angular? ▪ Migrating an existing application ▪ Real life problems (and solutions).
  3. WPF to Angular

  4. Fussballmanager

  5. «The by-design purpose of JavaScript was to make the monkey

    dance when you moused over it» -- Brendan Eich
  6. None
  7. New Project

  8. View Code

  9. Model Classes

  10. Backend Call

  11. Data Binding

  12. WPF versus Angular ▪ File new Project ▪ C# ▪

    XAML ▪ Controls ▪ User Controls ▪ Resource Dictionaries ▪ Commands ▪ Data Binding ▪ Value Converter ▪ ng new <name> ▪ Typescript ▪ HTML ▪ HTML Elements ▪ Components ▪ CSS ▪ HTML Events ▪ Data Binding ▪ Pipe.
  13. How to start with Angular?

  14. Download Visual Studio Code

  15. Install VSCode Extensions

  16. Get it from: nodejs.org

  17. npm install @angular/cli

  18. npm install @angular/cli -g

  19. None
  20. Angular CLI ▪ Command line interface for Angular ▪ Build

    an Angular application ▪ Generate files (Scaffolding) ▪ Execute / run the application ▪ Run unit and e2e tests ▪ Prepare and «optimize» the application for deployment.
  21. Anatomy of an Angular App Module Component person-list Component person-detail

    Component person-edit PersonService
  22. CLI: Commands ▪ Create a new Angular CLI project ▪

    Serve the app and open ▪ Build in dev mode ng new soccerManager ng serve -o ng build
  23. Fussballmanager https://github.com/gassmannT/WPFtoAngular

  24. 4 Real life problems and solutions

  25. Problem 1 „Die Spezifikation ist die alte Anwendung.“

  26. Lösung 1

  27. Lösung 1 Photo credit: Mark Spearman on VisualHunt.com / CC

    BY
  28. Photo credit: zoetnet on Visual Hunt / CC BY

  29. Problem 2 „Das muss im Web genau so aussehen wie

    jetzt…“
  30. Lösung 2

  31. Photo credit: Chris Blakeley on Visualhunt / CC BY-NC-ND

  32. Lösung 2 ▪ Einen Partner für UX & UI Design

    involvieren ▪ Muss können: «Web User Experience Design» ▪ Muss können: «Web User Interface Design» ▪ Muss können: CODE liefern! ▪ ….sonst…
  33. None
  34. Problem 3 The DatePicker Problem

  35. Problem 4 „Das ist so alt, dass muss man doch

    komplett neu schreiben!“ --Alle
  36. The product owner is super happy on the green field.

  37. But fun is over when the senior developers start working…

  38. And it gets worse and worse…

  39. „Die Utopie der grünen Wiese“ --Manu & Thomas

  40. „The worst strategic mistake is rewriting code from scratch“ --Joel

    Spolsky Things you should never do: https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
  41. „The integration Problem“ & „The black hole of coupling“ --Udi

    Dahan Own the Future: https://www.youtube.com/watch?v=2iYdKQXGY2E Slides: https://www.slideshare.net/udidahan/own-the-future
  42. Lösung 4

  43. Migrating an existing app

  44. None
  45. Join up the old and new world

  46. None
  47. None
  48. DEMO https://github.com/AngularAtTrivadis/WebWinFormsInteraction

  49. Recap

  50. Recap ▪ Most of the concepts are similar ▪ Its

    2019. Thanks to TypeScript, we do NOT need to be afraid of JS anymore ▪ Technologies are aligning ▪ But the Web is a different world.
  51. Thank you! Manuel Meyer www.manuelmeyer.net @manumeyer1 manuel.meyer@trivadis.com Thomas Gassmann www.thomasgassmann.net

    @gassmannT thomas.gassmann@trivadis.com
  52. Links ▪ Github: Fussballmanager https://github.com/gassmannT/WPFtoAngular ▪ Joel Spolsky: Things you

    should never do https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ ▪ Udi Dahan: Own the Future https://www.youtube.com/watch?v=2iYdKQXGY2E https://www.slideshare.net/udidahan/own-the-future ▪ Web-Winforms Interaction https://github.com/AngularAtTrivadis/WebWinFormsInteraction ▪ Wir prügeln den Monolithen ins Web https://manuelmeyer.net/2019/09/trivadis-techevent-2019-wir-prugeln-den-monolithen-ins- web/
  53. https://m.trivadis.com/angular-schulung Mit Trivadis zum Angular Superhero

  54. None