Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 4 Min.

Neue Zöpfe ankleben

Statt durch eine proprietäre SLN-Datei wird ein Visual-Studio-Projekt künftig durch eine XML-Datei beschrieben.
© dotnetpro
Das .NET-Ökosystem ist seit .NET Core generalüberholt, und auch das Tooling rund um die .NET-Projekte hat sich recht stark geändert. An die Stelle von packages.config und NuGet trat (glücklicherweise) die PackageReference, die .csproj-Dateien sind endlich gut lesbar, und jetzt geht Micro­soft die nächste Baustelle an: die Solution-Datei.

Die SLN-Datei

Die Solutiondatei mit der Namenserweiterung .sln beschreibt für Visual Studio respektive alle anderen IDEs, wie sich die Lösung – also das Gesamtprojekt – aus den Unterprojekten zusammensetzt. Dabei hat sich Microsoft historisch bedingt eines eigenen, proprietären Formats bedient (Bild 1).
Ein Beispiel für das proprietäre Format der SLN-Datei (Bild 1) © Autor
Bei näherem Hinsehen entpuppt sich eine einfache Solutiondatei als Text, der erst einmal viel Interpretationsspielraum zulässt. Es werden darin Visual-Studio-Versionen gespeichert sowie auch globale Dinge wie die Konfiguration von Any CPU, x86 oder ARM. Jedes Projekt ist mit einer ominösen GUID referenziert und somit Bestandteil der Solution. Auch wenn Änderungen an Solutiondateien eher sporadischer Natur sind, kommen sie vor. Will man dann noch – vielleicht aufgrund von Konflikten in der Quellcodeverwaltung – mergen, ist der Spaß vorprogrammiert. Zeit, hier endlich aufzuräumen.

Die Neuerung

Microsoft baut gerade ein neues Format mit der Dateiendung .slnx. Dieses Format wird in Zukunft eine aufgeräumtere Solutiondatei ermöglichen. Um dieses Feature auszuprobieren, benötigen Sie eine aktuelle Version von Visual Studio Preview, und zwar die Version 17.10 Preview 3.Nach der Installation der Version kann das Vorschaufeature SLNX aktiviert werden. Dies muss explizit in den Optionen von Visual Studio angeschaltet werden (Bild 2). Damit bringen Sie Visual Studio in die Lage, diese Dateien zu verarbeiten.
SLNX: Derzeit nur in der Vorschauversion verfügbar (Bild 2) © Autor
In den regulären Versionen von Visual Studio beziehungsweise in anderen IDEs wie Jetbrains Rider wird uns das Feature wahrscheinlich erst in ein paar Monaten begegnen.

Bestandssolution

Eine bestehende Solution kann zu einer SLNX-Fassung konvertiert werden. Dazu muss die Solution neu gespeichert werden. Selektieren Sie dafür in der Solution den Wurzelknoten.Anschließend taucht im Menüpunkt Datei | SlnSample.sln speichern unter … die neue Auswahlmöglichkeit Xml Solution File (*.slnx) in der Dropdown-Liste für den Dateityp auf (Bild 3).
Der neue Dateityp SLNX im Speichern-unter-Dialog (Bild 3) © Autor
Öffnen Sie die Solution nun erneut, befinden Sie sich bereits in der neuen Welt. Statt nun allerdings eine Vielzahl von neuen Features vorzufinden, hat sich durch die eingeschaltete Option rein funktional nichts geändert.Das einzige, was sich geändert hat, ist, wie die Projekte zu einer Solution zusammengefasst werden – eben über die neue SLNX-Datei.

Aufbau der SLNX-Datei

Aus der ursprünglichen SLN-Datei mit mehreren Zeilen und viel Blabla wurde eine extrem komprimierte Datei:

<Solution>
  <Project Path="SlnSample\SlnSample.csproj" />
</Solution> 
Tatsächlich hat sich Microsoft bei der slnx-Datei auf ein recht bekanntes Format besonnen: XML. Was mit .csproj-Dateien mittlerweile Standard ist, beglückt nun auch in der Solutiondatei. Somit haben wir hier den gleichen Komfort wie bei den .csproj-Dateien.Probeweise fügen wir gleich ein paar neue Projekte der Solution hinzu. Unter anderem ist auch ein .NET-Framework-Projekt dabei. Das klappt auf Anhieb. Somit steht auch älteren Projekten beziehungsweise anderen Projekttypen dieses neue Format offen.

<Solution>
  <Project Path="ConsoleApp1\ConsoleApp1.csproj" 
    Type="Classic C#" />
  <Project Path="SlnSample\SlnSample.csproj" />
  <Project 
    Path="WindowsFormsApp1\WindowsFormsApp1.csproj" 
    Type="Classic C#" />
</Solution> 
Spannend ist hier das Type-Attribut. Bei der initialen Konvertierung fehlte dieses Attribut. Das hat auch keine Probleme bereitet. Die neu hinzugefügten Projekte erhielten hingegen das Attribut mit dem Wert Classic C#. Hier dürfte die IDE noch weitere Informationen aus dem Attribut ziehen.Welche weiteren Typen noch möglich sind, ist zum Zeitpunkt der Entstehung des Artikels noch nirgends beschrieben.

Fazit

Der Autor des Artikels mag solche kleinen Putzaktionen, die Microsoft immer mal wieder einstreut. Das alte Format wird uns noch lange begleiten, doch empfiehlt sich das neue Format für neue Projekte. Die alten SLN-Dateien hat der Autor nie verstanden. Bei SLNX-Dateien sieht das anders aus.

Neueste Beiträge

DWX hakt nach: Wie stellt man Daten besonders lesbar dar?
Dass das Design von Websites maßgeblich für die Lesbarkeit der Inhalte verantwortlich ist, ist klar. Das gleiche gilt aber auch für die Aufbereitung von Daten für Berichte. Worauf besonders zu achten ist, erklären Dr. Ina Humpert und Dr. Julia Norget.
3 Minuten
27. Jun 2025
DWX hakt nach: Wie gestaltet man intuitive User Experiences?
DWX hakt nach: Wie gestaltet man intuitive User Experiences? Intuitive Bedienbarkeit klingt gut – doch wie gelingt sie in der Praxis? UX-Expertin Vicky Pirker verrät auf der Developer Week, worauf es wirklich ankommt. Hier gibt sie vorab einen Einblick in ihre Session.
4 Minuten
27. Jun 2025
„Sieh die KI als Juniorentwickler“
CTO Christian Weyer fühlt sich jung wie schon lange nicht mehr. Woran das liegt und warum er keine Angst um seinen Job hat, erzählt er im dotnetpro-Interview.
15 Minuten
27. Jun 2025
Miscellaneous

Das könnte Dich auch interessieren

UIs für Linux - Bedienoberflächen entwickeln mithilfe von C#, .NET und Avalonia
Es gibt viele UI-Frameworks für .NET, doch nur sehr wenige davon unterstützen Linux. Avalonia schafft als etabliertes Open-Source-Projekt Abhilfe.
16 Minuten
16. Jun 2025
Mythos Motivation - Teamentwicklung
Entwickler bringen Arbeitsfreude und Engagement meist schon von Haus aus mit. Diesen inneren Antrieb zu erhalten sollte für Führungskräfte im Fokus stehen.
13 Minuten
19. Jan 2017
Evolutionäres Prototyping von Business-Apps - Low Code/No Code und KI mit Power Apps
Microsoft baut Power Apps zunehmend mit Features aus, um die Low-Code-/No-Code-Welt mit der KI und der professionellen Programmierung zu verbinden.
19 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige