14

ソース管理内の1つのプロジェクトで、ローカルデータベースの進行中の問題と、多くの開発者の間で異なる接続文字列の解決策を投稿できるかどうか疑問に思いました。

具体的には、ソース管理下にあり、それぞれにローカルデータベースを持つ多くの開発者がいるプロジェクトの問題について話します。各開発者には、独自の接続文字列(名前付きインスタンス、デフォルトインスタンス、マシン名、ユーザー名、パスワードなど)があります。チェックインするたびに以前のバージョンが上書きされ、最新バージョンをプルすると、他の誰かの接続文字列が使用されます。

それで、人々、あなたはこの問題のためにどの解決策を使っていますか?ソリューションが機能する理由、長所、短所を説明するための追加のポイント。

編集 この回答は、セットアップを完全に制御できるエンタープライズ環境のみを対象にすべきではないことに注意してください。適切なソリューションは、エンタープライズ、スタートアップ、オープンソースの開発者など、すべての人に役立つはずです。

ありがとう!

4

4 に答える 4

10

私には、あなたの質問は2つの結果のうちの1つを暗示しているようです。

  1. 接続文字列は、データベースのすべてのローカルバージョンで機能するのに十分な汎用性のあるWeb.configファイルで指定されます。これは、完全に制御できない環境では理想的な設定ではないことを示しています。
  2. 各開発者は、ソース管理にチェックインされない独自の接続文字列を提供する必要があります。

他のいくつかはすでに最初のシナリオをカバーしています。localhostを使用し、データベース名の規則に従います。オプション2の場合、ソース管理にチェックインされない構成ソースを指定することをお勧めします。

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

編集:

connectionStrings.config

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

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

connectionStrings.configは、ソース管理から明確に除外したプロジェクトのルート内のファイルになります。各開発者は、ローカルで作業するときにこのファイルを提供する必要があります。本番接続文字列は、ビルド/デプロイメント時にWeb.configトランスフォーメーションを介して置き換えることができます。

于 2012-05-09T22:03:30.763 に答える
5

すべての開発ステーションは同じように設定されています。

  1. データベースに対して統合認証を使用しているため、ユーザー/パスワードを保存する必要はありません。
  2. 全員がデフォルトのインスタンスを使用します。
  3. これらはすべてローカルデータベースであるため、localhostを使用できます。
  4. 同じデータベース名

したがって、接続文字列は次のようになる可能性があります。

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

そして、誰もがそれを使用します。

于 2012-05-09T21:38:44.987 に答える
1

独自のサーバーで実行されるテストデータベースがあります。これは、ライブサーバーから毎晩実際に複製されるテストデータにすぎません。すべての開発者はこれをテストに使用します。これは真のデータですが、1日経過しているため、重要ではありません。もちろん、接続文字列はweb.configに保存します。web.configから接続文字列を取得する関数があり、ローカルホストであるかどうかを確認してテスト接続文字列を返します。そうでない場合は、ライブ接続文字列を返します。これは私たちのために働きます。また、ローカルデータベースは使用していません。

于 2012-05-09T21:44:16.170 に答える
0

さまざまな方法が使われているのを見てきました。

i)ライブ接続文字列のみを維持し、開発者は関連するモジュールに変更を加え、チェックインしないでください。

ii)app.configは接続文字列で維持され、ソース管理に関する限り共有ファイルです。

iii)debug configでは、接続文字列の詳細がIDEからコマンドラインに渡されます。

于 2012-05-09T21:42:14.240 に答える