Microsofts Core-Produkte erhalten Upgrade auf Version 1.1
Microsofts Core-Produkte erhalten Upgrade auf Version 1.1
Das .NET-Team hat .NET Core, ASP.NET Core und Entity Framework Core in Version 1.1 ausgespielt. Das gab Microsoft im Rahmen der Konferenz Connect(); bekannt. Im Folgenden wollen wir uns die damit einhergehenden Änderungen einmal genauer anschauen.
Vor knapp drei Wochen wurden bereits die Preview-Versionen von .NET Core 1.1, ASP.NET Core 1.1 und Entity Framework Core 1.1 veröffentlicht, die einen Vorgeschmack auf die neuen Features lieferten. Jetzt sind Microsofts Core-Produkte alle in Version 1.1 erschienen. Grund genug, einen Blick auf alle Neuerungen und Änderungen zu werfen.
Bei .NET Core 1.1 handelt es sich um das erste Current-Release, sodass in Zukunft lediglich Security-Releases folgen sollten. Dennoch hat sich im Vergleich zu Preview 1 von .NET Core 1.1 relativ wenig Neues getan: Das Release bringt neue Distributionen und eine verbesserte Performance mit sich. So werden ab sofort Linux Mint 18, OpenSUSE 42.1, macOS 10.12 und Windows Server 2016 unterstützt.
.NET Core 1.1 bringt zudem 1.380 neue APIs, von denen viele aber nur interne Funktionen von .NET Core betreffen. Aus diesem Grund wird auch noch nicht .NET Standard 2.0 unterstützt, sondern lediglich .NET Standard 1.6. Dieser Support soll erst 2017 kommen.
Des Weiteren wurde die Dokumentation überarbeitet und die Performance von .NET Core enorm verbessert. So wurde unter anderem die CoreCLR-Runtime via Profile-Guided Optimization (PGO) optimiert, was zu erheblichen Performance-Verbesserungen führte, so Microsoft.
Die bereits angekündigten Änderungen an MSBuild und CSProj sind noch immer nicht Teil von .NET Core 1.1; die Werkzeuge verbleiben im Preview-Stadium. Ausführliche Informationen bieten der zugehörige Blogpost sowie die Release Notes.
Bei ASP.NET Core 1.1 handelt es sich um die schnellste Version des Webframeworks aller Zeiten, so Microsoft. Wie ein Benchmark-Test bei TechEmpower ergab, ist ASP.NET Core 1.1 mit Kestrel das schnellste Mainstream-Fullstack-Webframework derzeit. Zudem sei ASP.NET Core auf Linux 760-mal schneller als noch vor einem Jahr – eine solche Steigerung habe es bislang nicht gegeben.
Daneben gab es aber noch eine ganze Reihe an Neuerungen: So wurden in ASP.NET Core 1.1 bislang fehlende Funktionen zum Umlenken von HTTP-Anfragen (URL Rewriting) ergänzt, sodass Entwickler jetzt mit regulären Ausdrücken, der XML-Syntax der Internet Information Services (IIS) oder der Mod_Rewrite
-Syntax von Apache Umlenkungen definieren können.
Des Weiteren können nun mit dem Paket Microsoft.AspNetCore.ResponseCaching
in Verbindung mit dem Memory Cache (Microsoft.Extensions.Caching.Memory
) gerenderte Websiten zwischengespeichert werden. Auch eine ZIP-Komprimierung der HTTP-Datenströme ist nun mit dem Paket Microsoft.AspNetCore.ResponseCompression
möglich.
Außerdem bietet Microsoft ab sofort als Prozess-Host mit dem WebListener-Server eine Alternative, die direkt auf dem Windows Http Server API läuft. WebListener unterstützt auch Windows-spezifische Features, wie die Windows-Authentifizierung, Port Sharing oder HTTPS mit SNI. Ebenfalls lassen sich in ASP.NET Core 1.1 View Components wie Tag Helper einsetzen.
Darüber hinaus lassen sich jetzt mit dem MiddlewareFilterAttribute
auch Middleware-Komponenten auf einzelne Controller oder Actions beschränken. Zudem können sich Entwickler auf Neuerungen in Microsoft Azure freuen: Das Package Microsoft.AspNetCore.AzureAppServicesIntegration
speichert alle von Logger-Objekten erzeugten Nachrichten in der Cloud.
Zudem können Entwickler mit den Paketen Microsoft.AspNetCore.DataProtection.Redis
, Microsoft.AspNetCore.DataProtection.AzureStorage
und Microsoft.Extensions.Configuration.AzureKeyVault
wichtige, sensible Informationen in Redis oder Azure hinterlegen.
Auch hier bieten die Release Notes und der zugehörige Blogpost weitere Informationen zu allen Neuerungen in ASP.NET Core.
Auch Entity Framework Core ist in Version 1.1 erschienen und folgt damit demselben Release-Zyklus wie .NET Core. Das Release konzentriert sich hauptsächlich auf Bug-Fixes und die Implementierung einiger kritischer Features. Dazu zählen beispielsweise der verbesserte LINQ-Provider und die Einführung von DbSet.Find(…)
, das die Suche nach Objekten im Cache ermöglicht.
Zudem sind jetzt auch das explizite Laden von Inhalten einer Navigation-Property mit Load()
, das erneute Laden bereits geladener Objekte mit Reload()
sowie die Befehle GetDatabaseValues()
und GetModifiedProperties()
verfügbar.
Des Weiteren ermöglicht die neue HasField(…)
-Methode ein Mapping auf einfache Fields. Auch die Connection Resiliency zum SQL Server oder SQL Azure ist wieder möglich und es lassen sich Entities auf speicheroptimierte Tabellen von SQL Server abbilden. Außerdem können Entwickler jetzt Standardfunktionen von Entity Framework Core durch eigene Implementierungen ersetzen.
Ein Überblick über alle Änderungen und Neuerungen findet sich im Blogeintrag sowie in den Release Notes.