3

これについて多くのことを考えたことはありますか?個人的には、構成ファイルでエンドポイントを管理するのは面倒だと思います。どちらか一方を行うことに長所/短所はありますか?

4

8 に答える 8

5

私からの構成ファイルを支持する点のみ。

構成ファイルでエンドポイントを管理するということは、エンドポイントが変更された場合 (または、おそらく変更された場合) にアプリケーションを更新する必要がないことを意味します。

アプリケーションの複数のインスタンスを異なるエンドポイントで実行することもできます。

于 2009-06-18T13:28:14.187 に答える
3

構成ファイルがかなり大きくなる可能性があることを除けば、私自身も構成アプローチを好む傾向があります。

WCF 構成で気づいたことの 1 つは、独自のカスタム拡張機能を追加しないと XML構成では実行できないコードから実行できることがたくさんあるということです。言い換えれば、コードで構成を行うと柔軟性が高まります。もちろん、独自の拡張機能をコーディングして、構成からそれらを使用することもできます。

ただし、Visual Studio には「バグ」と見なすものがあることに注意してください。独自の拡張機能を作成して XML に含めると、VS は構成ファイルを気に入らず、エラーとしてタグ付けします。その後、ウィザードを使用して新しいサービスを追加しようとすると、構成へのエンドポイントの追加に失敗します。


これは、私自身の答えに対する一種のフォローアップです。

xml 構成ですべてを数か月使用した後、コードでエンドポイントとバインディングを構築するためにすべてを変更しています。私はそれをコードに入れるための本当に良いケースを見つけました。

WCF クライアントを含む配置可能/共有可能な .dll が必要な場合。

したがって、たとえば、リモート サーバーと通信するためのすべての WCF インターフェイスとコントラクトを含む CommonClients.dll がある場合、「アプリにドロップする必要がある 100 行の xml もある」とは言いたくありません。すべてのクライアントが機能するように.configします。この場合、すべてをコードで構築すると、はるかにうまく機能します。

.NET 3.5 の "機能" もあります。wcf 拡張機能がある場合は、完全修飾アセンブリ名を指定する必要があります。これは、拡張機能を含むアセンブリがバージョン nnumber を変更する場合、構成ファイルのアセンブリ名も変更する必要があることを意味します。短いアセンブリ名を使用し、完全な名前を必要としないように、.NET 4 で修正されたと思われます。

于 2009-06-18T13:57:05.423 に答える
2

設定ファイル内のエンドポイントは、変更されたときに再コンパイルする必要はありません。これは、アプリケーションを開発から UAT を経て本番環境に移行するときに、構成ファイルを更新するだけでよいことも意味します。

自宅で使用するために何かをコーディングするだけであれば、実際の違いはありません。ただし、ビジネス環境では、構成ファイルでエンドポイントを定義すると、あらゆる種類の頭痛の種が解消されます。

于 2009-06-18T13:29:23.857 に答える
1

app.configを使用する場合、変更に適応するためにアプリケーションを再コンパイルする必要はありません。また、まったく同じコードで複数の状況で再利用できます。最後に、エンドポイント(または変更される可能性のあるもの)をハードコーディングすることは、コーディングの慣例としては不十分です。構成ファイルを恐れないでください、それは宣言型プログラミングです。「このエンドポイントを使いたい」とあなたは言います。そしてそれはあなたのために仕事をします。

于 2009-06-18T13:31:35.150 に答える
1

私は構成ファイルのアプローチを好み、お勧めします。アプリケーションを再コンパイルせずにサーバーを変更できるため、柔軟性が大幅に向上します。セキュリティが必要な場合は、構成ファイルを暗号化できます。

単純な構成ファイルに関する最大の懸念は、エンド ユーザーによって誤って (または意図的に) 変更され、アプリがクラッシュする可能性があることです。これを克服するには、コードでいくつかのテストを行い、構成ファイルで構成が問題ないことを確認し、そうでない場合は、プログラムでいくつかのデフォルトに初期化します。この質問に対する別の回答で、それを行う方法を紹介しました。

于 2009-06-18T15:31:30.850 に答える
1

アプリケーションの内部構造をユーザーに公開したくないため、通常はプログラムによる構成を行います。私が構成可能な唯一のものはサービスアドレスですが、これでもsystem.ServiceModelではなくuserSettingsセクションに保持しています。

于 2009-06-18T14:18:09.750 に答える
0

.NET StockTrader アプリをチェックしてください。リポジトリを使用して構成データを保存し、構成を管理する別のアプリを備えています。セットアップと構造はかなり高度で、これまで WCF 構成の基本しか知らない私のような人にとっては頭を悩ませるところがありますが、一見の価値はあると思います。

于 2010-12-02T09:45:59.227 に答える
0

それは、どれだけの柔軟性が必要かという問題です。通常、私は構成ファイルのアプローチを好みます。

于 2009-06-18T13:29:25.247 に答える