2012-05-09 6 views
13

Ich frage mich, ob Leute ihre Lösung für das laufende Problem der lokalen Datenbanken und verschiedene Connectionstrings unter vielen Entwicklern in einem Projekt innerhalb der Quellcodeverwaltung veröffentlichen könnten?Wie speichert jeder Connectionstrings?

Genauer gesagt, ich spreche über das Problem, wo ein Projekt, das in der Quellcodeverwaltung und viele Entwickler mit einer lokalen Datenbank hat jeder. Jeder Entwickler hat seine eigene Verbindungszeichenfolge (benannte Instanz, Standardinstanz, Computername, Benutzername, Kennwort usw.). Jedes Einchecken überschreibt die vorherige Version, und wenn Sie die neueste Version verwenden, wird die Verbindungszeichenfolge einer anderen Person verwendet. So

, Menschen, welche Lösung verwenden Sie für dieses Problem? Zusätzliche Punkte für Erklärungen, warum ihre Lösung funktioniert, Vor- und Nachteile.

BEARBEITEN Denken Sie daran, dass diese Antwort nicht nur auf eine Unternehmensumgebung ausgerichtet sein sollte, in der Sie die vollständige Kontrolle über das Setup haben. Die richtige Lösung sollte für jeden funktionieren: Enterprise-, Startup- und Open-Source-Entwickler.

Danke!

Antwort

10

Für mich Ihre Frage scheint eine von zwei Ergebnisse zu implizieren:

  1. Eine Verbindungszeichenfolge wird im Web angegeben.Konfigurationsdatei, die generisch genug ist, um für alle lokalen Versionen der Datenbank zu funktionieren. Sie haben angegeben, dass dies keine ideale Einrichtung in Umgebungen ist, in denen Sie nicht die vollständige Kontrolle haben.
  2. Jeder Entwickler benötigt seine eigene Verbindungszeichenfolge zu liefern, die nie in die Quellcodeverwaltung überprüft wird.

Einige andere haben abgedeckt bereits das erste Szenario. Verwenden Sie localhost und folgen Sie einer Konvention für den Datenbanknamen. Für Option 2, würde ich eine Config-Quelle empfehlen angeben, die in der Quellcodeverwaltung erhalten nicht überprüft:

<configuration> 
    <connectionStrings configSource="connectionStrings.config"/> 
</configuration> 

EDIT:

connectionStrings.config

<connectionStrings> 
    <add name="Name" 
    providerName="System.Data.ProviderName" 
    connectionString="Valid Connection String;" /> 
</connectionStrings> 

Von: http://msdn.microsoft.com/en-us/library/ms254494(v=vs.80).aspx

connectionStrings.config wäre eine Datei im root des Projekts, die Sie speziell von der Quellcodeverwaltung ausgeschlossen. Jeder Entwickler müsste diese Datei bereitstellen, wenn er lokal arbeitet. Ihre Produktionsverbindungszeichenfolge kann bei der Erstellung/Bereitstellung über eine Web.config-Umwandlung ersetzt werden.

+0

Große Lösung! Genau das, was ich suchte und nicht wusste, dass das machbar war –

5

Alle unsere Entwicklungsstationen sind Setup etwas gleich.

  1. Wir verwenden eine integrierte Authentifizierung für die Datenbank, sodass kein Benutzer/Passwort gespeichert werden muss.
  2. Jeder verwendet die Standardinstanz.
  3. Da es sich um lokale Datenbanken handelt, können Sie localhost verwenden.
  4. Same Datenbank Name

So eine Verbindungszeichenfolge am Ende als könnte:

Data Source=localhost;Initial Catalog=TheDatabaseName;Integrated Security=SSPI; 

Und jeder nutzt das.

+0

Diese sehr gut auf einer Enterprise-Umgebung arbeitet. Ich habe die Frage geändert, um weitere Anforderungen hinzuzufügen. –

+0

Ich denke, es ist fair Devs zu verlangen, auf einem Nicht-Enterprise-Projekt einige lokale Konfiguration macht die eigene Umgebung bereit für die Entwicklung zu bekommen. +1 – faester

+2

Ich glaube nicht, dass es ist. Wenn Sie an vielen Projekten teilnehmen, können Sie nicht erwarten, dass der Entwickler eine Entwicklungsumgebung für jedes Projekt hat. –

0

Ich habe verwendet verschiedene Methoden gesehen.

i) Sie nur eine Live-Verbindungszeichenfolge erhalten und Entwickler machen Änderungen an dem entsprechenden Modul und es nie in überprüfen.

ii) Ein app.config wird mit den Verbindungszeichenfolgen beibehalten und es ist eine gemeinsame Datei als soweit es um die Quellcodeverwaltung geht.

iii) Im Debug-config Verbindungszeichendetails werden in der Befehlszeile von den IDE übergeben.

1

Wir haben eine Testdatenbank, die auf ihrem eigenen Server läuft. Es sind nur Testdaten, die tatsächlich jeden Abend vom Live-Server repliziert werden. Alle Entwickler verwenden dies zum Testen. Es ist wahr, Daten aber nicht kritisch, da es einen Tag alt ist. Wir speichern die Verbindungszeichenfolgen natürlich in der web.config. Ich habe eine Funktion, um die Verbindungszeichenfolge aus der web.config zu bekommen, und ich schaue nur, wenn es localhost ist, gebe die Testverbindungszeichenkette zurück. Wenn nicht, dann gebe die Live-Verbindungszeichenfolge zurück. Das funktioniert für uns. Und wir verwenden nur keine lokalen Datenbanken.