.NET Framework 4.7.1 bringt zahlreiche Neuerungen

Das .NET Framework 4.7.1 ist nicht nur Bestandteil des "Fall Creators Update" von Windows 10, sondern lässt sich auch als getrenntes Setup auf älteren Versionen installieren. Trotz des kleinen Versionsschritts enthält es einige interessante Updates.

In Pocket speichern vorlesen Druckansicht 41 Kommentare lesen
.NET Framework 4.7.1 bringt zahlreiche Neuerungen
Lesezeit: 4 Min.
Von
  • Dr. Holger Schwichtenberg
Inhaltsverzeichnis

Das frisch erschienene "Fall Creators Update" von Windows 10 enthält eine aktualisierte Version des klassischen .NET Framework mit zahlreichen kleinen Neuerungen. Die neue Version lässt sich auch als getrenntes Setup auf älteren Windows-Versionen ab Windows 7 und Server 2008 R2 installieren. Wer das "Fall Creators Update" von Windows 10 nicht installieren will, kann dieses separate .NET Framework 4.7.1-Setup installieren, sofern mindestens das "Anniversary Update" oder "Creators Update" vorhanden ist.

Die 67 MByte große Installation des .NET Framework 4.7.1 ist wie die Vorgänger ein "In-Place-Update". Es ersetzt also auf dem System vorhandene Installationen von .NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2 und 4.7. Um es zu verwenden, benötigen Entwickler Visual Studio 2017 in der Version 15.5, die seit dem 11.10. Preview-Status hat.

Das .NET Framework ist bereits seit Version 4.6.1 kompatibel zu dem am 10. August veröffentlichten .NET Standard 2.0. Allerdings führt bisher eine Referenz aus einem .NET Framework-Projekt auf eine der darin enthaltenen Bibliotheken zu vielen zusätzlichen Dateien im /bin-Verzeichnis, die Entwickler mit ihrer Software ausliefern müssen. Die Dateien enthalten sogenannte Type Forwards, da .NET Standard 2.0 eine andere Zusammenstellung der Klassen in Assemblies (DLLs) definiert, als sie im alten .NET Framework vorliegt. Das neue .NET Framework 4.7.1 kennt diese neue Zusammenstellung und enthält intern die Type Forwards, sodass die vielen Zusatzdateien nicht mehr erforderlich sind.

Die Klasse System.ValueTuple, die die Grundlage für die in C# 7.0 und Visual Basic 15 eingeführten Tuple-Typen ist, ist nun serialisierbar, was den Umstieg von der alten Klasse System.Tuple erleichtert. .NET Framework 4.7.1 unterstützt bereits die Read Only References, die Microsoft mit C# Version 7.2 einführen will (public void Method1(ref readonly int param1) { … }). Neben dem Windows-PDB-Format unterstützt .NET Framework 4.7.1 nun auch die Portable PDBs, die bei dynamischer Code-Generierung in C# Scripting zum Einsatz kommen. Mit dem Aufruf RuntimeFeature.IsSupported("featurename") können Entwickler nun feststellen, ob die Laufzeitumgebung ein bestimmtes Feature unterstützt.

Außerdem enthält die Laufzeitumgebung von .NET Framework 4.7.1 Optimierungen für die Speicherverwaltung per Garbage Collector. Die kürzlich von Microsoft angekündigten Verbesserungen des Just-in-Time-Compilers sind aber noch nicht enthalten.

Microsoft spendiert auch seinen Desktop-GUI-Frameworks Windows Presentation Foundation (WPF) und älteren Windows Forms kleinere Verbesserungen für Menschen mit Behinderungen. Bei aktiviertem hohen Kontrast im Betriebssystem bieten einige Steuerelemente in WPF und Windows Forms nun eine bessere Darstellung. Screen Reader können einige Steuerelemente wie MonthCalendar, CheckedListBox, DataGridViewCell und ToolStripMenuItem in Windows Forms bzw. Expander, DataGridCell, ComboBox und PasswordBoxes in WPF nun besser vorlesen. Eine WPF-Anwendung kann einen ScreenReader nun über eine sogenannte Live Region informieren, wenn es Änderungen in einem Bildschirmbereich gab, die nicht den Fokus hat und von Screen Readern daher oft ignoriert wird.

Microsoft unterstützt mit .NET Framework 4.7.1 nun SHA-2 in den Varianten SHA256, SHA384 und SHA512 sowohl beim Ablegen von Kennwörtern in ASP.NET-Konfigurationsdateien als auch beim Hashing von Nachrichten in Microsoft Message Queuing (MSMQ), beispielsweise in message.HashAlgorithm = HashAlgorithm.Sha256.

ASP.NET-Entwickler bekommen nun eine Möglichkeit, die 23 einzelnen Verarbeitungsschritte des Webframeworks durch ein zentrales Ereignis abzufangen und so jeweils Programmcode vor oder nach dem Ereignis auszuführen. Zudem können Entwickler nun Cookie-Objekte aus Zeichenketten erzeugen:

HttpCookie meinCookie;
var IsValid = HttpCookie.TryParse("CookieName:MeinCookie; path=/", out meinCookie);

Weitere Verbesserungen im Bereich Konfigurationsdateien, WPF Data Templates und den WPF-Diagnosefeatures listet ein Blogeintrag (rme)