Scott Hanselman 19.06.2017, 12:57 Uhr

Wie man eine .NET Core Bibliothek in WinForms referenziert

In einem aktuellen englischsprachigen Blogbeitrag erklärt Microsoft-Mitarbeiter Scott Hanselman anhand eines Beispiels, was hinter .NET Standard steckt.
Das Beispiel hat Hanselman aus einer Anfrage eines Entwicklers, der versuchte eine .NET Core Klasse (aus der Bibliothek NETCoreApp 1.1) in ein WinForms-Projekt (.NET-Version 4.6.2) aufzunehmen und keine Lösung dafür fand. Weil das Problem sicher häufiger auftreten wird, nahm sich Scott der Sache an und präsentiert die Lösung in seinem Blogbeitrag, nicht ohne nebenbei auch wichtige Hintergründe zu .NET Standard zu erläutern.

Bevor er an die Details seiner Lösung geht, klärt Hanselman erst einmal auf, was man unter .NET heute alles verstehen kann – von einer klassischen Windows-Anwendung über mobile Apps bis hin zur Nutzung mit Docker oder eben auch das schlanke, schnelle .NET Core, das Microsoft als Open Source Projekt pflegt und das außer auf Windows auch auf Mac OS und einem Dutzend unterschiedlicher Linux-Versionen läuft. Auch Xamarin/Mono/Unity wird häufig unter dem Oberbegriff .NET subsumiert.

Wer lernt in C# oder Visual Basic zu Programmieren, ist ein .NET-Programmierer und kann nach einiger Recherche Anwendungen für alle wichtigen Plattformen entwickeln: Windows, Mac, Linux, Xbox, Playstation, Raspberry Pi, Android, iOS und mehr.

Was aber ist .NET Standard? Es ist keine Runtime, sagt Hanselman, man kann es also nicht installieren. .NET Standard ist vielmehr ein Interface – eine versionierte Liste von APIs, die Entwickler aufrufen können. Mit jeder neuen Version von .NET Standard kommen neue APIs hinzu und zugleich fallen ältere Plattformen weg.

Diese Standards werden dann von den Runtime-Versionen für die unterschiedlichen Plattformen implementiert. Kommt ein neues Gerät, über das nur bekannt ist, dass es .NET Standard x.x unterstützt, kann man Code dafür schreiben und die im genannten Standard enthaltenen .NET-Bibliotheken dafür nutzen. Welche Plattformen die .NET-Standard-Versionen (1.0 bis 2.0) unterstützen listet diese Tabelle der Microsoft-Dokumentation.


Als Entwickler kann man sich direkt für eine Runtime-Version entscheiden oder man zielt auf eine der .NET-Standard-Versionen und erreicht damit Kompatibilität für mehrere Plattformen.

Wie Scott Hanselman die oben genannte Beispiellösung umsetzt können Sie in seinem reichlich bebilderten Blogbeitrag nachlesen.


Das könnte Sie auch interessieren