Standard-Build-System für .NET

.NET Core Tooling in Visual Studio „15“
Kommentare

Vor einigen Wochen wurde der .NET Standard 2.0 vorgestellt, der allen .NET-Versionen zugrunde liegen und .NET Code per APIs über mehrere Plattformen hinweg teilen soll. Doch wie soll das eigentlich funktionieren? Dafür sollen das Projektsystem und die Build-Infrastruktur mit MSBuild vereinheitlicht und die finalen Tools schließlich gemeinsam mit Visual Studio „15“ ausgeliefert werden.

Die Veröffentlichung von .NET Core 1.0 beinhaltete die RTM-Runtime und eine Preview der Tools. Das finale Release der .NET Core Tools soll ein Build- und Projektsystem bieten, das mit dem Rest der .NET Project Types konform läuft. Die bekannte project.json-Infrastruktur wird aufgegeben. Auf diese Weise werden .NET-Core-Applikations- und .NET-Standard-Library-Projekte einfach zu einem weiteren .NET-Projekt, das man in Verbindung mit anderen Projektarten wie Xamarin, WPF, Unity oder UWP einsetzen kann.

Das neue Toolset markiert einen wichtigen Schritt in diese Richtung. Beibehalten werden einige wichtige project.json-Charakteristika, die von der Community explizit gewünscht waren, um neue projektübergreifende Szenarien zu ermöglichen. Die Migration bestehender project.json-Dateien wird übrigens unterstützt, weswegen auch weiterhin mit diesen gearbeitet werden kann.

.NET Core Tooling – das steckt dahinter

Zu den wichtigsten verbesserten Eigenschaften des vereinheitlichten Build-Systems zählen folgende Punkte:

  • Projektreferenzen funktionieren: .NET-Core- und .NET-Standard-Library-Projekte lassen sich aus bestehenden .NET-Projekten referenzieren und umgekehrt
  • Paketreferenzen sind integriert: NuGet-Package-Referenzen sind Teil des csproj-Formats
  • Cross-Targeting-Support: Mehrere Ziel-Frameworks lassen sich an ein Projekt adressieren
  • Vereinfachtes csproj-Format: Das csproj-Format wurde so minimalistisch wie möglich gestaltet, um es leichter von Hand zu bearbeiten. Hand-Editing ist dabei optional; Common Gestures in Visual Studio kümmern sich um das Aktualisieren der Datei und zudem werden Befehlszeilenoptionen im CLI für die geläufigsten Aktionen geboten.
  • Support für Datei-Wildcards: Um einzelne Dateien in der Projektdatei aufzulisten, sind keinerlei Voraussetzungen nötig. Das ermöglicht ordnerbasierte Projekte, bei denen es nicht nötig ist, jede einzelne Datei manuell hinzuzufügen. Auch die Projektdatei muss bei einem Hinzufügen von neuen Dateien nicht angepasst werden.
  • Migration von project.json/xproj zu csproj: Bestehende .NET-Core-Projekte lassen sich nahtlos von project.json zu csproj migrieren, entweder über Visual Studio oder die Kommandozeile

Schnell und überall: Datenzugriff mit Entity Framework Core 2.0

Dr. Holger Schwichtenberg (www.IT-Visions.de/5Minds IT-Solutions)

C# 7.0 – Neues im Detail

Christian Nagel (CN innovation)

Warum ein standardisiertes Build-System?

Um den .NET Standard 2.0 zu verwirklichen, ist ein standardisiertes Build-System Voraussetzung. Solange das nicht existiert, ist auch kein neuer .NET Standard möglich. .NET Standard benötigt ein Standard-API und Standard-Projektarten, die als Currencies innerhalb eines Standard-Build-Systems fungieren. Erst mit diesen lässt sich Code projekt- und plattformübergreifend einsetzen.

Derzeit ist .NET Core der einzige Teil der .NET-Familie, der bislang nicht auf MSBuild setzt. Deshalb ist es auch das einzige, das sich anpassen muss, inklusive der .NET-Standard-Library-Projekte. Nutzen alle Projektarten dasselbe Build-System und dieselben Projektformate, lassen sich Bibliotheken in verschiedenen Projektarten wiederverwenden. Die aktualisierten .NET-Core-Tools sollen genauso leicht zu nutzen sein wie das bekannte project.json-System, dabei aber eine bessere Experience mit Visual Studio bieten.

Ausführliche Informationen zu den einzelnen Tools bietet der zugehörige Post im Visual-Studio-Blog. Ende des Jahres soll ein Preview-Update der Tools sowie die finale Version gemeinsam mit Visual Studio „15“ ausgeliefert werden.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -