4

私は、アプリケーションの設計に取り組んでいる初期段階にあります。次のようになります。

  • ウェブインターフェース
  • ウェブサービス
  • 他の既存の Web サービスの活用

特にVisual Studioのコンテキストでは、WindowsサービスとSOAは初めてです。

私の質問は、Visual Studio でこのソリューションをどのように設定すればよいですか? たとえば、

  • Web UI とサービス呼び出しを同じプロジェクトに配置し、サービスを別のプロジェクトに配置してから、上記のすべてをソリューションに配置しますか?

追跡可能でテストできるように、ソリューションの構築を開始する最良の方法は何ですか?

4

1 に答える 1

8

私は、WCF ソリューションを次のように構成するのが好きです。

コントラクト(クラス ライブラリ)
すべてのサービス、操作、フォールト、およびデータ コントラクトが含まれています。純粋な .NET-to-.NET シナリオでサーバーとクライアント間で共有可能

サービスの実装(クラス ライブラリ)
サービスを実装するためのコードと、これを実現するために必要なサポート/ヘルパー メソッドが含まれています。他には何もありません。

サービス ホスト (オプション - Winforms、コンソール アプリ、NT サービス
のいずれか) デバッグ/テスト用、または場合によっては運用用のサービス ホストが含まれます。

これにより、基本的にサーバー側のことがわかります。

クライアント側:

クライアント プロキシ(クラス ライブラリ)
クライアント プロキシを別のクラス ライブラリにパッケージ化して、複数の実際のクライアント アプリで再利用できるようにするのが好きです。これは、svcutil または「サービス参照の追加」を使用して、結果として生じる恐ろしい app.config を手動で微調整するか、ClientBase<T>またはChannelFactory<T>コンストラクトを使用して (コントラクト アセンブリを共有する場合に) クライアント プロキシを手動で実装することによって実行できます。

1 ~ n の実際のクライアント(任意の種類のアプリ)
通常、クライアント プロキシ アセンブリのみを参照するか、共有されている場合はコントラクト アセンブリも参照します。これには、ASP.NET、WPF、Winforms、コンソール アプリ、その他のサービスなど、名前を付けることができます。

そのように; 私はきれいできれいなレイアウトを持っており、それを一貫して何度も使用しています。これにより、コードがよりきれいになり、保守が容易になったと本当に思います.

これは、DotNet Rocks TV での Miguel Castro のExtreme WCF スクリーン キャスト(Carl Franklin とのスクリーン キャストを強くお勧めします)に触発されました。

于 2012-05-05T14:51:31.243 に答える