Auch Web Developer werden sich über die Veröffentlichung von .NET 3.0 freuen, denn als Teil des Frameworks wurde auch ASP.NET Core 3.0 mitgeliefert. Die neue Version des Web Application Frameworks bietet viele Neuerungen, die dieser Blogpost vorstellt.
Was ändert sich in ASP.NET Core 3.0?
Die erste große Änderung ist der Wechsel des HostBuilders von einem ASP.NET Core internen Host, zu dem Generic Host von .NET Core. Dieser Wechsel ist wichtig, weil dadurch eine deutlich einfachere Integration von .NET Core Server Funktionen in Web Applikationen möglich ist. Mehr Informationen zur Migration des HostBuilder sind hier zu finden.
Damit ASP.NET Core für die Zukunft gerüstet ist, wird nun standardmäßig das HTTP/2 Protokoll in Kestrel verwendet. HTTP 1.1 wurde bereits 1997 eingeführt und ist quasi überholt. Einige wenige Browser unterstützen mittlerweile bereits HTTP/3, weshalb es Zeit wurde, dass ASP.NET Core HTTP/2 als Standard verwendet. Interessant wird auch HTTP/2 in Kombination mit gRPC, welches wir in einem späteren Blogpost noch vorstellen werden.
Die System.IO.Pipelines API bietet nun die Möglichkeit auf Request und Response Bodys zuzugreifen. Dazu wurden die Klassen HttpRequest und HttpResponse jeweils um ein Attribut ergänzt, welches entsprechend einen PipeReader oder PipeWriter zur Verfügung stellen. Diese können unter anderem dazu verwendet werden, den Durchsatz von Endpoints aus Performance-Sicht deutlich zu verbessern.
Welche neuen Features wurden eingeführt?
Um dem Entwickler bessere Kontrolle über die Zustände seiner Applikation zu geben, wurden Health Checks eingeführt. Diese ermöglichen beispielsweise das Überwachen von Speicherkapazitäten und anderen Hardware Ressourcen oder das Überprüfen von Abhängigkeiten, die eine Applikation aufweist. Damit dieses Feature vollständig unterstützt werden kann, wurde das Endpoint Routing um Funktionalitäten erweitert. So kann unter anderem die Reihenfolge von Middleware und Endpoints in der Request Processing Pipeline frei konfiguriert werden und die Endpoints unterstützen die oben beschriebenen Health Checks.
Das letzte Feature, das dieser Blogpost vorstellt, sind die Worker Service Templates. Worker Services sind bereits seit .NET Core 2.1 Teil des Frameworks und bieten die Möglichkeit, Hintergrunddienste wie Windows Services oder Linux Daemons zu definieren. Damit es noch einfacher wird, einen Service zu erstellen, bietet ASP.NET Core 3.0 jetzt die Möglichkeit, Worker Services über ein Template initial anzulegen. Dieses Template stellt einen Startpunkt zur Verfügung, wenn ein neuer Service implementiert werden soll. Wie genau das Template verwendet wird, ist hier beschrieben.
ASP.NET Core 3.0 bringt allerdings nicht nur neue Features, sondern auch eine Einschränkung. Wer weiterhin das .NET Framework vollständig nutzen will, muss auf .NET Core 2.1 LTS zurückgreifen, da ASP.NET Core 3.0 nur mit .NET Core 3.0 kompatibel ist.
Sprechen Sie uns an, wenn auch Sie Fragen zu Themen rund um .NET Core haben oder Hilfe bei Portierung Ihrer Anwendung nach .NET Core 3.0 in Ihrem Unternehmen benötigen. Wir führen Sie gerne ans Ziel.