.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.