Große Visual Studio Solutions beherrschen – Beschleunigen (3)

In den ersten beiden Beiträgen dieser Serie haben wir dargestellt, warum die Arbeit in einer großen Solution manchmal mühsam ist und wie Sie einen guten Überblick über die Solution erhalten können. In diesem Teil richten wir unsere Aufmerksamkeit darauf, durch welche Schritte Sie die tägliche Arbeit vereinfachen können.

Solution Folders

Durch Solution Folders können die Inhalte einer Visual Studio Solution zusammengefasst werden. Dadurch kann eine Struktur eingeführt werden, die die schnelle Orientierung unterstützt, indem sie beispielsweise das Architekturmodell nachbildet.

Das Erstellen von Solution Folders ist eine sehr leichtgewichtige Maßnahme, weil die Struktur rein logisch in der Solution-Datei gebildet wird und keine Auswirkung darauf hat, wie die Projekte und Dateien im Dateisystem abgelegt sind. Solution Folders können auch weitere Unterverzeichnisse beinhalten.

Solution Folders

Im Screenshot ist ein nützlicher Tooltip markiert: er erlaubt das Zusammenklappen aller Solution Folders, so dass nach dem Laden der Solution eine aufgeräumte Ansicht dargestellt wird.

Im Kontextmenü eines Solution Folders finden sich Befehle, um das Verzeichnis zu verstecken, so dass dieses temporär aus der Ansicht herausgenommen wird. Versteckte Verzeichnisse können auf Ebene der Solution per „Unhide folders“ wieder dargestellt werden. Per „Scope to this“ ist es außerdem möglich, die Ansicht auf ein bestimmtes Solution Folder einzuschränken, falls zur Arbeit nur ein Verzeichnis relevant ist.

Projekte entladen

Sind bestimmte Projekte für die aktuellen Aufgaben nicht relevant, so können diese entladen werden. Dadurch werden sie beim Build nicht mehr berücksichtigt, so dass dieser beschleunigt wird. Zu beachten ist dabei natürlich, dass so auch keine Buildfehler in diesen Projekten mehr dargestellt werden, die durch Änderungen im Workspace entstehen. Es sollte also gut geprüft werden, ob die entladenen Projekte wirklich unabhängig von der aktuellen Aufgabe sind.

Das Entladen kann auch auf Ebene eines Solution Folders erfolgen, so dass nicht jedes Projekt einzeln entladen werden muss.

Konfigurationen

In einer Solution können mehrere Build-Konfigurationen angelegt werden. Out-of-the-box wird eine Debug- und eine Release-Konfiguration angelegt, in der alle Projekte enthalten sind. Für den Fall, dass bestimmte Projekte häufiger ausgeblendet werden sollen, können zusätzliche Konfigurationen angelegt werden, in denen die Projekte deaktiviert sind.

New Solution Configuration

Beim Anlegen einer neuen Konfiguration können die Einstellungen einer bestehenden Konfiguration kopiert werden. Durch eine Einstellung kann bestimmt werden, ob neben der Solution-Konfiguration auch neue, gleichnamige Projekt-Konfigurationen angelegt werden sollen. Sofern sich die Einstellungen auf Projektebene nicht unterscheiden, sollte man sich gegen separate Projekt-Konfigurationen entscheiden. Andernfalls müssen spätere Änderungen in den Projekt-Konfigurationen für die neuen Konfigurationen nachgezogen werden.

Zur klaren Zuordnung zu den Projekt-Konfigurationen sollte man den Namen der neuen Solution-Konfiguration natürlich so wählen, dass die Projekt-Konfiguration einfach identifiziert werden kann.

Die neuen Konfigurationen sind für alle verfügbar, die mit der Solution arbeiten. Im Gegensatz zum temporären Entladen von Projekten im eigenen Arbeitsplatz eignet sich das Erstellen einer neuen Konfiguration vor allem dann, wenn diese häufiger und an verschiedenen Arbeitsplätzen benötigt wird.

Projekte zusammenfassen

Um die Anzahl der Projekte in der Solution zu verkleinern, bietet es sich natürlich an, mehrere Projekte in einem einzelnen Projekt zusammenzufassen. Da dies jedoch weitreichende Auswirkungen haben kann, sollte zuvor sorgfältig geprüft werden, ob dies problemlos möglich ist. Wichtige Fragestellungen sind beispielsweise:

  • Ist dieser Schritt aus Sicht der Softwarearchitektur sinnvoll?
  • Sind die Projekte hinsichtlich ihrer Einstellungen und Zielplattformen (z.B. Any CPU, x86) kompatibel?
  • Ist das entstehende Projekt überblickbar?
  • Gibt es Auswirkungen auf bestehende Installationen? Falls die aufgelösten Projekte auch an Stellen außerhalb der Solution verwendet werden, führt dies dort ebenfalls zu Änderungen.

Nach der Beantwortung dieser Fragen kann die Zusammenfassung der Projekte beginnen. Um in dem zusammengefassten Projekt eine gute Übersichtlichkeit zu gewährleisten, sollten Namespaces verwendet und die Bestandteile gut in Ordnern strukturiert werden.

Die Dateien sollten nicht einfach als neue Dateien im neuen Projekt hinzugefügt werden, sondern so verschoben werden, dass das Versionsverwaltungssystem die Änderungshistorie auch weiterhin bereitstellen kann. So bleibt auch weiterhin ersichtlich, wer welche Änderung aus welchem Grund gemacht hat.

Ausblick

Dieser Teil widmete sich den Schritten, die innerhalb einer Solution unternommen werden können, um die Arbeit zu vereinfachen. Der nächste Teil beschreibt, wie eine große Solution auf mehrere kleinere aufgeteilt werden kann.


Online-Programm

Basierend auf unserer langjährigen Erfahrung im Developer Coaching haben wir folgendes Programm für Sie zusammengestellt:

Professional .NET-Developer Programm

.NET-Projekte durch bewährte Vorgehensweisen und stabile Strukturen erfolgreich meistern