Optional: Vermittlung des notwendigen Basiswissens in HTML, CSS und JavaScript und .NET sowie C#
Einführung
- Architektur von modernen, mehrschichtigen ASP.NET MVC-Anwendungen
- Einsatzgebiete von ASP.NET Core
- Überblick über die verschiedene Architekturmodelle innerhalb von ASP.NET Core: MVC, Razor Pages, Blazor, WebAPI
Werkzeuge
- Kommandozeilenwerkzeuge (dotnet, dotnet-aspnet-codegenerator)
- Werkzeuge in Visual Studio
- Werkzeuge in Visual Studio Code F(VSCode)
Startcode einer ASP.NET Core-Anwendung
- Konzept der Middleware-Komponenten
- Verschiedene Middleware-Komponenten verwenden
- Minimal API (seit .NET 6.0) vs. tradionelles/vollständiges API (seit .NET Core 1.0)
Architektur und Konzepte
- Controller
- Views
- Model
- Pages
- Razor Templates / Razor-Syntax
- Routing
Serverseitiges Rendering: Razor Pages vs. MVC
- Unterschiede in der Architektur zu MVC
- Unterschiede im API
- Razor Class Libraries (RCL)
Modulariersierung und Wiederverwendbarkeit in MVC und Razor Pages
- HTML Helper
- Razor Helper
- Tag Helper
- Partielle Views
- ViewStart.cshtml
- View Components
- Areas
- Razor Class Libraries
Anwendungszustände speichern (Zustandsmanagement) in MVC und Razor Pages
- Query Strings
- Hidden Fields
- Temp Data
- HttpContext Items
- Session-Variablen
- Cookies
Single Page Apps (SPA) mit Server Side Blazor (ab ASP.NET Core 3.0)
- Architektur mit ASP.NET SignalR und Websockets
- Vergleich zu SPAs mit anderen Techniken
- Razor Components
- Datenbindung
- Ereignisse
- Zustandsverwaltung in Razor Components
- Integration mit JavaScript
- Modularisierung und Wiederverwendbarkeit
- Templated Components
- Razor Class Libraries
Datenzugriff
- Zugriff auf Datenbanken via Entity Framework Core (z.B. auf Microsoft SQL Server)
- Konfigurationsdateien lesen
- Optional: Zugriff auf Datenbanken via ADO.NET
- Optional: Zugriff auf andere Datenspeicher, z.B. XML-Dokumente
Eingabemasken/Formulare und Validierung
- Erstellung von Formularen
- HTML-Eingabesteuerelemente nutzen
- Validieren von Benutzereingaben
- Benutzerdefinierte server- und clientseitige Validatoren
Optional: Drittanbieter-Steuerelemente für ASP.NET Core MVC/Razor Pages und Blazor
- ASP.NET Core MVC Controls Toolkit
- Beispiele mit kommerziellen ASP.NET Core-Steuerelementen (nach Absprache z.B. von Infragistics, Telerik KendoUI, Component One, DevExpress)
Fortgeschrittene Techniken
- Dependency Injection / Service Injection
- Filter
- Caching (Daten-Caching und Seitencaching)
Sicherheit: Authentifizierung/Autorisierung/Benutzerverwaltung
- Konzept von "ASP.NET Identity"
- Windows Authentifizierung / Active Directory-Authentifizierung
- Eigene Benutzerkonten
- Cloud-Benutzerkonten (Twitter, Google, Microsoft)
Deployment auf Webserver und in die Cloud
- Kestrel / Self-Hosting
- Deployment-Techniken: Dateisystem, FTP, MSDeploy/WebDeploy, PowerShell-Skripte
- Internet Information Services (IIS)
- Provider/Cloud (Microsoft Azure, optional auch andere)
- NativeAOT-Kompilierung
REST-Services mit dem ASP.NET (Core) WebAPI
- Unterschiede zwischen REST und SOAP/WS-*-Standards
- REST-Services mit ASP.NET WebAPI erstellen
- Controller und Actions
- Minimal APIs als Alternative zu Controllern
- Datenformate und Parameterübergabe/Parameterbindung
- Routing
- Kontrolle über HTTP-Nachrichten
- REST-Services aufrufen (z.B. via jQuery, Axios, Angular, Vue.js, React oder Blazor)
- Web-API erweitern
- Metadaten mit OpenAPI Specification (Swagger)
- CORS
Optional: Datenbasierte Services
- GraphQL
- Open Data Protocol (Odata)
Optional: Google RPC (gRPC)
Optional: Weitere in ASP.NET Core unterstütze Protokolle
Optional: Testen
- Unit Testing von ASP.NET Core-Anwendungen
- Test von Modell und Controller
- Bunit für Blazor-Testing
- HTTP-Testing
- UI-Testing mit Selenium, Playwright, Cypress u.a. (nach Wunsch)
Optional: JavaScript und JavaScript APIs im Zusammenspiel mit ASP.NET (Core) Razor und ASP.NET (Core) Web API
- JavaScript/TypeScript
- JavaScript-Frontends mit Angular, React, Vue.js, Svelte (Framework nach Wunsch)
- Hilfsbibliotheken: z.B. Datumsverarbeitung mit moment.js, Filtern/Sortieren mit underscore.js, Reactive Extensions for JavaScript (RxJS)
- Web-Sockets und ASP.NET Core SignalR
- Optional: weitere JavaScript-Frameworks nach Ihrem Wunsch
Optional: Praxisszenarien
- Realisierung von Single Page Web Applications (SPA)
- Mobile Web-Anwendungen
- Offline-fähige Web-Anwendungen
- Benachrichtigungen/Push (Rückkanal von Server zu Browser) mit ASP.NET SignalR
- Progressive Enhancement
- Progressive Web Apps
Optional: Migration ASP.NET Web Forms zu ASP.NET MVC
Optional: Migration ASP.NET MVC zu ASP.NET Core MVC
Optional: Besprechung verschiedener Middleware-Komponenten nach Wahl