Karl Gorman
06
September
2021
.net 6 preview

Was ist neu in der .NET 6 Preview 6? Alles, was Sie wissen sollten

Am 14. Juli 2021 kündigte Microsoft den Release von .NET 6 Preview 6 an und erreichte damit einen weiteren Schritt, der die Arbeit von Entwicklern und Entwicklungsunternehmen erleichtert und sie mit besseren Funktionen ausstattet. Es wurde auch angekündigt, dass die nächste Version, d.h. Preview 7, viel größer sein wird als Preview 6.

Das heißt jedoch nicht, dass wir einfach ignorieren können, was in dieser Version hinzugefügt und verbessert wurde. Nach der Veröffentlichung von Preview 7 hat Microsoft zwei .NET 6 Release Candidates geplant, auf die dann die endgültige GA-Version folgt. Sie können also einige Änderungen in der Art und Weise erwarten, wie Sie mit .NET 6 arbeiten.

Bis dahin sollten wir uns die Änderungen in .NET 6 Preview 6 ansehen um sie besser verstehen zu können.

.NET 6.0 – was gibt’s Neues?

Die kontinuierliche Entwicklung entsprechend der Dynamik der Technologiebranche und ihrer Anwendungen ist für jede Technologie überlebenswichtig. Wir erleben dies bei Microsoft .NET, und es ist großartig, wie der Tech-Gigant auf die sich ändernden Entwicklungsanforderungen eingeht.

Zuvor hatten wir die Änderungen in Microsoft .NET 6 Preview 1 veröffentlicht. Hier eine Zusammenfassung der damals vorgenommenen Änderungen:

  • Ein .NET-Entwickler kann jetzt eine einzige App-Ansicht für verschiedene Plattformen erhalten. Die Unterstützung für diese Funktionalität wurde für macOS-, Android- und iOS-Entwicklung hinzugefügt.
  • Die Blazor-Technologie wurde mit Web– und nativer UI kombiniert, wodurch der .NET-Programmierkreis erweitert wurde.
  • Es gab Verbesserungen bei der ARM 64-Unterstützung.
promo image3
Auf der Suche nach einer neuen Herausforderung?

Interessante Projekte

Zuverlässige Arbeitgeber

Faire Vergütung

Zusätzlich zu den Verbesserungen in .NET 6 Preview 1 haben die anderen 4 Preview-Releases der .NET 6-Entwicklungsumgebung eine ganze Reihe weiterer Funktionen hinzugefügt. Diese sind:

  • Verbesserungen beim Hot-Reload, die das Bearbeiten des Quellcodes und das Starten von Updates ermöglichen, ohne dass die Anwendung angehalten werden muss.
  • Erweiterungen der API durch LINQ-Erweiterungen.
  • Verbesserungen des RyuJIT-Compilers.
  • Hinzufügen einer neuen unsicheren API (CollectionsMarshal.GetValueRef) zur Beschleunigung der Aktualisierungen in Strukturwerten.
  • API- und Bibliotheksverbesserungen wurden in Vorschau 2 eingeführt.
  • Verbesserungen in der Leistung der inneren Schleife.
  • Verbesserungen bei der Codegenerierung innerhalb von RyuJIT, wodurch der gesamte Prozess effizienter und schneller wird.
  • Die Leistung des Interface-Castings wurde um 22% gesteigert (von 16% auf 38%).

Hot Reload funktioniert jetzt mit verschiedenen Arten von Anwendungen, einschließlich Windows Forms, WinUI, ASP.NET, Console Apps usw.

All diese Verbesserungen bilden die Grundlage für die Veröffentlichung von .NET 6 Preview 6. Wir wollen die neuen Änderungen und Verbesserungen in .NET 6 Preview 6 verstehen, die zu einer positiven Veränderung der .NET-Entwicklungsumgebung führen.

Was ist neu in der .NET 6 Preview 6?

Die Preview 6 enthält Änderungen bei einigen spezifischen Komponenten von .NET 6 und bei den allgemeinen Elementen. Hier sind die Ergänzungen und Verbesserungen bei ASP.NET Core, EF Core und .NET MAUI.

Update der X64-Emulation

Nach der Freischaltung des Supports für Apple Silicon (macOS) und Arm64 (Windows) kommt die Preview 6 Version mit dem zusätzlichen Support für X64-Simulation für beide Betriebssysteme. Damit dies funktioniert, brauchen die Entwickler Side-by-Side Installers und First-Class-Architektur-Targeting mit .NET CLI.

Die Side-by-Side Installers werden jedoch erst in .NET 6 verfügbar sein. Bis dahin müssen Entwickler also mit X64 Builds oder Arm64 arbeiten.

Verbesserungen am optionalen Workload-Segment des .NET SDK

Microsoft hat drei neue Workload-Befehle hinzugefügt, die die Erkennung und Verwaltung in der .NET 6-Entwicklungsumgebung verbessern werden. Diese sind:

Dotnet-Workload-Suche:  Dieser Befehl listet alle Workloads auf, die für Installation verfügbar sind.

Dotnet-Workload-Deinstallation: Mit diesem Befehl können die Entwickler einen bestimmten Workload aus der Umgebung entfernen oder deinstallieren, wenn er nicht benötigt wird. Der Zweck ist, Entwicklern zu helfen, etwas Platz zu sparen.

Dotnet-Workload-Reparatur: Wenn ein zuvor installierter Workload wieder benötigt wird, falls er entfernt wurde, kann dieser Befehl helfen, ihn schnell wieder zu installieren.

Diese Befehle sollen zusammen mit den drei anderen, früher veröffentlichten Dotnet-Workload-Befehlen betrachtet werden. Diese sind:

Dotnet-Workload-Installation

Dotnet-Workload-Liste

Dotnet-Workload-Update

Die dotnet-Workload-Befehle haben zwei Funktionen. Sie helfen bei der Erstellung von Anforderungen für die Arbeit mit .NET-Projekten, was die Implementierung der Arbeitsweise erleichtert. Außerdem helfen diese Befehle bei der Ausführung der .NET-Anwendungen, indem sie den Entwicklern die Möglichkeit geben, einen Pfad für diese Anwendungen anzugeben.

Crossgen 2 Tool ersetzt Crossgen

Das Crossgen 2-Tool wurde der Preview 6 hinzugefügt und ersetzt das bestehende Crossgen-Tool. Das bedeutet, dass Microsoft Crossgen aus der Entwicklungsumgebung entfernt hat.

Der Zweck dieses Tools ist die Vorkompilierung von IL (Intermediate Language) in den nativen Code, wodurch die Veröffentlichung verbessert wird. Mit crossgen 2, das zu .NET 6 Preview 6 hinzugefügt wurde, erhalten die Entwickler Zugang zu einer überlegenen Plattform für die Codegenerierung.

Verbesserte Sync-over-Async-Leistung

Sync-over-async ist ein Antipattern, das für blockierendes Warten auf die async-Methode verwendet wird. Das bedeutet, dass Sie asynchron auf die Ergebnisse warten müssen. Warten bedeutet, dass Threads verschwendet werden, was dazu führt, dass nicht reagiert wird.

Die früheren Updates der .NET 6-Programmierschnittstelle beinhalteten sync-over-async blocking work. Aber mit der neuen Preview 6 wurde diese Funktion weiter verbessert, indem die Rate der Thread-Injektion erhöht wurde.

Die langsamere Thread-Injektion führte zu Verzögerungen bei anderen Aspekten der Arbeit in der Warteschlange. In Vorschau 6 ist Sync-over-Async die einzige Art von blockierenden Arbeitsvorgängen innerhalb der Worker-Threads des Thread-Pools.

TLS-Unterstützung hinzugefügt

In .NET 6 Preview 6 finden Entwickler TLS (Transport Layer Security) für System.DirectoryServices.Protocols. Vor der Preview 6 wurde dies nur für Windows hinzugefügt, aber diese neue Version bietet nun auch Unterstützung für Linux und macOS.

Mit der TLS-Unterstützung für macOS- und Linux-Systeme können die .NET-Entwickler eine sichere Kommunikationsverbindung mit den LDAP-Servern herstellen.

Änderungen bei CodeGen

Microsoft hat eine Reihe von Änderungen am CodeGen Changelog vorgenommen. Diese sind in Form von Dynamic PGO und LSRA implementiert. Gehen wir sie durch.

Dynamisches PGO: Hier kann ein .NET-Entwickler eine Option zur zufälligen Auswahl einer Guarded Devirt-Klasse hinzufügen.

LSRA: Es gibt das Refactoring der LSRA-Heuristikauswahl. Damit erhalten die Entwickler einen neuen Modus in DEBUG. COMPlus ist der neue Modus, der es den Entwicklern ermöglicht, die Reihenfolge der Heuristiken über LsraOrdering festzulegen.

Außerdem können die Heuristiken für die Registrierung auf einen ausgewählten optimalen Registerkandidaten abgestimmt werden.

Dies waren einige der allgemeinen Änderungen und Verbesserungen in der .NET-Entwicklung nach der Veröffentlichung von Preview 6. Nun zu einigen anderen Änderungen und Verbesserungen, die mit einer bestimmten Technologie oder Komponente verbunden sind.

Andere neue Funktionen der .NET 6.0 Preview

Wie bereits erwähnt, bietet .NET 6 Preview 6 zusätzliche Funktionen für ASP.NET Core, EF Core und .NET MAUI. Hier sind einige der wichtigsten Verbesserungen;

ASP.NET Core

Blazor Accessibility: Hier wurden eine Reihe von Änderungen implementiert, darunter das Hinzufügen von „role=alert„-Attributen. Diese Attribute verweisen auf Meldungen und sollen während der Seitennavigation angekündigt werden

Die Counter-Komponente wurde zu „role=status“ hinzugefügt, um eine genaue, aktuelle Zählung zu ermöglichen und diese zu aktualisieren. Außerdem wurde der NavBar-Schaltfläche title hinzugefügt, um den Zweck deutlich zu machen.

Die Übertragung von Byte-Arrays in JavaScript-Interop wurde verbessert: Mit .NET 6 Preview 6 hat Blazor eine bessere und effizientere Unterstützung für Byte-Arrays erhalten, insbesondere bei der Durchführung von JavaScript Interop. Das neue Array ist besser in Bezug auf die Transparenz, besonders wenn es ein Unit8Array von JS nach .NET übergibt.

Optionale Parameter:

Die View Component Tag-Helfer haben Unterstützung für optionale Parameter. Dadurch entfällt die Notwendigkeit, explizit einen Wert für den Parameter anzugeben, den Sie in Form eines Tag-Helper-Attributs hinzufügen möchten.

Hier ist ein Beispiel, wie es implementiert werden kann. Angenommen, die View Component ist wie folgt geschrieben:

my view component
Entity Framework (EF) Core

In diesem Fall kann der .NET-Entwickler dasselbe in Form eines Tag-Helpers aufrufen, während er einen Wert für den Parameter showSomething angibt.

vc my

Mit der neuen .NET 6 Preview 6 Release sehen die Entwickler, wie sich die Lücke zwischen EF Core und EF6 schließt. Einige der Ergänzungen, die dies ermöglichen, sind;

  • Aktive Unterstützung für 64-Bit-Identitäts-Seed-Werte wird bereitgestellt
  • Preview 6 bietet Unterstützung für die neuen BCL DateOnly– und TimeOnly-Strukturen für SQLite.
  • Konfiguration des Modells vor der Konvention: Dies ist ein wichtiges Update, da früher einige Probleme gemeldet wurden, wenn .NET-Entwickler versuchten, einen Entitätstyp auszuschließen und eine Revert-Funktion zu initiieren, um dasselbe zu tun.

In der neuen Version wurde die Modellerstellung verbessert, was zu einer effizienten Erkennung von Entitätstypen führt.

.NET MAUI

MAUI steht für Multi-Platform App UI, und .NET 6 Preview 6 hat mehrere neue Funktionen im Hinblick auf die UI-Entwicklung hinzugefügt. Dazu gehören neue Gesten, modale Seiten, nativ-ähnliche Warnungen, flexible Layouts, View Clipping und vieles mehr.

Workload-Installation: Innerhalb der .NET-Entwicklungsumgebung wurden SDK-Workloads eingeführt, die speziell auf ein Entwicklerszenario zugeschnitten sind und über das bereits auf dem System installierte .NET-SDK laufen. Diese Ergänzungen sind Teil der .NET-Vereinheitlichung, und zu den hinzugefügten Workloads gehören maui, maui-mobile und maui-desktop.

Fazit

Auch wenn Microsoft behauptet, dass es sich bei .NET 6 Preview 6 um eine relativ kleine Version handelt, können wir sehen, dass es eine Menge innovativer Ergänzungen gibt. Es ist klar, dass Microsoft die .NET-Entwicklungsumgebung kontinuierlich überwacht und die Probleme der .NET-Entwickler im Auge behält. Infolgedessen können wir mehrere Verbesserungen und Ergänzungen als Reaktion auf die Bedenken und entwicklungsbezogenen Probleme sehen.

Wenn Sie ein Projekt auf der Grundlage von Microsoft .NET entwickeln möchten, sollten Sie Chudovo als Partner für Ihr Projekt wählen. Die Erfahrung und die geschulten Entwickler von Chudovo gewährleisten einwandfreie Methoden zur Erstellung von Lösungen und integrieren die neuesten Entwicklungsfunktionen.

Teilen Sie uns Ihre Anforderungen mit, und wir melden uns bei Ihnen.