2012-04-26 16 views
9

私はさまざまな目的のために20以上のエンドポイントを作成する自己ホストC#WCFサービスを持っています。それぞれは、ポートとアドレスなどのサービスのapp.config内のいくつかの基本設定項目を使用して、コード自体で設定されます。このサービスは、テスト対象のクライアントには効果的ですが、広くテストされていません。wcf設定ファイルの長所と短所コード設定内

私は標準的なwcf設定ファイルのアプローチに少し不安でした。なぜなら、エンドユーザーが物事を混乱させてコード内のすべてをやってしまうのではないかと恐れていたからです。

エンドユーザーがニーズに合わせてカスタマイズすることができますか、ほとんどのニーズに十分なコード内のアプローチであるため、設定ファイルで設定を行うことをお勧めしますか?

+0

私は実際にこの質問に決定的な答えが欲しいと思いますが、私はそれが少し開いていることを示唆しています。しかし私は主題に関する意見に興味があります。 – Jodrell

答えて

5

WCFの主な利点の1つは、コードから離れた接続の詳細を抽象化することです。いずれかのサービスパラメータを変更する必要がある場合は、web.configから再コンパイルせずに、より簡単に行うことができます。たとえば、「ポートとアドレス」を変更する必要があるかもしれません。コード内からこれを行う場合は、再構築する必要がありますが、これは実用的ではないかもしれません。さらに、本当に必要な場合を除いて、エンドユーザーが通常web.configを迷惑にしているのはなぜか分かりません。

簡潔に言えば、設定ファイルを使用しない理由がない限り、おそらくWCFが提供する抽象化を最大限に活用するために使用するべきです。

3

あなたはいくつかの質問に

  • を自問する必要がある別の開発者が自分のマシンに異なる値を持っていますか?
  • これらの設定値を変更する必要がある他の人は、C#で動作しませんか? (例:管理者)
  • 後でパフォーマンスを調整するために、特定の値(メッセージサイズなど)を調整する必要がありますか?

答えが「はい」の場合は、設定を.configファイルに移動する必要があります。他の設定を理解しているクライアントがあなたのwcf設定を駄目にしてしまうのであれば、web.configファイルまたはapp.configファイルにconfigSource属性を追加して設定を分けることができます。誤った変更の可能性を減らすために、サブディレクトリ内のファイルを分離します。

0

あなたが.configファイルを使用する場合、コードがコンパイルされた後だけで、

は、あなたが設定を変更することができるようになります。これは、あなたの状況に応じて良いか悪いかがあります。

関連する問題