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.

Architectures for .Net Core Applications

95 views

Published on

Slides from my presentation about application architectures for .NET Core applications. It covers desktop application, web applications, mobile applications as well as container-based applications. It's a roundup of the Microsoft Architecture Guides.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Architectures for .Net Core Applications

  1. 1. Robin Sedlaczek | CTO Fairmas GmbH | .NET User Group Berlin RobinSedlaczek RobinSedlaczek.com
  2. 2. RobinSedlaczek RobinSedlaczek.com robin.sedlaczek@live.de  Community-Leader  CTO der GmbH Berlin  Sprecher | Autor | Blogger Entwickler.de, Heise, DotNetPro, Informatik aktuell, BASTA!, .NET Summit, ParallelCon, ADC, GUI & DESIGN, DevSpace, Spartakiade...  Open Source-Entwickler SharpGL, Roslyn, FxCopAnalyzers, Force Feedback Programming .NET User Group Berlin-Brandenburg Ihr habt Fragen? Ich beantworte sie jederzeit gerne. For free hugs. 😉 Robin Sedlaczek
  3. 3. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de
  4. 4. Schön bunt….
  5. 5. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de PROBLEME Mit Windows, monolithischem .NET Framework & MSSQL Server in die Cloud…
  6. 6. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de MOTIVATION Auf grüner Wiese Aller Anfang ist schwer… Auf brauner Wiese Migration einer Bestandssoftware… Auf der Parkbank Ist .NET Core überhaupt relevant für mich? Raus aus der Komfortzone Womit soll ich mich beschäftigen?
  7. 7. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de Hands-On Lab: Die Aufgabe Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH
  8. 8. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de KOLLABORATIONSPLATTFORM Entwickelt eine plattformunabhängige und chat-basierte Kollaborationsplattform für Unternehmen. Diese Plattform soll, in der täglichen Kommunikation zwischen Angestellten, das Medium E-Mail mittelfristig ersetzen. Daraus ergeben sich folgende Anforderungen:  Benutzer kommunizieren entweder in Direktchats oder gemeinsam in Gruppen.  Textnachrichten sollen sofort und zeitnah ausgeliefert werden (Echtzeit).  Neben Chat-Nachrichten können auch Dokumente ausgetauscht werden. Dateiübertragungen erscheinen im entsprechenden Chat als Nachricht und dienen so als Log.  Kommunikation soll zentral gespeichert und aufgehoben werden. Auch wenn z.B. ein Mitarbeiter das Unternehmen verlässt, soll seine Kommunikationshistorie für einen bestimmten Zeitraum gespeichert werden.  Das gilt ebenfalls für ausgetauschte Dateien. Daher ist für ausreichend Speicherplatz zu sorgen.  Die Plattform soll soweit es geht auf allen System und überall verfügbar sein: im Web, als mobile App, als Desktopanwendung etc. Neue Versionen müssen schnell verteilt werden können.  Benutzerverwaltung und Authentifizierung kann lokal geschehen. Aber auch Anbindung an ein Unternehmensnetzwerk (z.B. an Windows- Domäne aka Active Directory) muss möglich sein.  Schnell expandierende Kunden, generell zunehmende Datenvolumina und globale Echtzeitkommunikation verlangen, dass:  das System entsprechend skalieren kann.  das Deployment neuer Versionen einfach und transparent für den Benutzer ist.  ad hoc skaliert werden kann. 1. Teilt euch selbstständig in Gruppen ein. 2. Besprecht gemeinsam die Anforderungen, technische Umsetzung und den Architekturentwurf. 3. Legt realistische Ziele fest und verteilt die Arbeit in die Teams. 4. Legt los! Integriert so oft wie möglich, auch teamübergreifend! So viel Text…
  9. 9. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de Neues in .NET Core Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH
  10. 10. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de NEUES IN .NET CORE Stand heute (14.02.2019) • Aktuelle Preview: .NET Core 3.0.0 Preview 2 • Aktuelle Version: .NET Core 2.2.2 (12.02.2019) • LTS: .NET Core 2.1.x with SDK 2.1.x • Maintenance: .NET Core 1.1 und .NET Core 1.0
  11. 11. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de .NET Core 3  ASP.NET Core ab Version 3 nicht mehr auf Full Framework lauffähig - nur noch auf .NET Core  WPF, WinForms, EF6 und UWP- Controls unterstützt in .NET Core  .NET Fx komplett eingebettet in Anwendung (.exe) auslieferbar  .NET Core Side-by-Side UND WPF-, WinForms-, UWP- Unterstützung
  12. 12. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de .NET CORE 3  .NET Core + Desktop Packs komplett auf .NET Standard v2.1  ABER: Desktop Packs nur auf Windows!  Side-by-Side für Windows Desktop Anwendungen möglich  Komfortable/problemlose Migration zu .NET Core durch Tooling angestrebt  Umstellung auf neues Project File Format  Mit ML.NET hält AI/ML Einzug in .NET Core
  13. 13. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de
  14. 14. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de Architekturen Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH
  15. 15. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de ARCHITEKTUREN Anwendungstypen  Web Applications & Web APIs  Desktop Applications  Mobile Apps  Cloud Applications  IoT  Artificial Intelligence (AI)
  16. 16. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de ARCHITEKTUREN .NET Application Architecture (Center) https://www.microsoft.com/net/learn/architecture  Architekturen, Patterns & Guides/Guidelines  viele und vor allem „real-komplexe“ Beispiele  das meiste Material als eBooks verfügbar  alle Beispiele als Open Source auf GitHub verfügbar https://github.com/dotnet-architecture
  17. 17. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de Architekturen für Web Apps & Apis Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH
  18. 18. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de WEB APPS & WEB APIS  Clean/Onion-Architektur ist altbekannt: früher hexagonale Architektur, später Ports & Adapter Pattern genannt…  Applikationsmodell ist Zentrum der Anwendung  saubere Trennung von UI, BL und vor allem Infrastrukturcode  Durch IoC bzw. DI ist Infrastrukturcode abhängig von Anwendungskern  Austauschbarkeit & erleichtert Mocking/Testing Clean Architecture (Onion-View) https://github.com/dotnet-architecture/eShopOnWeb
  19. 19. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de WEB APPS & WEB APIS Ports & Adapter Pattern Domain Layer  Definiert Entities (werden im DAL verwendet)  Definiert ViewModels (werden in API verwendet)  Definiert Interface für Datenzugriffslogik (implementiert in DAL)  Implementiert Supervisor (benutzt von API), konvertiert Models Data Layer  Implementiert Repository Pattern  Repository implementiert Interface aus Domain Layer API Layer  Implementiert HTTP Services  Leitet Aufrufe an Domain Layer weiter  Leitet Antworten von Domain Layer als Response weiter
  20. 20. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de Architekturen für Desktop Apps Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH
  21. 21. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de DESKTOP APPS  MVVM-Pattern trennt UI von BL  Trennung von Application (Login, Navigation, Messages), Domain (Entities, BL) und Data Services (Datenzugriff)  saubere Trennung von UI, BL und vor allem Infrastrukturcode  Durch IoC bzw. DI ist Infrastrukturcode abhängig von Anwendungskern  Austauschbarkeit & erleichtert Mocking/Testing https://github.com/Microsoft/InventorySample
  22. 22. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de Architekturen für Mobile Apps & Microservices Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH
  23. 23. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de MOBILE APPS & MICROSERVICES Business Logic A Technologiestack XY Business Logic B Technologiestack YZ Business Logic C Technologiestack ZA Business Logic D Technologiestack YA Business Logic A Technologiestack XY Business Logic B Technologiestack YZ Business Logic A Technologiestack XY Business Logic B Technologiestack YZ Business Logic A Technologiestack XY Business Logic B Technologiestack YZ Event Bus
  24. 24. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de MICROSERVICES & CONTAINER https://github.com/dotnet-architecture/eShopOnContainers
  25. 25. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de MICROSERVICES & CONTAINER https://github.com/dotnet-architecture/eShopOnContainers
  26. 26. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de Ressourcen Robin Sedlaczek | Chief Technical Officer at Fairmas GmbH
  27. 27. RobinSedlaczek RobinSedlaczek.com Robin.Sedlaczek@live.de RESSOURCEN https://dotnet.microsoft.com/learn/dotnet/architecture-guides https://github.com/dotnet-architecture Microsoft .NET Architecture Guides eBooks
  28. 28. Robin Sedlaczek | CTO Fairmas GmbH | .NET User Group Berlin RobinSedlaczek RobinSedlaczek.com

×