2012-05-05 3 views
4

私はアプリケーションの設計作業の初期段階にあります。私は特にVisual StudioののコンテキストでWindowsサービスとSOAに新しいです、他の既存のWebサービス SOA開発者は、通常どのようにVisual StudioでWebサービス(WCF)ソリューションを構築しますか?

を活用

  • Webインターフェイス
  • Webサービス
  • :以下があります。

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

    • Web UIとサービスコールを同じプロジェクトに入れ、私のサービスを別のプロジェクトに入れ、すべてをソリューションに入れますか?

    私のソリューションをトレーサブルにしてテストできるようにするには、どのような方法が最適ですか?

答えて

8

私はこのような私のWCFソリューションを構築したい:

契約(クラスライブラリ)
は、すべてのサービス、オペレーション、障害、およびデータコントラクトが含まれています。

サービス実装(クラスライブラリ)の純粋な.NETツー.NETシナリオでは、サーバとクライアントの間で共有することができ
サービスを実装するためのコード、およびこれを達成するために必要な任意のサポート/ヘルパーメソッドが含まれています。他に何もない。

サービスホスト(複数可)(オプション - Winformsの、コンソールアプリケーション、NTサービスすることができます)
は、生産のための可能性、サービスのデバッグ/テスト用のホスト(複数可)、またはが含まれています。

これは基本的に私に物事のサーバー側を与えます。クライアント側では

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

1-nは、実際それが共有されていた場合、クライアント(アプリのいずれかのタイプ)
は、典型的に、あまりにも、クライアントプロキシのアセンブリを参照するか、あるいは契約アセンブリます。これは、ASP.NET、WPF、Winforms、コンソールアプリケーション、その他のサービスにすることができます - 名前を付けます。

そうです。私は素敵できれいなレイアウトを持っています。私はそれを何度も何度も繰り返し使用しています。これは私のコードをよりきれいにして維持しやすくしたと思います。

これは、Carl FranklinとDotNet Rocks TVのMiguel CastroのExtreme WCF screen castにインスパイアされました。

関連する問題