top of page

"Verwirrende" .net Terminology erklärt / "Confusing" .net terminology explained

27. März 2021

Microsoft DevBlog

.net Framework - .net Standard - .net Core - .net5 .net6 ... ?

Deutsch

English


Deutsch

Dies ist ein Versuch, mit einer Verwirrung "aufzuräumen", die sich auf den ersten Blick seitens Microsoft in Bezug auf .net – Benennung / Versionierung immer mehr aufzutun scheint!


Im November 2020 ist plangemäß von Microsoft das .net 5 herausgekommen!

Jedoch: .net 5 ist keine Fortführung des klassischen .net-Frameworks (4.x), sondern eine Weiterentwicklung von .net Core 3.1!

.net "Core" ist im Wesentlichen, etwas trivialisiert ausgedrückt, die plattformunabhängige Weiterentwicklung von .net Framework.

D.h. in vielen Dingen, nicht allen, geht .net Core völlig andere Wege und .net Core ist – das ist sehr wichtig zu betonen – betriebssystemunabhängig!

Und vor allem sind side-by-side-Runtimes möglich, d.h. Programme, die unterschiedliche .net Core-Versionen als Ziel haben, können problemlos parallel laufen.

.net Core hat von Hause Microsoft aus eine sehr viel kürzere Runtime Support Policy (LTE Versionen max. 3 Jahre z.B.) !


Wer nun eine Applikation mit .net 5 oder .net 6 baut, geht das "Risiko" ein, dass bestehende "klassische" .net Framework 4.x–Assemblies nicht mehr ohne Weiteres benutzt werden können.


Grundsätzlich ist es über "Umwege" möglich, aus .net 5 (also quasi .net Core) Umgebungen heraus auch "klassische" .net Framework 4.x-Bibliotheken zu verwenden, aber nur mit gewissen Einschränkungen, d.h. nicht alles, und ausschließlich über "Umwege" wie .net Standard-"Zwischenbibliotheken".


Auch nochmal wichtig festzuhalten:

Das "klassische" Microsoft .net Framework wird nicht mehr von Microsoft regelmäßig um neue Features erweitert!

Darum hat Microsoft auch den Begriff ".Core" weggelassen, um klar zu zeigen, wo "die Reise hingeht" und es wurde direkt ein großer Sprung von .net Core 3.1 auf 5.0 gemacht (es gibt kein .net Core 4.x) , weil es ansonsten zu missverständlich wäre und man davon ausgehen könnte, dass es sich um eine Weiterentwicklung des "klassischen" .net Framework handelte.


Aber: Wichtig:

Da das "klassische" Microsoft .net Framework inzwischen quasi integraler Teil von Windows ist (=Windows liefert immer eine Framework-Version aus) und weil z.B. Windows 11 noch eine sehr lange Support Policy hat, wird es natürlich auch für das "klassische" .net noch Weiterentwicklungen für Sicherheitspatches usw geben bzw. was Microsoft halt selber im Rahmen von Windows braucht.


Microsoft selber hat in offiziellen Konferenzen von Zeiträumen >= 20 Jahren "Unterstützung" für das "klassische" .net gesprochen, d.h. mindestens Security-Fixes!!


Aktuell kann man mit hoher Sicherheit behaupten, dass es das "klassische" .net Framework mindestens noch solange geben wird wie es Windows Betriebssysteme (auch Windows Server Betriebssysteme) geben wird!

Mit umfänglichen Major-Weiterentwicklungen des "klassischen" .net-Frameworks (umfangreiche Feature-Sets) ist dagegen nicht mehr zu rechnen.


Siehe auch https://www.officium-inservio.com/news/netstandardfuture

Siehe auch https://www.officium-inservio.com/news/netsupportpolicycommon


English

This is an attempt to "clean up" a confusion that at first glance seems to be opening up more and more on the part of Microsoft in relation to .net naming/versioning!


In November 2020, Microsoft released .net 5 as planned!

However: .net 5 is not a continuation of the classic .net framework (4.x) but further development of .net Core 3.1!

.net "Core" is essentially, to put it somewhat trivially, the platform-independent further development of .net Framework.

I.e. in many things, not all, .net Core goes completely different ways, and .net Core is - this is very important to emphasize - independent of the operating system!

And above all, side-by-side runtimes are possible, i.e. programs that target different .net Core versions can run in parallel without any problems.

.net Core has a much shorter runtime support policy from Microsoft (LTE versions max. 3 years, e.g.)!


If you now build an application with .net 5 or .net 6, you run the "risk" that existing "classic" .net Framework 4.x assemblies can no longer be used without further ado.


In principle, it is possible via "detours" to use "classic" .net Framework 4.x libraries from .net 5 (i.e. quasi .net Core) environments, but only with certain restrictions, i.e. not everything, and exclusively via "Detours" like .net standard "intermediate libraries".


Also important to note:

The "classic" Microsoft .net Framework is no longer regularly expanded by Microsoft with new features!

That's why Microsoft also dropped the term ".Core" to show a clear direction where "the journey is going", and a big jump was made directly from .net Core 3.1 to 5.0 (there is no .net Core 4.x) because otherwise it would be too misleading and one could assume that it was a further development of the "classic" .net Framework.


But: Important:

Since the "classic" Microsoft .net Framework has been somewhat as an integral part of Windows (=Windows always delivers a framework version) and because Windows 11, for example, still has a very long support policy, the "classic" .net Framework will be, of course, further developed in regards of security patches etc. (or what Microsoft itself needs within the framework of Windows).


Microsoft itself has spoken of "support" for the "classic" .net in official conferences of periods >= 20 years, i.e. at least security fixes!!

Currently, one can say with a high degree of certainty that the "classic" .net Framework will exist at least as long as there are Windows operating systems (including Windows Server operating systems)!


On the other hand, extensive and significant further developments of the "classic" .net Framework (new extensive feature sets) are no longer to be expected.


See also https://www.officium-inservio.com/news/netstandardfuture

See also https://www.officium-inservio.com/news/netsupportpolicycommon



bottom of page