Microsoft veröffentlicht Windows Compatibility Pack für .NET Core

Das neue Paket ergänzt zahlreiche Klassen, die es bisher nicht für .NET Core gab. Trotz des Namens läuft die neue Bibliothek nicht nur auf Windows, sondern in Teilen auch auf Linux und MacOS.

In Pocket speichern vorlesen Druckansicht 18 Kommentare lesen
Microsoft veröffentlicht Windows Compatibility Pack für .NET Core
Lesezeit: 3 Min.
Von
  • Dr. Holger Schwichtenberg
Inhaltsverzeichnis

Microsoft hat wie auf der .NET Conf im September angekündigt nun eine erste Vorschauversion des "Windows Compatibility Pack for .NET Core" veröffentlicht. Dabei handelt es sich um ein Nuget-Metapaket mit dem Namen "Microsoft.Windows.Compatibility", das zahlreiche Einzelpakete umfasst. Entwickler können wahlweise die benötigten Einzelpakete oder das Metapaket referenzieren, wobei im letzteren Fall die Deployment-Werkzeuge von .NET Core und Visual Studio dafür sorgen, dass nur die tatsächlich verwendeten Einzelpakete verbreitet werden. Das neue Paket lässt sich in .NET Core 2.0- und .NET Standard 2.0-Projekten referenzieren.

Einbinden des Windows Compatibility Pack for .NET Core via Nuget

Das Windows Compatibility Pack for .NET Core umfasst zahlreiche Klassen aus dem klassischen .NET Framework, die es dort zum Teil schon seit Version 1.0 gibt, die aber bisher nicht im .NET Standard 2.0 und damit auch nicht in .NET Core enthalten sind. Das hat bisher die Migration klassischen .NET-Framework-Codes auf das neue .NET Core verhindert beziehungsweise erschwert.

Zu den nun neu angebotenen Funktionen gehört der Zugriff auf die Windows-Registry, das Code Document Object Model (CodeDOM), das Komprimieren von Dateien, das Lesen und Verändern von Dateiberechtigungen, die Bereitstellung von Webservices mit der Windows Communication Foundation (WCF) und die direkte Datenbankprogrammierung mit den Klassen DataSet und DataReader gegen einen Microsoft SQL Server.

Microsoft plant weitere Klassen in das Bibliothekpaket aufzunehmen, darunter ODBC-Datenbankzugriffe, Grafikbearbeitung und Caching sowie die Windows Management Instrumentation (WMI) für den Zugriff auf Systeminformationen. Laut einem Blogeintrag von Microsoft umfasst das Windows Compatibility Pack 20.000 Funktionen. Die Zahl bezieht sich aber wohl auf die Endausbaustufe und nicht auf die aktuelle Preview-Version.

Verfügbarkeit der Klassen im "Windows Compatibility Pack for .NET Core"

Anders als der Name "Windows Compatibility Pack" suggeriert, sind einige der Teilbibliotheken nicht nur auf Windows, sondern auch auf den anderen von .NET Core unterstützten Plattformen Linux und MacOS verfügbar. Einige Funktionen wie der Windows Registry-Zugriff wären dort jedoch kaum sinnvoll.

Wenn Entwickler Teile des Windows Compatibility Pack verwenden, die nur für Windows implementiert sind, verlieren sie die Plattformunabhängigkeit. Die Anwendung lässt sich dann zwar noch auf MacOS oder Linux starten, es kommt aber beim Zugriff auf die betreffenden APIs zum Laufzeitfehlertyp PlatformNotSupportedException. Entwickler können mit der Bedingung if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { … } die Zugriffe auf diese APIs nur dann durchführen, wenn die Anwendung unter Windows läuft.

Das neue Windows Compatibility Pack vereinfacht insbesondere den Umstieg vom klassischen .NET Framework auf .NET Core für Entwickler, die zumindest vorerst weiterhin ihre Anwendung nur für Windows anbieten wollen. Der Einsatz des Windows Compatibility Pack kann auch ein erster Schritt in Hinblick auf den Betrieb auf Linux und Mac sein. Entwickler können auf diesen Betriebssystemen zunächst einen Teil der Funktionen ausblenden und dann schrittweise andere Implementierungen dafür umsetzen. (rme)