Version 1.1 der Microsoft .NET-Core-Familie ist erschienen

Dreieinhalb Monate nach der ersten Release-Version hat Microsoft nun eine erste funktionale Erweiterung f├╝r seine aus .NET Core, ASP.NET Core und Entity Framework Core bestehende neue .NET-Generation ver├Âffentlicht.

Auf der Entwicklerkonferenz connect(); hat Microsoft .NET Core 1.1 vorgestellt und holt dabei neue Plattformen an Bord: Mit dem Release kommen Linux Mint 18, OpenSUSE 42.1, macOS 10.12 und Windows Server 2016 hinzu. Samsung liefert k├╝nftig auch .NET Core f├╝r Tizen.

Die neue Version 1380 bietet zus├Ątzliche APIs, erl├Ąutert Microsoft. Damit sind aber nicht komplette Bibliotheken gemeint, sondern die Redmonder haben jede neue Klasse und jedes neue Klassenmitglied einzeln gez├Ąhlt. Beim Blick in die Liste der API-Neuerungen finden Entwickler dann auch wenig, was sie typischerweise brauchen. Die meisten Erg├Ąnzungen betreffen interne Funktionen von .NET Core oder dienen der Unterst├╝tzung f├╝r die Version 7.0 der Programmiersprache C#. Die .NET Standard Library ├Ąndert den Versionsstand daher auch nur von 1.6 auf 1.6.1. Die von Microsoft unter dem Slogan „One library to rule them all“ gro├č angek├╝ndigte Angleichung an die Programmierschnittstellen der Base Class Library des gro├čen .NET Framework 4.6 soll erst im Jahr 2017 im Rahmen der .NET Standard Library 2.0 erfolgen.

Performancesteigerung in ASP.NET Core

Eine Performancesteigerung von Webanwendungen von rund 15 Prozent wollen die Macher durch Verwendung der Profile Guided Optimization (PGO) erreicht haben, die auch beim gro├čen .NET Framework zum Einsatz kommt. Durch Aufzeichnung der tats├Ąchlichen Nutzung des Programmcodes wird dessen Reihenfolge im Kompilat optimiert.

In der dreizehnten Ausgabe des TechEmpower-Webserverframework-Performanztest ist ASP.NET 1.1 bereits ber├╝cksichtigt und belegt dort den zehnten Platz in der „Plain Text“-Auswertung. Allerdings wird dabei ASP.NET Core auf Linux und ohne das MVC-Framework eingesetzt. Mit dem MVC-Framework rutscht ASP.NET Core in der Leistung auf den 29. Platz ab.

Quelle: Techempower

Quelle: Techempower

Nachger├╝stete Funktionen

In ASP.NET Core hat Microsoft bisher fehlende Funktionen zum Umlenken von HTTP-Anfragen (URL Rewriting) erg├Ąnzt. Entwickler k├Ânnen nun in der Startup-Klasse mit regul├Ąren Ausdr├╝cken, der XML-Syntax der Internet Information Services (IIS) oder der Mod_Rewrite-Syntax des Apache-Webservers Umlenkungen definieren. Auch eine Funktion zum Umlenken aller HTTP-Anfragen auf HTTPS ist realisiert.

Das fr├╝here ASP.NET hatte einen Output Cache, der gerenderte Webseiten f├╝r eine definierbare Zeit zwischengespeichert hat. In ASP.NET Core 1.1 f├╝llt diese in der Juli-Version noch bestehende L├╝cke das Paket Microsoft.AspNetCore.ResponseCaching in Verbindung mit dem Memory Cache (Microsoft.Extensions.Caching.Memory). Das Paket Microsoft.AspNetCore.ResponseCompression erm├Âglicht eine ZIP-Komprimierung der HTTP-Datenstr├Âme. Die Views, die in ASP.NET Core 1.0 immer zur Laufzeit kompiliert wurden, lassen sich nun zur Entwicklungszeit vorkompilieren.

Mehr Auswahl

ASP.NET-Core-Webanwendungen laufen immer in einem eigenst├Ąndigen Prozess. Als Prozess-Host bietet Microsoft daf├╝r in Version 1.1 neben Krestrel mit dem WebListener-Server eine Alternative an, die auf Basis des Windows-eigenen HTTP Server API auch Windows-spezifische Verfahren zur Authentifizierung, zum Port Sharing und Caching an Bord hat. Die Verwendung des Pakets Microsoft.AspNetCore.Server.WebListener zerst├Ârt jedoch die Plattformunabh├Ąngigkeit einer ASP.NET-Core-Anwendung.

Mit ASP.NET Core hat Microsoft View Components und Tag Helper zur Wiederverwendung von Markup und Logik eingef├╝hrt. In Version 1.1 gibt es nun eine Integration beider Konzepte. W├Ąhrend eine View Component bisher immer ├╝ber den Befehl Component.InvokeAsync(„viewcomponentname“) in eine View einzubinden war, erledigt den Job nun eleganter ein Tag Helper (<viewcomponentname>ÔÇŽ</viewcomponentname>).

Die Kernfunktionen von ASP.NET Core bilden Entwickler in der Startup-Klasse durch eine Aneinanderreihung von Middleware-Komponenten. Mit der Annotation [MiddlewareFilter]lassen sich nun auch Middleware-Komponenten auf einzelne Controller oder Actions beschr├Ąnken. Die neue Komponente Microsoft.AspNetCore.AzureAppServicesIntegrationspeichert alle von den Logger-Objekten erzeugten Nachrichten in Microsofts Cloud. Mit den Paketen Microsoft.AspNetCore.DataProtection.Redis, Microsoft.AspNetCore.DataProtection.AzureStorage und Microsoft.Extensions.Configuration.AzureKeyVault k├Ânnen Entwickler sensible Informationen wie kryptografische Schl├╝ssel in Redis oder Microsoft Azure nutzen. Im TempData-Objekt gespeicherte Daten lassen sich nun auch per Cookie auf dem Client speichern.

Entity Framework Core 1.1

Auch f├╝r den Objekt-Relationalen Mapper Entity Framework ist eine erweiterte Version 1.1 erschienen. Hier bringt Microsoft einige Programmierfunktionen aus dem Vorg├Ąnger Entity Framework 6.1 zur├╝ck, die in Entity Framework Core 1.0 fehlten. Dazu geh├Ârt die Suche nach Objekten im Cache mit Find(), das explizite Nachladen verbundener Objekte mit Load(), das erneute Laden bereits geladener Objekte mit Reload() sowie die einfache Abfrage des alter und neuer Objektinhalte mit GetDatabaseValues() und GetModifiedProperties().

Auch das Mapping auf einfache Fields anstelle von Properties und die Wiederaufnahme abgebrochener Datenbankverbindungen (Connection Resiliency) zum Microsoft SQL Server oder SQL Azure ist wieder m├Âglich. Ganz neu ist die M├Âglichkeit, Objekte auch auf die speicheroptimierten Tabellen von Microsoft SQL Server 2016 abzubilden. Au├čerdem haben die Macher die API vereinfacht, mit der sich Standardfunktionen von Entity Framework Core durch eigene Implementierungen ersetzen lassen.

Core-Werkzeuge bleiben unfertig

Auch mit der Version 1.1 der Core-Produkte bleiben alle Werkzeuge einschlie├člich der Visual Studio-Integration weiterhin im Preview-Stadium. Microsoft hatte angek├╝ndigt, von den JSON-basierten Konfigurationsdateien zu MSBuild zur├╝ckzukehren ÔÇô allerdings mit einem vereinfachtem XML-Format.

F├╝r das entsprechende Projektformat existiert nun eine erste Alpha-Version in Verbindung mit Visual Studio 2017, Visual Studio Code und dem neuen Visual Studio for Mac. Bestehende project.json-Dateien k├Ânnen Entwickler in .csproj-Dateien konvertieren, m├╝ssen jedoch bedenken, dass es keine Option zur R├╝ckkonvertierung gibt, falls sie sp├Ąter doch mit dem JSON-Format oder Visual Studio 2015 weiterarbeiten m├Âchten.

Schreibe einen Kommentar