Um eine asp.net Core Anwendung hosten zu können, gibt es zwei Möglichkeiten. Zum einen InProcess und zum anderen OutOfProcess. Im Folgenden wird der Unterschied erklärt:
- InProcess: Das Hosting wird über den IIS-Server bereitgestellt.

- OutOfProcess: Das Hosting wird über den Kestrel Web Server bereitgestellt.

Was ist der Unterschied zwischen den beiden Web-Servern? Der IIS ist ein seit über 15 Jahren aktiver Webserver, der gleichzeitig die größtmöglichste Abwärtskompatibiltät gewährt. Dies fällt zu Lasten der Performance. Um diesem Prozess entgegen zu wirken, wurde der Kestrel Web Server erstellt. Der Fokus liegt hier auf neueren Technologien, wie z.B. Async Unterstüztung.
Weitere Informationen:
Wenn eine asp.net-Core Anwendung mit einem Frontend wie z.B. Angular geschrieben wird, müssen meist statische Dateien bereitgestellt werden. Im Folgenden wird eine Erklärung dafür gegeben:
- UseStaticFiles: Der Befehl gibt an, dass statische Dateien wie js, css, html usw. bereitgestellt werden. Typischerweise aus dem wwwrooot-Ordner, wobei dieser geändert werden kann. Die Dateien werden so wie sie erstellt worden sind dem Clienten zur Verfügung gestellt.
- UseSpaStaticFiles: Der Befehl registriert eine Middleware, die dafür sorgt, dass Dateien aus dem Ordner bereitgestellt werden. Der Pfad wird dafür in de Funktion ConfigureServices => AddSpaStaticFiles konfiguriert.
- UseSpa: Der Befehl registriert eine Middleware, welche alle Parameter enthält, um die Anwendung starten zu können. Z.B. aus welchem Ordner die Anwendung gestartet wird, in welcher Modus (Dev,Prod) und auch mit welchem Befehl die Anwendung gestartet wird (z.B. npm start).
Weitere Informationen:
Seit .NET Core 3.0 hat Microsoft eine eigene Libary (System.Text.Json) freigegeben, um Operationen im JSON-Format durchzuführen. Darunter fällt auch das serialisieren und deserialisieren von Requests & Respones an eine API.
Leider hat die Libary noch ein paar Schwierigkeiten (Stand 09.10.2020) komplexere Datentypen, wie Dictionaries zu verarbeiten. Teilweise treten System.NotSupportExceptions auf, da die Libary, die Datentypen nicht unterstützt.
Damit das Problem umgangen werden kann, gibt es weiterhin die alt bekannte Newtonsoft.Json-Libary, die genutzt werden kann und auch mit komplexeren Datentypen umgehen kann.
Folgende Schritte müssen durchgeführt werden, um die Libary einzubinden:
- Newtonsoft.Json als Nuget Paket hinzufügen
- Als nächstes abhängig davon was für ein Projekt vorliegt, muss in der Startup.cs-Datei folgende Zeile geändert/hinzugefügt werden:
Sobald der Befehl abgeändert worden ist, wird das Paket automatisch genutzt in der Vearbeitung aller JSON-Operationen.