WCFのホストとロジックのプロジェクト分割


WCFを開発を行うにあたり、今後を考慮してホストとロジックを分けるように指摘されました。

てっきり、WCFサービスアプリケーションプロジェクトにてWCFサービスを追加した場合、デフォルトで.svcと.svc.csで分けられているので、これでよいのかと思ったら、どうやらそうではなくて、プロジェクトを分けることでconfigファイルがメインで、あとは参照するだけのプロジェクト(ホスト)と、残りのロジック部分で構成されるプロジェクト(ロジック)の二つに分けるようにという内容と判明し、調査が必要となりました。

.svcとconfigはホストのプロジェクトに配置しなければならなそうで、残りはなんとかすれば別プロジェクトに配置できるのでは・・・と予想し、下記のような対応を取ることにしました。

  • とりあえず、ホストにてWCFサービスを追加
  • 作成されたファイルのうち、.svc以外を削除
  • ロジックにてWCFサービスを追加
  • ホストのWeb.Configのsystem.serviceModel-servicesタグで、追加されたserviceタグのnameとcontractをロジックの方の値に変更
  • ホストの作成された.svcファイルのServiceをロジック側に変更

なお、ロジックのプロジェクトは通常のクラスライブラリとかのプロジェクトでも問題ないと思うのですが、デバッグの都合上WCFサービスライブラリプロジェクトにしています。(スタートアッププロジェクトにしてデバッグすると、WCFテストクライアントが起動してくれるので・・・)

http://cid-065dced8e05792ea.skydrive.live.com/embedrowdetail.aspx/istb16Blog/WcfServicePractice.zip

ちなみに、Clientの方は作ってないので基本的に動きません。

追記:Client部分も作成したバージョンにアップしたファイルを置き換えました。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。