.NET Open Source
Eintrag zuletzt aktualisiert am: 11.01.2022
Microsoft hatte schon im Mai 2014 für die nächste Version von
ASP.NET verkündet, dass es auch auf
Linux und MacOS laufen wird. Damals schien es aber noch so, als wollte Microsoft hier Mono als Basis verwenden. Am 12.11.2014 hat Microsoft verkündet, dass man
.NET Core 5.0 plattformneutral gestalten wird und eigene Versionen für
Linux und MacOS anbieten wird. Nicht nur die Plattformneutralität von ASP
.NET 5.0, sondern auch den schon im Mai verkündeten
Open Source-Status dehnt Microsoft nun auf das ganze .NET aus. Sowohl
.NET 4.6 als auch
.NET Core 5.0 stellt Microsoft unter die
MIT-Lizenz und hat zusätzliche eine Patentzusage abgegeben [
https://github.com/dotnet/corefx/blob/master/PATENTS.TXT], um die Nutzer rechtlich abzusichern.
Bisher war das
.NET Framework im Status „Shared Reference Source“, was bedeutete, dass der komplette Quellcode öffentlich einsehbar [
http://referencesource.microsoft.com/] war und auf Entwicklerwunsch auch im Rahmen des
Debuggings in
Visual Studio (verfügbar seit
Visual Studio 2008) angezeigt wurde. Die bisherige Lizenz erlaubte aber die Veränderung des Quellcodes nur für eigene experimentelle Zwecke. Eine Weiterverbreitung war – auch nichtkommerziell – ausgeschlossen. Daher konnten das Mono-Projekt und die auf Mono aufbauenden
Xamarin-Produkte nicht auf den Microsoft .NET-Quellcode zurückgreifen. Dass man Mono das
.NET Framework funktional nachempfunden hat, wurde bisher von Microsoft geduldet.
Durch die
Open Source-Erklärung ist nun die Reproduktion von Mono nicht nur zweifelsfrei legalisiert, sondern Mono kann den vorhandenen Microsoft-Programmcode auch direkt verwenden.
Xamarin-Chef Miguel de Icaza kommentierte die Neuerung mit den Worten „This is a momentous occasion“ [13] und kündigte an, dass man Teile von Mono, die bisher fehlerhaft oder unvollständig waren, nun gegen den Microsoft-Code austauschen werde. Auch einige bisher in Mono fehlende Teile will man ergänzen. Mittlerweile findet man eine aktualisierte Roadmap für Mono [
http://www.mono-project.com/docs/about-mono/dotnet-integration/], auf der u.a. zu lesen ist, dass man
WCF und
System.Web kurzfristig aus .NET nach Mono übernehmen will.
Bei der
Open Source-Strategie muss man jedoch unterscheiden zwischen dem Quellcode von .NET 4.x und
.NET Core 5.0:
- Microsoft hat das bestehende .NET-Shared Source-Repository bei Github [http://referencesource.microsoft.com/] lediglich mit einer neuen Lizenz belegt, sodass jedermann den Quellcode nun nutzen kann. Das Repository bleibt aber im „Nur Lesen“-Zustand. Microsoft sagt, das monolithische Framework sei nicht für die Beteiligung der Community geeignet, da es hier viele komplexe Abhängigkeiten vom Betriebssystem und zwischen den verschiedenen Bibliotheken gibt.
- Das Quellcode-Repository für .NET Core 5.0 findet man bei der .NET Foundation [https://github.com/dotnet]. Microsoft hat dort noch nicht den ganzen Quellcode freigegeben. Hierfür seien noch einige Arbeiten notwendig, sodass dies sukzessive erfolgen soll. Für dieses Repository nimmt Microsoft Issues und Pull Requests von allen interessierten Softwareentwicklern entgegen. Xamarin hat bereits angekündigt, sich aktiv an der Weiterentwicklung von .NET Core zu beteiligen.
In zwei Punkten will Microsoft aber keinen Unterschied machen: Beide Varianten des Frameworks werden von Microsoft aktiv mit den bisherigen Entwicklungsteams weiterentwickelt und Microsoft-Kunden können weiterhin Unterstützung auf allen bisher verfügbaren kostenfreien und kostenpflichtigen Kanälen bekommen.