.NET Framework 4.7 (.NET 4.7)
Eintrag zuletzt aktualisiert am: 24.05.2022
Wieder
In-Place-Update für .NET 4.x
Enthalten im Windows 10 Creators Update (RS2) 6.4.2017
Für ältere OS erst etwas später am 2.5.2017 erschienen:
Wichtige neue Funktionen
- System.ValueTuple nun enthalten
- High DPI for Windows Forms (nur in Windows 10)
- WPF Touch/Stylus support in Windows 10
- Verbessertes Drucken bei WPF in Windows 10
- Click-Once-Verbesserungen: Unterstützt für Hardware Security Module (HSM)
- Azure SQL Database-Connections verwenden immer TCP
- Verbesserungen für Elliptic Curve Cryptography (ECC)
- SSL/TLS-Standard in WCF wählbar
- ASP.NET Cache austauschbar
Installation
Wie schon die Vorgängerversionen
.NET 4.5 bis 4.6.2 ist auch die Version 4.7 ein "
In-Place-Update", das vorherige Installationen von .NET 4.x überschreibt. Windows 10 bringt .NET 4.7 automatisch im "Creators Update" (alias
Redstone 2) mit. Für ältere Betriebssysteme gibt es ein manuell installierbares Update [
https://www.microsoft.com/en-US/download/details.aspx?id=55167, wobei Betriebssysteme vor
Windows 7 bzw.
Windows Server 2008 R2 nicht mehr unterstützt werden. Dass das .NET 4.7 installiert ist, erkennt an den Registry-Einträgen HKEY
LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Version und HKEY_LOCALMACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release (vgl. [
https://msdn.microsoft.com/en-us/library/hh925568(v=vs.110).aspx]). Laut Microsoft ist .NET 4.7 "hochkompatibel" [
https://www.microsoft.com/de-de/download/details.aspx?id=55167] zu den Vorgängerversionen. Unter der Überschrift "Retargeting Changes for Migration from
.NET Framework 4.6.2 to 4.7" [
https://docs.microsoft.com/de-de/dotnet/framework/migration-guide/retargeting/4.6.2-4.7]
gibt es dennoch eine
Liste von Änderungen, die verhindern können, dass ältere .NET-Anwendungen unter .NET 4.7 korrekt laufen.
Ein Problem in der Praxis könnte verwenden, dass .NET Framework 4.7 unter
Windows 7, Windows 2008 R2 und
Windows Server 2012 für
WPF-Anwendungen die vorherige Installation der
DirectX-
DLL D3D
Compiler_47.dll
erfordert (vgl. [
https://support.microsoft.com/de-de/help/4020302/the-net-framework-4-7-installation-is-blocked-on-windows-7-windows-ser]). Neuere Betriebssystem enthalten diese
DLL schon. Microsoft begründet in [
https://blogs.msdn.microsoft.com/dotnet/2017/05/02/announcing-the-net-framework-4-7-general-availability/] ausführlich, warum die
DLL nicht im .NET Framework 4.7-Setup enthalten ist.
Neuigkeiten in .NET 4.7
Die neue Version bringt neben der im Haupttext erwähnten Klasse System.ValueTuple einige Verbesserungen für
ASP.NET,
ADO.NET,
Windows Communication Foundation (
WCF),
Windows Presentation Foundation (
WPF), und sogar
Windows Forms. In
ASP.NET lässt sich der eingebaute Hauptspeicher-Cache durch eigene Implementierungen ersetzen. Für
Datenbankverbindungen zu
SQL Azure verwendet .NET 4.7 jetzt automatisch
TCP. In früheren Versionen hat der
Datenbankprovider auch Protokolle wie Shared Memory und Named
Pipes beim Verbindungsaufbau versucht, die in der Cloud-Variante des
Microsoft SQL Servers nicht verfügbar sind. In
WCF kann der Entwickler
TLS 1.1 und 1.2 statt
SSL 3.0 zum Standard für die Verschlüsselung machen. Zudem hat Microsoft die Zuverlässigkeit der
Objektserialisierung verbessert.
Für Desktop-Anwendungen mit
WPF verwendet Microsoft beim Drucken unter Windows 10 nun das neue Print Document Package
API statt des alten
XPS Print
API. Der seit langen auf dem Abstellgleis stehenden Oberflächentechnik
Windows Forms spendiert Microsoft erhebliche Verbesserungen der Darstellung auf Windows 10-High-DPI-Geräten, da auch heute noch viele .NET-Anwendungen
Windows Forms einsetzen. Der Entwickler kann in drei neue Ereignisse Control.DpiChangedAfterParent(), Control.DpiChangedBeforeParent(), Form.DpiChanged() auf Änderungen der DPI-Anzahl reagieren und dabei Hilfsroutinen wie Control.LogicalToDeviceUnits(), Control.ScaleBitmapLogicalToDevice() und Control.DeviceDpi() verwenden.
Für das
Click-Once-Deployment von .NET-Desktop-Anwendungen kann der Entwickler die
Manifeste nun auch mit einem
Hardware Security Module (
HSM) signieren.