Menü
Developer

Microsoft: .NET wird zur Cross-Entwicklungsplattform

Microsoft wird sein .NET Framework zukünftig in zwei getrennten Produktlinien weiterentwickeln. Das modulare .NET Core 5.0 soll aber zukünftig die Basis für alle Plattformen bilden.

vorlesen Drucken Kommentare lesen 36 Beiträge

Microsoft wird sein .NET Framework zukünftig in zwei getrennten Produktlinien weiterentwickeln. Im nächsten Jahr werden daher unter dem Oberbegriff .NET 2015 parallel zwei neue Versionen von .NET erscheinen, gab Microsofts Executive Vice President Scott Guthrie im Rahmen der Online-Konferenz connect(); bekannt.

Das bisherige .NET Framework wird in Version 4.6 erscheinen. Im Vergleich zur aktuellen Version 4.5.2 aus dem Mai 2014 kommt die modulare .NET-Compiler-Plattform Roslyn mit den neuen Sprachversionen C# 6.0 und Visual Basic 2015 hinzu. Auch in der Klassenbibliothek gibt es kleinere Erweiterungen. Ebenso liefert Microsoft mit .NET 4.6 einen neuen, schnelleren Just-in-Time-Compiler für 64-Bit-basierte .NET-Anwendungen, den es seit Oktober 2013 als Preview unter dem Codename Ryujit gibt.

Das im April 2014 angekündigte .NET Native ("Project N"), mit dem Windows Apps direkt zu nativem Code kompiliert werden können, und die im Mai 2014 angekündigte modulare Variante der Webentwicklungsplattform ASP.NET ("Project K") fasst Microsoft zu .NET Core 5.0 zusammen. Das .NET Core Framework, das Microsoft nicht nur für Windows, sondern auch Mac OS X und Linux liefern wird, umfasst im Gegensatz zur bisherigen .NET-4.x-Linie nur rund 11 MByte statt 200 MByte Binärcode. Während rund 95 Prozent der Funktionen der Common Language Runtime (CLR) vorhanden sein werden, wird das Core Framework im ersten Schritt nur etwa 10 Prozent der bisherigen Klassenbibliothek umfassen. Im Mittelpunkt der reduzierten Klassenbibliothek steht die System.Runtime.dll. Microsoft wird aber über optionale Erweiterungspakete den Funktionsumfang des Core Framework ausbauen.

Für Desktop-Oberflächen zuständige Bibliotheken wie Windows Forms und Windows Presentation Foundation (WPF) gibt es zunächst nicht für .NET Core 5.0; ob sie zu einem späteren Zeitpunkt auf der .NET-5-Produktlinie unterstützt werden, ist noch nicht verkündet. Die Entwicklung von Desktop-Anwendungen mit .NET will Microsoft aber durch die Weiterentwicklung der .NET-4.x-Produktlinie weiterhin bedienen. Die neuen Compiler-Funktionen von .NET 4.6 sind auch in .NET 5.0 verfügbar.

Microsoft entwickelt .NET in zwei Produktlinien weiter.

(Bild: Microsoft)

Mit der neuen .NET-5-Produktlinie will Microsoft zukünftig ein einheitliches Framework für alle Plattformen bieten, in denen .NET zum Einsatz kommt. Neben dem 2001 erschienenen .NET Framework haben sich in den letzten Jahren zahlreiche Derivate entwickelt: Silverlight für Browseranwendungen, Silverlight für Windows Phone 7 und 8, .NET für Windows-8.x-Apps sowie .NET für Windows-Phone-8.x.Apps. Alle diese Varianten unterscheiden sich zum Teil deutlich hinsichtlich Laufzeitumgebung, Klassenbibliotheken und Anwendungsmodells. Mit der Ankündigung von ASP.NET vNext (jetzt: ASP.NET 5.0) und .NET Native war eine weitere Diversifikation zu befürchten.

Die bisherige Vielfalt an .NET-Varianten

(Bild: Microsoft)

So stellt Microsoft "One .NET". dar

(Bild: Microsoft)

Microsoft will aber nun das .NET Core Framework in allen Umgebungen verwenden. Neben den verwendeten Erweiterungsbibliotheken sind auch Unterschiede weiterhin bei der Laufzeitumgebung vorhanden, was man im Fall von ASP.NET 5.0 und .NET Native auch sieht: ASP.NET 5.0 verwendet die bekannte virtuelle Maschine mit Microsoft Intermediate Language (MSIL) und Just-In-Time-Compiler. .NET-Native-basierte Anwendungen hingegen laufen ohne virtuelle Maschine direkt in Maschinencode.

In der Version der .NET-5-Produktlinie können Entwickler aber zunächst nur Windows-Apps und Webanwendungen erzeugen. Konsolenprojekte sind auch erstellbar, sie sind aber keine klassischen EXE-Konsolenanwendungen für die direkte Ausführung in Windows, sondern DLLs, die bei serverseitigen Web-Worker-Prozessen zum Einsatz kommen können. Desktop-Anwendungen und Windows-Dienstprozesse gibt es in der .NET-5-Linie und damit auch für .NET Native zunächst gar nicht.

Nicht nur die Erweiterungspakete, sondern auch den Kern der .NET-Framework-Versionen 4.6 und .NET Core 5.0 selbst verteilt Microsoft über das Komponentenportal NuGet. Dafür will Microsoft die zur Beschreibung von NuGet-Paketen verwendete XML-Syntax Nuspec erheblich erweitern, um Voraussetzungen und komplexe Abhängigkeiten einfacher auch ohne Einsatz von Skripten festlegen zu können. Da zukünftig alle Projekte auf NuGet zurückgreifen werden, soll das Einbinden von NuGet-Paketen beschleunigt werden. Der Projektmappen-Explorer in Visual Studio wird NuGet-Pakete als Referenzen anzeigen; das sieht man schon für ASP.NET-5.0-Projekte in der aktuellen Preview-Version von Visual Studio.

ASP.NET 5.0 wird darüber hinaus noch einige weitere Neuerungen einführen, die aber zunächst nur für die Webentwicklung gelten werden. Dazu gehört, dass als Konfigurationsdateiformat im Standard JSON statt XML verwendet wird. Außerdem kann man aus ASP.NET-Projekten direkt wieder NuGet-Pakete erzeugen. Auch in "One .NET" gibt es also noch Unterschiede. Microsoft will aber daran arbeiten, diese Unterschiede zu verringern.

Mit der NuGet-Modularisierung will Microsoft zukünftig das .NET Core Framework genauso agil vorantreiben, wie das heute schon mit einzelnen Komponenten wie dem objektrelationalen Mapper Entity Framework erfolgt. Entwickler können also zukünftig auf häufigere Aktualisierungen einzelner Bibliotheken hoffen. Damit verbunden ist aber dann auch die Herausforderung für die .NET-Nutzer, die zueinander passenden Bibliotheken auszuwählen und ihre Software mit den aktualisierten Komponenten zu schützen.

Für Unternehmen, die diese Wahl nicht selbst treffen wollen, will Microsoft zukünftig alle paar Monate Gesamtpakete zueinander passender Bibliotheken schnüren, die als Metapakete auf NuGet.org bereitstehen werden. Diese Gesamtpakete wird Microsoft im Rahmen von Visual-Studio-Updates oder eigenständige MSI-Pakete ausliefern, sodass die Entwickler nicht einzeln über das Internet auf NuGet zugreifen müssen. Kunden, die die schnelleren Zyklen einzelner Bibliotheken nicht mitgehen wollen, können also auch weiterhin in langsameren Schritten auf Basis der Gesamtpakete arbeiten.

Als Erscheinungstermin für .NET 4.6 und .NET Core 5.0 steht das Jahr 2015 im Raum. Auf dem Microsoft Technical Summit 2014 diese Woche in Berlin nannte ein Microsoft-Sprecher für ASP.NET 5.0 den Termin "2. Quartal 2015". Da ASP.NET 5.0 aber von .NET 4.6 und .NET Core 5.0 abhängt, weist diese Angabe auch die Richtung für das Erscheinen der neuen .NET-Versionen.

Einen exakten Erscheinungstermin hat Microsoft aber noch nicht bekannt gegeben. Die BUILD-Konferenz markiert aber traditionell wichtige Meilensteine der Entwicklung von Windows und .NET. Die nächste findet von 29. April bis 1. Mai 2015 in San Francisco statt.

Zu den auf der connect();-Konferenz angekündigten Neuerungen siehe auch auf heise Developer:

(Holger Schwichtenberg) / (ane)