2009-04-24 12 views
0

アプリケーションの設定ファイルから接続文字列を読み込み、アプリケーションをdevからuatに移動して接続文字列を変更できるようにするには、設定ファイルを使用する必要がありますすべての接続文字列がアセンブリにコンパイルされます。これは環境から環境に移動して初期接続文字列を廃止しますか?.Netとデフォルト設定

ここでベストプラクティスは何ですか?

編集:私はWebサービスだけでなく、スマートクライアントアプリケーションの両方を持っているよう

私は一般的に求めています。

+0

明示してください、これはウェブアプリケーションかデスクトップアプリですか? –

+0

あまり関係はありませんが、設定ファイル名はまったく違っていますが、それは違いのためです。 – Lucero

+0

web.configsを暗号化するのは簡単なので尋ねていました。しかし、デプロイされたデスクトップアプリや暗号化されたアプリの設定は –

答えて

2

ウェブアプリを開発する場合は、App.config xmlファイルをデスクトップアプリに、web.configを使用します。 web.configファイルで を:私は通常私が展開から除外することを、外部の設定ファイルに接続文字列を入れて "ConnectionStrings"

1

を参照してください

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

connections.config:

<?xml version="1.0"?> 
<connectionStrings> 
    <add name="connectionName" connectionString="[connection string goes here]"/> 
</connectionStrings> 

[更新]これはあなたがウェブサイトを構築していることを前提としています。それ以外の場合は、もちろん「App.config」であり、「web.config」ではありません。

+1

ではありません。私は暗号化されたmachine.config内のdev/productionボックスに接続文字列を持っています。私にはうってつけです;)あなたはそれを使ってセットアップするためのテンプレートを配布すると思います。 –

-1

キーボードにドット( '。')ボタンがありません。新しいものを買うために店に行ってください。

私はあなたの問題を理解しているかわかりません。アプリケーションの実行可能ファイルの隣にあるconfig/settingsファイルを使用してください。接続文字列のファイルを読んでください。ファイルが見つからない場合、デフォルトのURLを持つ新しい設定ファイルを作成しますか?

0

コンフィギュレーション設定をコンパイルすると、私はうんざりします。

しかし、悪意のある人があなたの設定を見ているのであれば心配です。

はそれを暗号化します。http://www.4guysfromrolla.com/articles/021506-1.aspx

をそれはデスクトップアプリケーションを配備するので、うまく動作しないように、暗号化はマシンキーに基づいていることに注意してください。

私たちは、.configファイルの接続文字列]セクションを使用して、のような文字列の名前持って
1

:私たちは、アプリケーションの設定

下INDEVと呼ばれるキーを持っているの.configファイルでも

AppDataInDevとのAppData

データレイヤーでは、InDevの値をチェックします。 trueの場合、データレイヤーはAppDataInDevを使用して初期化され、それ以外の場合はAppDataが使用されます。

これにより、prodへの移行の管理が容易になります。 prodに公開するときは、InDevの値をFalseに変更すると完了です。 (ASP.Netアプリの場合は、同時にCompilationDebugをFalseに切り替えてください)

+0

私は、indevスイッチがどのように展開を容易にするのか理解していますが、この方法ではすべての接続文字列が設定ファイルにあります。 また、コード内にdev/prodスイッチを置くと、スイッチをひっくり返すのが非常に簡単に忘れられて危険です。私はむしろアプリケーションがいくつかのデフォルトの接続文字列で接続するよりも例外をスローします。 – Fadeproof

関連する問題