.NET Standard 2.0, .NET Core 2.0, ASP.NET Core 2.0 und VS 2017.3

Vergangene Woche gab es ein richtiges Feuerwerk an Releases im .NET Umfeld. Die wichtigsten Neuerungen sind hier zusammengefasst.

.NET Standard 2.0

Die erste Version bzw. 1.x Versionen des .NET Standards wurde bereits vor über einem Jahr gemeinsam mit .NET Core 1.0 veröffentlich. Der .NET Standard definiert ein Set an APIs, das auf allen .NET Plattformen (.NET Framework, .NET Core, Mono, Xamarin, …) verfügbar ist. Dadurch ist es möglich Libraries zu erstellen, die auf allen Plattformen verwendet werden können. Der .NET Standard ersetzt die bisher dafür verwendeten Portable Class Libraries (PCLs).

Mehr Informationen dazu findet man in der Dokumentation von Microsoft.

Mit der Veröffentlichung der Version 2.0 erhält der .NET Standard ein gewaltiges Update. Statt 13.000 APIs in Version 1.6 stehen in der neuen Version 32.000 APIs zur Verfügung. Bei den meisten neuen APIs handelt es sich um .NET Framework APIs, wodurch das Portieren von bestehenden Code zu .NET Standard wesentlich einfacher wird.

Neu ist auch ein Kompatibilitätsmodus. Dadurch können .NET Standard Libraries bestehende .NET Framework Libraries referenzieren, sofern diese nur APIs verwenden, die im .NET Standard enthalten sind. Laut Microsoft trifft das auf rund 70% aller Nuget Packages zu.

Folgende Grafik zeigt welche .NET Standard Versionen von welchen Plattformen unterstützt werden:

.NET Core 2.0

.NET Core ist die Open Source und Multiplattform Variante des .NET Frameworks. Im Vergleichen zum vollen .NET Framework wurde .NET Core grundlegen überarbeitet. Neben Windows steht es unter anderem für verschiedenen Linux Distributionen und für Mac OS zur Verfügung.

Die wichtigsten Neuerungen in .NET Core 2.0 sind Performanceverbesserungen, die Unterstützung von .NET Standard 2.0 und Support für weitere Plattformen. Vor allem die Unterstützung von .NET Standard 2.0 ist ein wichtiger Schritt für .NET Core. Dadurch kann bestehender Code nun viel leichter portiert werden und es steht auch eine viel größere Zahl an Nuget Packages unter .NET Core zur Verfügung.

ASP.NET Core 2.0

ASP.NET Core ist die Neuimplementierung von ASP.NET MVC für .NET Core. Dabei wurden sehr viele Konzepte grundlegend überarbeitet, Altlasten entfernt (Stichwort System.Web) und Optimierungen für den Einsatz in der Cloud vorgenommen. ASP.NET Core wurde zwar für .NET Core entwickelt, kann derzeit aber auch noch mit dem vollen .NET Framework verwendet werden. Dadurch kann man schon heute auf das neue System setzten, hat aber weiterhin alle bestehenden Libraries zur Verfügung, die nicht so schnell zu .NET Core portiert werden können.

ASP.NET Core 2.0 bringt eine Vielzahl an kleinen Verbesserungen. Die größten Neuerungen sind allerdings die Unterstützung von .NET Core 2.0, Tooling Support in Visual Studio 2017.3 und die neuen Razor Pages.

Entity Framework Core 2.0

Entity Framework (EF) Core ist eine leichtgewichtige, erweiterbare, cross-platform Version des Entity Frameworks. Version 2.0 bringt ebenfalls viele Neuerungen und Verbesserungen. Unter anderem wurde EF Core 2.0 für den .NET Standard 2.0 entwickelt.

Visual Studio 2017.3

Das neueste Update für Visual Studio 2017 bringt vor allem die Unterstützung für .NET Standard 2.0 und .NET Core 2.0. Dadurch ist z.B. Live Unit Testing auch mit .NET Core und ASP.NET Core Projekten möglich. Weiters kann man jetzt ohne weiteren Aufwand .NET Core/.NET Standard Libraries aus .NET Framework Projekten referenzieren und umgekehrt.

Die SDKs dafür werden derzeit aber noch nicht mit dem Visual Studio Installer ausgeliefert, sondern müssen manuell installiert werden.

Weitere Neuerungen betreffen Verbesserungen im Bereich Accessibility, Azure Functions Support und verbesserte Unterstützung für Container. Alle Änderungen kann man in den offiziellen Release Notes nachlesen.

Wie bereits erwähnt ersetzt der .NET Standard die Portable Class Libraries. In Visual Studio 2017.3 wurden die PCLs nun auch als deprecated gekennzeichnet.

Fazit

Mit diesen Releases macht das neue, cross-platform .NET Ökosystem einen riesigen Schritt nach vorne. Da nun ein Großteil der .NET Framework APIs im .NET Standard enthalten sind, können bestehende Libraries nach und nach zum .NET Standard portiert werden. Und zumindest für neue Projekte sollte .NET Core auf jeden Fall in Betracht gezogen werden.

Speichere in deinen Favoriten diesen permalink.

Schreibe einen Kommentar