2

私は小さな開発チームの一員であり、現在、同じ開発データベースを共有するモデルから、私たち全員が独自の個人的な開発データベースを持っているモデルに移行しています。

このため、個々のデータベースに対応するためにWebファイルとアプリの.configファイルを管理する方法を模索しています。明らかに、誰もが自分のデータベースを指すように接続文字列を手動で変更し、チェックインする前に忘れずに元に戻す必要があるという状況を避けたいと考えています。

これは、ほとんどすべての開発チームが直面する非常に一般的な問題であると確信しています。それにもかかわらず、私はこの問題の解決策を見つけることができません。

私はxdt構文を使用したweb.config変換に精通しており、これはファイルの変更には役立ちますが、(私が知る限り)外部パラメーター値を挿入する方法を提供しません。たとえば、現在のユーザーを検出し、.config内のデータベース名をユーザー名を含むデータベース名に置き換えるための変換が必要になります。

では、開発チームでこの問題をどのように解決しますか?

ありがとう。

編集:

申し訳ありませんが、これらの回答が受け入れられないようにするかなり重要な情報を見逃しました。会社として、私たちは皆、リモートおよびリモートデスクトップを開発環境で使用しています。事実上、すべての開発者がrdpして同時に使用する1つの(強力な)開発マシンがあります。したがって、エイリアスの使用やホストファイルの変更などはすべてのユーザーに等しく適用され、必要な個別のカスタマイズは提供されません。SQLインスタンスはすでにローカルインスタンスであり、すべての開発者が使用するマシン上のローカルインスタンスにすぎません。

4

5 に答える 5

1

これを行うには2つの方法を提案できます。

  1. データベースサーバー名に同じエイリアスを使用して、接続文字列が同一になるようにします。これを行うには、hostsファイルに次の行を入力します。

    127.0.0.1 DBSERVER

  2. 接続文字列を外部ファイルに入れ、ソース管理に追加しないでください。ステージングおよびリリース構成の場合、Web構成変換を介して必要な接続文字列を追加できます。

2番目のケースでは、web.configは次のようになります。

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

編集:connectionStrings.configファイルが同じフォルダーに配置されているが、ソース管理下のリストを無視するように追加されている場合、各開発者はこのファイルの独自のコピーを持ち、変更が他の開発者に影響を与えません。物事を単純化するためconnectionStrings.config.defaultに、テンプレートとして使用できるファイルを作成して、新しい開発者がプロ​​ジェクトに参加したときにconnectionStrings.config、このファイルに基づいてデフォルト値で独自のコピーを作成できるようにすることができます。

于 2012-06-13T15:33:03.733 に答える
0

この問題の一般的な解決策は、各ユーザーの開発マシンに開発データベースを配置することです。これにより、すべてのユーザーに同じ接続文字列を設定できます。たとえば、SQLServerの場合は次のようになります。

connectionString="data source=.\SQLExpress;..." 

これを行うときは、各開発者に最新のデータベースを持たせたいので、Visual Studio 2010データベースプロジェクトを実際に確認する必要があります。これにより、非常に簡単になります(ただし、SQL Serverのみ)。

于 2012-06-13T15:29:43.020 に答える
0

オプションとして、名前付き接続文字列を使用し、web.configではなくmachine.configで定義することもできます。

于 2012-06-13T15:27:24.763 に答える
0

私たちが使用する手法は、開発マシン上のデータベース名、サーバー名(名前付きインスタンスなし)、ユーザー名、およびパスワードを標準化することです。

したがって、製品コードネームがAeroの場合は、

server =(local); database = aero; uid = aero; password = password

開発環境の場合、セキュリティは重要ではありませんが、一貫性は重要です。この手法により、他の人のapp/web.configsをチェックアウトして破壊することを回避できます。

于 2012-06-13T15:30:33.063 に答える
0

使用するデータベース(ローカル開発、テスト、リリース)を定義するためにweb.config変換を使用していますが、すべての開発者は必要に応じてローカルSQLサーバーを使用できます。これを行うには、SQLサーバーのエイリアスを設定します。これにより、Web構成の接続文字列は同じになり、開発者は自分のマシンにエイリアスを設定します。

たとえば、web.configですべて「tester1」を設定してから、開発者がローカルSQLサーバーにエイリアスを設定します。画像は次のとおりです。

ここに画像の説明を入力してください

于 2012-06-13T15:43:10.813 に答える