Strategiewechsel bei Microsoft
- Open Source
- Agilität
- Modularisierung
- Cross-Platform
- Zielgruppen
Das mdoerne .NET im Überblick
- Die .NET "Core"-Strategie
- Unterschiede klassisches .NET Framework (CLR) und modernes .NET Core /.NET (Core CLR)
- Vor- und Nachteile von .NET gegenüber .NET Framework
- Platformen: Windows, Linux, macOS, iOS, Android, Web/Browser
- Verfügbare Versionen von .NET, Aktualisierungszyklen, Semantic Versioning
- Support von .NET: Long-Termin-Support vs. Current Version
- Programmiersprachen für .NET (C#, Visual Basic .NET und F# sowie C++/CLI)
- Verbesserungen in CLR, Just-in-Time-Compiler und Garbage Collector
- Ausblick auf kommende .NET-Versionen
Überblick über die Anwendungsarten im modernen .NET (Vertiefung nach Wunsch)
- Desktop-Anwendungen mit WPF und Windows Forms sowie Windows UI Library 3
- Webserver-Anwendungen mit ASP.NET Core
- Single-Page-Web-Applications (SPA) mit ASP.NET Blazor
- WebAPIs mit ASP.NET Core
- Systemdienste (Windows Services / systemd)
- Google RPC-Dienste
- Konsolenanwendungen
Neuerungen in C#
- Neuerungen in C# 8.0
- Neuerungen in C# 9.0
- Neuerungen in C# 10.0
- Neuerungen in C# 11.0
- Neuerungen in C# 12.0
- Neuerungen in C# 13.0
.NET SDK und andere Werkzeuge für das moderne .NET
- Das neue Projektformat im modernen .NET
- Werkzeuge in Visual Studio für das moderne .NET
- Die neuen Kommandozeilenwerkzeuge
- DOTNET CLI (dotnet.exe)
- crossgen.exe
- .NET IL Linker (Trimming/Tree Shaking)
- Paketverwaltung mit NuGet, Vermeidung der Pakethölle
- Neuerungen in Visual Studio für das moderne .NET
- Hot Reloading
- optional: Visual Studio Code als Alternative zu Visual Studio
Klassenbibliotheken im modernen .NET
- .NET Standard
- Funktionen und Klassen aus .NET, die es im modernen .NET nicht mehr gibt
- Neue Klassen im modernen .NET
- Windows Compatibility Pack (WCP)
- Austauschbarkeit von Bibliotheken (Assemblies, DLLs) zwischen .NET, .NET Core und Mono
- Interoperabilität mit Win32-APIs, COM und WinRT
Testen von modernen .NET-Anwendungen
- Unterstützte Unit Test-Frameworks
- Testwerkzeuge
Deployment von modernen .NET-Anwendungen
- Framework-dependent Deployment (FDD) / Portable Application (PA)
- Self-contained Deployment (SCD) / Self-contained Application (SCA)
- Single File Publish
- Assembly Linker (IL Linker)
- Ready to Run Images (R2R)
- Windows Application Packaging (MSIX)
- Deployment auf lokale Systeme
- Deployment in die Azure-Cloud
- Navtive AOT-Compiler
Migration vom klassischen .NET Framework zum modernen .NET
- Herausforderungen
- Migrationswerkzeuge
- .NET Portability Analyzer, Try-Convert, .NET Upgrade Assistant
- Aufwand für verschiedene Migrationsszenarien
- Migrationsleitpfaden
Migrationsszenarien
- WPF zu WPF Core
- Windows Forms zu Windows Forms Core
- ASP.NET zu ASP.NET Core
- Entity Framework zu Entity Framework Core
- WCF zu CoreWCF
- WCF zu gRPC
- Andere Optionen nach Absprache
Optional: Umstellung Ihrer Anwendungen auf das moderne .NET (setzt vorherige Einarbeitung in Ihre Anwendungen voraus)
Entity Framework Core
- Objekt-Relationales Mapping mit EF Core
- Vergleich mit dem klassischen ADO.NET Entity Framework
- Entfallene Funktionen
- Verbesserungen und Neuerungen in EF Core
- Entwicklung mit Entity Framework Core im klassischen .NET Framework
- Entwicklung mit Entity Framework Core im .NET Core
ASP.NET Core
- Vergleich mit dem klassischen ASP.NET (MVC, Webforms)
- Entfallene Funktionen
- Verbesserungen und Neuerungen in ASP.NET Core
- ASP.NET Core WebAPI
- ASP.NET Core MVC
- ASP.NET Core Razor Pages
- ASP.NET Core Blazor (Blazor Server, Blazor WebAssembly, Blazor Auto-Render-Mode, Blazor Static SSR sowie Blazor Hybrid mit Blazor Desktop und Blazor MAUI)
- Google RPC (gRPC): Server und Clients schreiben
- Entwicklung mit ASP.NET Core auf Basis des modernen .NET
Desktop-Anwendungen im modernen .NET
- Windows Desktop Runtime
- Windows Presentation Foundation (WPF) im modernen .NET
- Windows Forms in .NET Core
- Windows UI Library 3 (WinUI3)
- Migration bestehender Windows Forms- und WPF-Anwendungen auf das moderne .NET
Optional: Das moderne .NET auf Linux und MacOS
Optional: Umstellung Ihrer Anwendungen das moderne .NET (setzt vorherige Einarbeitung in Ihre Anwendungen voraus)