Robin Sedlaczek Fairmas GmbH

.NET Standard ist Microsofts jüngster Versuch, API-Konvergenz zu erreichen. Dazu definiert .NET Standard die APIs, die von allen .NET-Plattformen zur Verfügung gestellt werden müssen.

Im zweiten Teil dieser Artikelserie wurde gezeigt, wie Microsoft mit dem Neustart des .NET Frameworks, namentlich .NET Core, die Probleme der Vergangenheit aus dem Weg räumen will. .NET Core bringt dabei Modularität, Leichtgewichtigkeit, Plattformunabhängigkeit und Interoperabilität. Was ist nun aber .NET Standard? Wozu brauchen wir diesen Standard? Und wie passt er in das Gesamtbild? Diese Fragen sollen im letzten Teil dieser Serie beantwortet werden.

.NET Core löst die Probleme der Plattformunabhängigkeit und Portabilität und eliminiert damit viele der in den vorigen Artikeln genannten .NET Verticals – viele, aber eben nicht alle. Und genau dieser Umstand stellt eine weitere Herausforderung dar: Was ist mit gänzlich anderen .NET-Plattformen wie z. B. Mono und folglich Xamarin, das auf Mono basiert? Und wie steht es um .NET-Plattformen von anderen Anbietern, die möglicherweise in Zukunft in Erscheinung treten? Wieder die Frage der Kompatibilität und Portabilität: Können eigene Softwarekomponenten ohne Weiteres auf diesen Plattformen eingesetzt werden? Die Antwort lautet erst einmal nein.

Artikelserie

  • Teil 1: Entwirrspiel: Plattformunabhängigkeit und Kompatibilität
  • Teil 2: .NET Core als Lösungsansatz
  • Teil 3: .NET Core im richtigen Licht

In den drei größten momentan existierenden .NET-Plattformen haben wir zum einen das klassische .NET Framework für den Desktop. Daneben existiert nun .NET Core. Die dritte Plattform ist Xamarin, das seinerseits auf Mono basiert. Das Problem daran ist, dass jede dieser drei .NET-Plattformen mit ihrer eigenen Klassenbibliothek daherkommt. Für das klassische .NET Framework ist das die Base Class Library (BCL), für .NET Core die Core Library und für Xamarin die Mono Class Library. Diese Klassenbibliotheken sind nicht vereinheitlicht. Somit stehen wir wieder genau vor dem gleichen Problem wie mit den .NET Verticals: Komponenten sind nicht so einfach zwischen diesen Plattformen austauschbar bzw. wiederverwendbar. Code muss für jede adressierte Plattform spezifisch angepasst werden. Das wiederum führt zu erheblichen Mehraufwand und dupliziertem Code. Ein Problem, das gelöst werden muss.

.NET Standard

An dieser Stelle kommt .NET Standard ins Spiel. .NET Standard ist der Versuch, die Klassenbibliotheken zu vereinheitlichen. Im Prinzip umfasst der Standard eine Reihe von API-Spezifikationen. die von allen .NET-Plattformen implementiert werden müssen. .NET Standard unterliegt zudem einer strikten Versionierung, um eine Zuordnung der spezifizierten APIs zu einer Version gewährleisten zu können. Erfüllt eine .NET-Plattform eine bestimmte Version des Standards, so wird zugesichert, dass alle APIs von der Plattform unterstützt werden, die in der Version spezifiziert sind. Softwarekomponenten werden dann gegen eine Version des Standards kompiliert. Ist das der Fall, können diese Komponenten auf allen .NET-Plattformen verwendet werden, die diese spezifische Version von .NET Standard implementieren/erfüllen. Entwickler müssen sich damit nicht mehr mit den unterschiedlichen Klassenbibliotheken befassen, weil einfach gegen diesen einen Standard entwickelt wird.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Windows Developer 1.18 - "Angular 5"

Alle Infos zum Heft
579821394Kompatibilität und Portabilität via .NET Standard?
X
- Gib Deinen Standort ein -
- or -