2012-03-31 8 views
0

私のチームはWeb開発(ASP.NET、WCF)を行っており、皆がDBを変更して独自のサンプルデータを使用する必要がある初期段階にあります。ASP.NETで設定を分割する方法は?

私たちは専用のDBサーバーを使用しており、各開発者は別々のDBに対して開発したいと考えています。

ソース管理方式で開発者ごとに接続文字列を設定する機能が必要なようです。明らかに、カスタム設定が必要な他の構成設定があり、最後に、すべての開発者に共通の構成設定を維持する必要があります。

誰もがベストプラクティスを提案できますか?

PS手動で設定を微調整することなく(環境名を設定している場合を除く)、ビルドされたアプリケーションをさまざまな環境(テスト、ステージ、プロダクション)にデプロイする場合も同様の問題が発生します。

答えて

2

異なる環境への配置には、構成変換を使用できます。それだけで十分です。 Scott Hanselmanはそれについてかなり素晴らしいビデオを投稿しましたhere

個々の開発者のdbの問題については、私が考えることができる特に優雅な解決策はありません。各開発者にユニークな構成を持たせることは、実際には「ベストプラクティス」ではありません。一度誰もがコードを統合し始めると、誰もがユニークなdbと構成セットに対してコードを書いてしまうと、あなたの手にとって非常に醜い状況に陥る可能性があります。 2つの開発者が同じようにコードを実行することはほとんどありません。

これは私が推奨していることであり、過去に行ったことです。

  1. テスト用データベースサーバーの1つのデータベースに、データベース用の基本フレームワークを作成します。
  2. ソリューションの一部としてデータベースプロジェクトを作成します。
  3. .NetのSchema Compareに組み込まれているので、既存のデータベースをデータベースプロジェクトに書き込むことができます。
  4. 誰かがデータベースを変更する必要がある場合は、まずデータベースプロジェクトで最新のものを入手してから変更を加え、手順4を繰り返して変更をプロジェクトに追加します。
  5. このメソッドを使用すると、開発者は「メイン」データベースと一致するデータベースのローカルインスタンスを展開し、変更を加え、変更をプロジェクトに書き戻すことも非常に簡単です。
+0

あなたのようなDB開発の手順が既にあります。私は、「独自の構成」が異なる動作につながることに確信しています。個別の接続文字列を必要とする専用のSQL Serverマシン上で、開発者ごとに個別のデータベースを用意したいと考えました。 私は、時間の経過とともに、「ユニーク」に保たれるような意味でのカップルの設定が増えると思います。 統一されたweb.configのために 'localhost'を使用する(つまり、ローカルSQLサーバーを実行する必要があります)ことを強制するのは大変です。 – tishma

+0

両方の提案に感謝します。デプロイメントのクイックスタートは間違いなく便利で、環境ごとにWeb.Configを生成するように調整することもできましたが、非標準的な方法として、私はそうしないでしょう。また、Schema Compareは特定の前提のもとで動作するようにも見えます。時には、テーブルの変換が些細な場合に、データを破損しないようにチョークすることがあります。 – tishma

0

OK。

多分、これほどエレガントではないかもしれませんが、プロジェクトがデバッグ構成を使ってビルドされているときに、別の場所から接続文字列を読み込むことを選択しました。

私たちはレジストリを使用しており、手動でメンテナンスする必要があります。

コードを追加する必要がありますが、レジストリを読み取るコードはdebug(#ifデバッグ)でのみコンパイルされるため、本番環境でのパフォーマンスは低下しません。

これも役立ちます。

乾杯

v。

関連する問題