Frustfreie Web.config auch im Team

Eine sehr nützliche Funktion im Visual Studio und MSBuild ist die Möglichkeit, bei der Veröffentlichung von Webseiten die Web.config entsprechend der gewählten Zielkonfiguration automatisch anpassen zu lassen. Der Vorgang nennt sich Transformation und beschreibt im Prinzip nichts weiter als anhand von Transform-Dateien die Web.config zu verändern. Das Prinzip ist identisch mit der bekannten Xml Transformation mittels XSLT (in Visual Studio heißt nur alles wieder mal anders).

Während das Konzept beim Web-Publishing bereits sinnvoll ist (um z.B. für Debug, Release, Stage, etc. unterschiedliche Konfigurationen parat zu haben), wäre der Einsatz während der Entwicklung selbst allerdings genauso praktisch. Beispielsweise könnten einzelne Teammitglieder unterschiedliche lokale Entwickler-Datenbankinstanzen haben, die sich auf die ConnectionStrings in der Web.config auswirken. Das Problem, das daraus i.d.R. entsteht, ist, dass jeder Entwickler die Web.config bei sich lokal anpasst und dadurch auscheckt. Sollte sie dann “aus Versehen” mal mit eingecheckt werden, klappt bei anderen Entwicklern im Zweifelsfall die Datenbankverbindung nicht mehr, sobald sie ihren Workspace aktualisieren. Im schlimmsten Fall werden dadurch Basisänderungen an der Web.config überschrieben wenn man nicht aufpasst.

Die Lösung für dieses Problem wäre, jedem Entwickler eine eigene Transform-Datei bereitzustellen und dafür zu sorgen, dass personenabhängige Einstellungen ausschließlich darin stattfinden. Dazu muss die Web.config allerdings zur Compilezeit generiert werden und darf zudem nicht mehr Teil der Quellcodeverwaltung sein.

Wie das im Einzelnen funktioniert zeigt folgende Schritt für Schritt Anleitung:

Das Publishing Target und die Config Transformation lokal konfiguriert

Comments (1) -

Henning Hoffmann
Henning Hoffmann
12/17/2014 12:03:06 PM #

Genial!

Comments are closed

Über die Autoren

Christian Jacob ist Leiter des Geschäftsbereiches Softwarearchitektur und -entwicklung und zieht als Trainer im Kontext der .NET Entwicklung sowie ALM-Themen Projekte auf links.

Marcus Jacob fokussiert sich auf die Entwicklung von Office-Addins sowie Windows Phone Apps und gilt bei uns als der Bezwinger von Windows Installer Xml.

Martin Kratsch engagiert sich für das Thema Projektmanagement mit dem Team Foundation Server und bringt mit seinen Java- und iOS-Kenntnissen Farbe in unser ansonsten von .NET geprägtes Team.

Aktuelle Kommentare

Comment RSS