Microsoft Entwicklungskomponenten und ihr Versionen

Beim Entwickeln mit C# / .NET ist man immer wieder mit den Versionen der eingesetzten Komponenten konfrontiert. Man muss zum Beispiel wissen ab welcher .NET Version eine Komponente verfügbar ist die man einsetzen möchte, in welcher C# Sprachversion ein bestimmtes Pattern vorhanden ist  oder man muss wissen welche Version ein NuGET-Paket haben muss damit es verwendet werden kann.

Versionen kommen an vielen Stellen vor und müssen teilweise aufeinander abgestimmt werden. Dies war für mich immer wieder verwirrend und mir fehlte ein Gesamtüberblick. Je nachdem mit welchen Entwicklungskomponenten man arbeiten möchte braucht man eine bestimmte Version vom .NET Framework, von .NET CORE oder von .NET und man hat Versionen der Drittanbieter-Erweiterungspakete, den NuGet-Paketen.

Dazu kommt, das Microsoft zur jetzigen Zeit (Frühjahr 2021) mit .NET, .NET CORE, .NET Framework und Xamarin vier Entwicklungskomponenten veröffentlicht und man sich bei der Erstellung eines Projektes entscheiden muss mit welcher Komponente man arbeiten möchte.

In der Zukunft nur noch .NET

Ziel von Microsoft ist, die Komponenten .NET CORE, .NET Framework und Xamarin in das einheitliche .NET zusammenzuführen, so dass es künftig nur noch die Komponenten .NET geben wird.

Glossar Abkürzungen

GA
General Availability: steht für eine allgemeine Verfügbarkeit. Der Begriff verdeutlicht, dass die Version für den Praxiseinsatz freigegeben ist.

LTS
Der Begriff Long Term Support steht für langfristig unterstützte Software oder Betriebssysteme. Damit steht der Begriff sinnbildlich für Stabilität und Verlässlichkeit über einen langen, in der Regel fest definierten Mindestzeitraum hinweg.

RC
Release Candidate, Sollte nicht für produktive Applikationen eingesetzt werden

BCL
Base Class Library, die Fundamentalen Teile einer Klassenbibliothek

C# Version
C# ist die Entwicklungssprache mit der für .NET entwickelt wird. Die verwendete C# Version ist abhängig von der verwendeten .NET / .NET CORE / .NET Framework Version.

NuGet-Paket
NuGet-Pakete sind erweiternde Komponenten (häufig von Drittanbietern) die mit .NET Verwendet werden können. NuGet-Pakete liefern Lösungen für bestimmte Anforderungen die man mit einem Entwicklungsprojekt umsetzen möchte.

Grafische Übersicht C#, .NET, .NET CORE, .NET Framework, Xamarin

Ohne Anspruch auf Vollständigkeit oder auf Fehlerfreiheit habe ich versucht eine Grafische Übersicht der Versionsgeschichte von C#, .NET, .NET CORE, .NET Framework und Xamarin zu erstellen. Die Informationen zu den Komponenten wurden aus verschiedenen Quellen im Netz zusammengetragen.

Dabei habe ich festgestellt, dass die Veröffentlichungsdaten nicht auf allen Seiten kongruent sind. Dennoch vermittelt die Grafik Überblick über die Geschichte der erwähnten Komponenten.

Ich werde versuchen die Grafik aktuell zu halten…

 

(Die Grafik lässt sich durch anklicken vergrössern)