Logo von Developer

Suche
Abonnieren

Tägliche Top-News bei WhatsApp, Facebook Messenger, Telegram & Insta

preisvergleich_weiss

Recherche in 1.699.191 Produkten

Holger Schwichtenberg 7

.NET Core 2.1: Microsoft kündigt neue Funktionen an

.NET Core 2.1: Microsoft kündigt neue Funktionen an

Die Entwicklungsteams von .NET Core, ASP.NET Core und Entity Framework Core haben für die kommende Version 2.1 zahlreiche Verbesserungen angekündigt. Insbesondere im OR-Mapper schließt Microsoft einige der gravierenden Lücken.

Mit drei gleichzeitig erschienenen Blogeinträgen (zu .NET Core 2.1, ASP.NET Core 2.1 und Entity Framework Core 2.1) sowie einem Video auf Channel 9 kündigt Microsoft nun konkrete Roadmaps für die Versionen 2.1 seiner Core-Produkte an, die aktuell auf GitHub entwickelt werden. Ursprünglich sollten sie noch im ersten Quartal 2018 erscheinen. Nun sieht der revidierte Zeitplan vor, dass es im Februar eine erste Vorschauversion gibt, im März eine zweite, danach im April ein erster Release Candidate und die "RTM"-Version im Sommer 2018 erreicht werden soll. Gemäß dem Prinzip des SemanticVersioning wird es keine Breaking Changes gegenüber Version 2.0 geben.

Anzeige

Am deutlichsten profitiert Entity Framework Core. Gruppierungen werden in Version 2.1 nun tatsächlich zur Datenbank gesendet und nicht mehr im RAM ausgeführt, was bisher eine gravierende Lücke in Microsofts OR-Mapper war. Auch das von vielen 2-Tier-Anwendungsentwicklern vermisste Lazy Loading (automatisches Nachladen verbundener Datensätze), das es im Vorgänger ADO.NET Entity Framework gab, soll in Version 2.1 zumindest rudimentär durch APIs unterstützt werden. Den gleichen Automatismus wie im Vorgänger wird es dann aber erst in einer späteren Version geben.

Unterstützung für Lazy Loading durch Ergänzungen in den Navigationseigenschaften einer Entitätsklasse in Entity Framework Core 2.1
Unterstützung für Lazy Loading durch Ergänzungen in den Navigationseigenschaften einer Entitätsklasse in Entity Framework Core 2.1

Auch mit den neuen "Query Types" beseitigt Microsoft einige Einschränkungen. Bisher war es nur umständlich möglich, Datenbank-Views, Tabellen ohne Primärschlüssel und Ergebnisse von SQL-Befehlen, Stored Procedures und Table Value Functions zu mappen, deren Aufbau nicht einem Entitätstyp entsprachen. Zukünftig können Entwickler diese Ergebnismengen auch auf Nicht-Entitätstypen abbilden, die keine Primärschlüsseleigenschaft haben können. Die neuen Value Converters erlauben Wertkonvertierung beim Materialisieren und Speichern von Objekten. Auch die bisher fehlende Unterstützung für "ambiente Transactions" mit System.Transactions.TransactionScope baut Microsoft nun in Entity Framework Core ein.

Bei den Datenbank-Providern arbeitet Microsoft sowohl an einem für Oracle-Datenbanken als auch für Azure Cosmos. Der Oracle-Treiber soll allerdings nur Beispielstatus erhalten, als Hilfsarbeit für den von Oracle selbst zu entwickelnden Treiber. Oracle hat bisher für die Veröffentlichung eines offiziellen Treibers noch kein Datum genannt ("ODP.NET support for Microsoft Entity Framework Core and Microsoft ASP.NET Core is not expected in the first release").

Mit ASP.NET Core 2.0 hatte Microsoft als neues Entwicklungsmodell die "Razor Pages" eingeführt als Konkurrenz zu dem bisherigen Model-View-Controller-Vorgehen. Durch die Werkzeuge und die Dokumentation wurde klar, dass Microsoft dieses neue Modell favorisiert. In ASP.NET Core 2.1 beziehen sich daher die meisten neuen Features auf die Razor Pages. Diese sollen sich nun zur Wiederverwendung in mehreren Projekten in DLLs verpacken lassen. Dafür lassen sich die Razor Pages, die bisher zur Laufzeit übersetzt wurden, nun auch zur Entwicklungszeit übersetzen. Als erstes UI-Paket will Microsoft Funktionen zur Authentifizierung und Benutzerverwaltung anbieten, um diese Funktionen leichter in beliebige ASP.NET-Core-Webanwendungen zu integrieren.

Mit "Areas" können Entwickler innerhalb eines Projekts die Seiten organisatorisch trennen. Jede Area kann ihr eigenes "/Shared"-Verzeichnis besitzen. Microsoft vereinfacht die Datenbindung in Razor Pages, indem die Annotation [BindPropertyAttribute] zentral auf eine Klasse anwendbar ist. Mit der Schnittstelle IPageFilter können Entwickler Logik vor und nach dem Razor Page Handler ausführen. Aber auch für MVC-basierte Seiten gibt es Verbesserungen durch einen neuen Tag Helper zur Einbindung von Seitenfragmenten sowie die neue Hilfsklasse WebApplicationTestFixture zum Schreiben von Unit-Tests.

Für ASP.NET Core basierte Web-APIs bietet Microsoft mit der Annotation [ApiController] mehr Automatismen bezüglich Parameterbindung und Validierung. Die neue Klasse ActionResult<T> verbessert die Generierung von Swagger-OpenAPI-Dokumentationen, sodass Swagger-Annotationen in vielen Situationen nicht mehr notwendig sind. Zudem unterstützt Microsoft nun die Übermittlung von Problemdetails nach RFC 7808. Auch die Portierung von WebHooks und SignalR-Frameworks für Push-Nachrichten vom Webserver zum Client will Microsoft zur Version 2.1 von ASP.NET Core fertigstellen.

Anzeige

Mit der neuen HttpClientFactory vereinfacht Microsoft die Behandlung von Time-outs, erneuten Versuchen und Caching. In ASP.NET Core 1.0 hatte sich Microsoft entschieden, den Programmcode nicht mehr wie bisher in ASP.NET im Prozess des Webservers Internet Information Services (IIS), sondern als getrennten Prozess ("Kestrel") auszuführen. Diese Entscheidung revidiert Microsoft in Version 2.1 und steigert damit den Durchsatz nach eigenen Aussagen um das Sechsfache.

Die Projektvorlagen von ASP.NET werden in Zukunft den Standard HTTPS verwenden. Ebenso werden die Projektvorlagen gemäß den EU-Richtlinien zur General Data Protection Regulation (GDPR) den Benutzer nach seiner Zustimmung zur Verwendung von Cookies fragen.

Für die .NET-Core-Laufzeitumgebung verspricht Microsoft eine schnellere Übersetzung von Programmcode mit dem .NET Core SDK. Auch bei der HTTP-Implementierung in der Klasse HttpClient hat Microsoft optimiert. Mit dem neuen generischen Typ Span<T> können Entwickler zukünftig Ausschnitte aus einem Array schneller lesen und bearbeiten. .NET Core 2.1 wird die Portierung einiger Kryptografie-Klassen aus dem klassischen .NET Framework für die digitale Signierung von NuGet-Paketen erhalten.

Beim Kommandozeilenwerkzeug dotnet hat Microsoft bei Node.js und npm abgeschaut. Global installierte Werkzeuge (dotnet tool install -g werkzeugname) können Entwickler dann zukünftig nicht nur über dotnet werkzeugname, sondern auch über werkzeugname direkt aufrufen. Auch das bereits seit September 2017 als Vorschau-Version verfügbare Windows Compatibility Pack for.NET Core, das viele Klassen aus dem alten .NET Framework in die .NET-Core-Welt portiert, soll im Sommer 2018 fertig sein. (Holger Schwichtenberg) / (ane)

7 Kommentare

Anzeige
  1. Build 2017: Microsoft stellt Version 2.0 der .NET-Core-Produkte vor

    Build 2017: Microsoft stellt Version 2.0 der .NET-Core-Produkte vor

    Parallel zu den Preview-Versionen von .NET Core 2.0, ASP.NET Core 2.0 und Entity Framework Core 2.0 gibt es Patches für die 1er-Serie der Core-Produkte.

  2. .NET Core 2.0 und die zugehörige Produktfamilie sind fertig

    .NET Core 2.0 und die zugehörige Produktfamilie sind fertig

    Microsoft hat die zweite Hauptversion seiner Core-Produktfamilie mit .NET Core, ASP.NET Core und Entity Framework Core bereitgestellt. Parallel ist das dritte Update zu Visual Studio erschienen, das die Core-2.0-Produkte unterstützt.

  3. .NET Standard 2.0 ist fertig und .NET Core 2.0 auf der Zielgeraden

    .NET Standard 2.0 ist fertig und .NET Core 2.0 auf der Zielgeraden

    Microsoft hat die Arbeiten an Version 2.0 der Standardisierung der .NET-Programmierschnittstelle abgeschlossen. Die Freigabe von .NET Core 2.0 ist im Rahmen der .NET Conf im September geplant. Und auch für den Nachfolger gibt es bereits Pläne.

  4. Kommentar: .NET Core 2.0 kann zwar mehr, aber es gibt immer noch gravierende Lücken

    Kommentar: .NET Core 2.0 kann zwar mehr, aber es gibt immer noch gravierende Lücken

    Bei der zweiten Hauptversion der Core-Produktfamilie fehlen wichtige Features, die Microsoft selbst teilweise hoch priorisiert hatte, meint Dotnet-Doktor Holger Schwichtenberg und schickt einen Appell an die Entwickler.

  1. Entity Framework Core Reverse Engineering mit dem Kommandozeilentool dotnet

    Manuelle Ergänzung der .csproj-Datei

    Statt PowerShell-Commandlets lässt sich bei der Entwicklung von .NET-Core-Projekten auch das plattformübergreifend verfügbare Kommandozeilenwerkzeug dotnet aus dem .NET Core SDK einsetzen.

  2. Zielgerade für .NET Core: Release Candidate 2 veröffentlicht

    Die RC2-Versionen von .NET Core 1.0, ASP.NET Core 1.0 und Entity Framework Core 1.0 sind verfügbar.

  3. Roadmap für Entity Framework Core 2.1

    Zwei Wochen nach dem Erscheinen von Entity Framework Core 2.0 mit doch eher enttäuschenden Neuerungen hat Microsoft nun eine Roadmap für die Version 2.1 veröffentlicht und dabei versprochen, zumindest einige der zuvor als "kritisch" und "High Priority" eingestuften Funktionen endlich zu realisieren.

  1. Forscher: Autoverkehr für Kommunen dreimal so teuer wie Bus und Bahn

    Forscher: Autoverkehr für Kommunen dreimal so teuer wie Bus und Bahn

    Der Kasseler Verkehrswissenschaftler Carsten Sommer hat errechnet, dass der Autoverkehr in deutschen Großstädten dreimal so viel öffentliche Gelder verschlingt wie kommunale Verkehrssysteme.

  2. Piraten-Sicherheitskonferenz: "Das Internet steht am Scheideweg"

    Internet

    Abseits der Münchner Sicherheitskonferenz luden europäische Piratenparteien zur alternativen Sicherheitskonferenz, um die Widerstandsfähigkeit von technischen und politischen Systemen zu diskutieren.

  3. Orange und Vodafone behandeln ihre Kunden in Afrika schlechter als in Europa

    Orange und Vodafone behandeln ihre Kunden in Afrika schlechter als in Europa

    Orange und Vodafone bieten sowohl in Europa als auch in Afrika Dienste an. Internet Without Borders hat die Angebote verglichen. Das Ergebnis: Afrikanische Kunden müssen mit vielen Nachteilen leben.

  4. SpaceX startet die ersten beiden Test-Satelliten für Starlink

    SpaceX startet So. die ersten beiden Test-Satelliten für Starlink

    Unter dem Namen Starlink will SpaceX ein aus 12.000 Satelliten bestehendes Netzwerk im niedrigen Erdorbit aufbauen. Zwei Test-Satelliten für das System starten am morgigen Sonntag an Bord einer Falcon-9-Rakete.

Anzeige