Websitedateien unter Quellcodeverwaltung
Aktualisiert: November 2007
Einige der Dateien, mit denen Sie in einer Website arbeiten, erfordern bei Verwendung der Quellcodeverwaltung besondere Beachtung.
Datei Web.config
Weil die Datei Web.config ein zentraler Speicher für anwendungsweite Konfigurationseinstellungen ist, ist es wahrscheinlicher als bei einzelnen Seiten, dass sie von mehreren Entwicklern gleichzeitig ausgecheckt wird. Solange verschiedene Entwickler nicht gleichzeitig dieselben Einstellungen ändern, kann die Zusammenführungsfunktionalität der Quellcodeverwaltung die Änderungen während des Eincheckvorgangs einbauen.
Sie können die Datei Web.config zum Bearbeiten manuell öffnen. In diesem Fall können Sie die Datei vorher explizit auschecken oder sich auf das implizite Auschecken beim Bearbeiten der Datei verlassen – ganz wie bei einer ASP.NET-Seite. Außerdem wird die Datei Web.config auch von einer Reihe von Dienstprogrammen in Visual Web Developer geändert. Wenn Sie in Visual Web Developer z. B. das Dialogfeld Verweis hinzufügen verwenden, um einen Verweis auf ein Clientprojekt, einen Webdienst oder eine Assembly im GAC (Global Assembly Cache) zu erstellen, wird der neue Verweis in der Datei Web.config gespeichert. In den meisten Fällen checkt Visual Web Developer die Datei Web.config nach Bedarf automatisch aus. Wenn Sie der Webanwendung z. B. einen neuen Verweis hinzufügen, ohne die Datei Web.config ausgecheckt zu haben, checkt der Befehl Verweis hinzufügen die Datei Web.config aus und fügt den Verweis hinzu.
Doch nicht jeder Prozess, der die Datei Web.config ändert, checkt sie automatisch aus. Im Folgenden sind die Dienstprogramme aufgeführt, die ein manuelles Auschecken der Datei Web.config erfordern, bevor Sie die Konfiguration der Anwendung bearbeiten:
Das Websiteverwaltungs-Tool (der Befehl ASP.NET-Konfiguration im Menü Website) checkt die Datei Web.config nicht automatisch aus. Wenn Sie versuchen, Änderungen im Websiteverwaltungs-Tool zu speichern, ohne die Datei Web.config zuvor ausgecheckt zu haben, meldet das Tool den Fehler, dass die Datei Web.config schreibgeschützt ist. Die Lösung besteht darin, die Datei Web.config vor dem Verwenden des Websiteverwaltungs-Tools explizit auszuchecken.
Das ASP.NET-MMC-Snap-In checkt die Datei Web.config nicht automatisch aus und zeigt einen Fehler an, wenn Sie versuchen, Konfigurationsänderungen zu speichern, bevor die Datei ausgecheckt wurde.
Verschlüsselte Abschnitte der Datei Web.config
Wenn Sie die Datei Web.config mit verschlüsselten Abschnitten konfiguriert haben, ist ein Zusammenführen nicht mehr möglich. Entschlüsseln Sie die Konfigurationseinstellungen vor dem Zusammenführen.
Ausführliche Informationen über das Verschlüsseln von Abschnitten der Datei Web.config finden Sie unter Verschlüsseln von Konfigurationsinformationen mithilfe der geschützten Konfiguration.
Datei "Global.asax"
Ebenso wie die Datei Web.config speichert auch die Datei Global.asax Informationen, die für die gesamte Website gelten, und auch sie befindet sich im Stammverzeichnis der Website. Insbesondere enthält die Datei Global.asax Ereignisbehandlungscode für Ereignisse, die für die Anwendung oder die Sitzung ausgelöst werden. Im Allgemeinen können mehrere Entwickler die Datei Global.asax gefahrlos auschecken und sich darauf verlassen, dass die Zusammenführungsfunktionalität des Quellcodeverwaltungsanbieters eventuelle Konflikte beim Einchecken löst.
Ressourcendateien
Ressourcendateien (.resx) speichern Informationen im XML-Format. Ressourcendateien können entweder lokal für eine Seite oder global für die Webanwendung gelten. Eine lokale Ressourcendatei wird im Ordner App_LocalResources unter einem Namen gespeichert, der auf dem Namen der Seite basiert, der sie zugeordnet ist. Zum Beispiel erhält eine lokale Ressourcendatei für die Seite Default.aspx den Namen Default.aspx.resx. Globale Ressourcendateien werden im Ordner App_GlobalResources gespeichert. Der Name dieser Dateien ist beliebig, Voraussetzung ist nur die Dateinamenerweiterung .resx.
Lokale Ressourcendateien werden nicht automatisch ausgecheckt, wenn Sie eine Seite auschecken. Deshalb müssen Sie die entsprechende Ressourcendatei vor dem Bearbeiten entweder explizit oder implizit auschecken. Ähnliches gilt für das Arbeiten mit globalen Ressourcendateien, nur dass hier die Wahrscheinlichkeit von Dateikonflikten größer ist. Sie sollten vor dem Auschecken einer Seite, die von einer globalen Ressourcendatei abhängt, in der Quellcodeverwaltung prüfen, ob die globale Ressourcendatei bereits durch einen anderen Entwickler ausgecheckt wurde.
In beiden Fällen können Konflikte beim Einchecken durch die Zusammenführungsfunktionalität gelöst werden, da die Ressourcendatei das XML-Format besitzt.
Datenbank für die Anwendungsdienste
Wenn Sie ASP.NET-Mitgliedschaft, Rollenverwaltung oder Profile verwenden, werden die Anwendungsinformationen für diese Dienste in einer Datenbank gespeichert. Standardmäßig ist die Datenbank lokal in Bezug auf die Webanwendung – sie wird im Ordner App_Data der Webanwendung als Datenbankdatei gespeichert. Die Dienste erfordern außerdem Einträge in der Datei Web.config. Weitere Informationen finden Sie unter Erstellen und Konfigurieren der Datenbank für die Anwendungsdienste für SQL Server.
Wenn die Website unter Quellcodeverwaltung steht, kann das Speichern der Anwendungsdaten in einer lokalen Datenbank aus folgenden Gründen Probleme verursachen:
Jeder Entwickler muss die Datenbankdatei auschecken, um die Anwendung lokal zu debuggen. Sie können eine Anwendung nicht mit einer schreibgeschützten Version der Datenbankdatei debuggen, sonst treten Laufzeitfehler auf.
Die Datenbank wird im Repository der Quellcodeverwaltung als Binärdatei gespeichert. Infolgedessen kann das Quellcodeverwaltungssystem die Änderungen nicht zusammenführen, wenn mehrere Entwickler die Datenbankdatei ausgecheckt haben. Stattdessen wird bei jedem Einchecken die vorherige Version überschrieben.
Wenn Sie mit einer Webanwendung unter Quellcodeverwaltung arbeiten, verwenden Sie zum Speichern der Daten der Anwendungsdienste am besten eine freigegebene Datenbankdatei, die nicht unter Quellcodeverwaltung steht. Sie können für die Anwendungsdaten z. B. einen zentralen Server verwenden, der Microsoft SQL Server ausführt. Alle Entwickler arbeiten dann mit den aktuellen Daten. Sie können dann außerdem die Sicherungseinrichtungen der Datenbank verwenden, um die Anwendungsdaten zu verwalten. Ausführliche Informationen über das Auswählen einer Datenbank für Anwendungsdaten finden Sie unter Erstellen und Konfigurieren der Datenbank für die Anwendungsdienste für SQL Server.
Assemblydateien
Sie können dem Ordner Bin der Website Assemblys (DLL-Dateien) hinzufügen und dann im Code auf diese Assemblys verweisen. Sie müssen eine DLL-Datei nur auschecken, wenn Sie sie mit einer neueren Version überschreiben möchten.
Quellcodeverwaltungssysteme können die Änderungen nicht zusammenführen, wenn mehrere Entwickler die binäre DLL-Datei gleichzeitig ändern. Deshalb ist die bewährte Vorgehensweise, beim Auschecken einer DLL-Datei, die Sie ändern und dann wieder einchecken möchten, durch Festlegen der entsprechenden Option das mehrfache Auschecken nicht zuzulassen und somit zu verhindern, dass andere die Datei gleichzeitig auschecken.
Verweise auf Client- oder Klassenbibliotheksprojekte
Während des Arbeitens mit der Webanwendung können Sie der Projektmappe ein Client- oder Klassenbibliotheksprojekt hinzufügen und in diesem Bibliotheksprojekt kompilierbare Komponenten erstellen. Sie können in der Webanwendung dann einen Verweis von Projekt zu Projekt erstellen, um auf die kompilierte Ausgabe des Bibliotheksprojekts zu verweisen. Wenn Sie ein Klassenbibliotheksprojekt erstellen, könnten Sie innerhalb des Projekts z. B. eine Assembly mit Dienstprogrammklassen oder benutzerdefinierten Steuerelementen erstellen und in der Webanwendung auf diese Assemblys verweisen.
Wenn Sie einen Verweis auf ein anderes Projekt erstellen, erstellt Visual Web Developer eine Kopie der kompilierten Ausgabe dieses anderen Projekts – sofern diese Ausgabe vorhanden ist. Aus diesem Grund müssen Sie ein Projekt erstellen, bevor Sie von einem anderen Projekt darauf verweisen. Die kompilierte Ausgabe von Clientprojekten steht nicht unter Quellcodeverwaltung. Deshalb müssen Entwickler nicht befürchten, alte Binärdateiversionen zu löschen oder quellcodeverwaltete Versionen zu erstellen oder zu überschreiben.
Siehe auch
Konzepte
Übersicht über die Quellcodeverwaltung für Websites
Weitere Ressourcen
Erstellen und Konfigurieren der Datenbank für die Anwendungsdienste für SQL Server