2012-05-02 6 views
1

CMSとクライアントサイトをMVCプロジェクトの2つの異なるareasで構成することに慣れています。このMVCプロジェクトは、そのMVCプロジェクト内の両方の領域にサービスを提供するアプリケーション層(クラスライブラリ)を参照しています。 アプリケーション層は、ドメイン層を参照し、データ層(どちらも独自の別のクラスライブラリにあります)を参照しています。 MVCアプリケーションはアプリケーション層のみを認識します。WCFを使用してMVCプロジェクトを別々のプロジェクトに分ける

  1. しばしば非常に軽量であるクライアントのプロジェクトのうちのかなり大きなCMSプレゼンテーションのコードベースを取得:私はあるそのうちのいくつかは、それ自身のアプリケーションにCMSをseperatingの利点を希望し始めている

  2. 特定のクライアントに対してカスタム機能がない場合、同じCMSコードベースを再構築する必要はありません(CMSは新しいクライアントで変更する必要はないことが多い)。
  3. 本番環境でCMSをアップグレードできる

これを行うには、私の初期の調査から、アプリケーション層を参照するWCFアプリケーションを作成する必要があることがわかりました。ここから、CMS MVCアプリケーションとClient MVCアプリケーションは、WCFレイヤーとのみ通信します。このアプローチの

なdownfalls:

  1. は、ホスティング環境で利用可能な3個々のアプリケーションを必要としています。
  2. さまざまなアプリケーション間のメッセージのオーバーヘッド。

私が欲しいものを達成する最も簡単なアプローチですか?誰か私にいくつかの例を投げたり、同様の状況のケーススタディを理解しやすいでしょうか?

答えて

1

私はCMSをそれ自身のプロジェクトに分割しましたが、同じ名前空間に従っています。これで、クライアントのMVCアプリケーションからcms dllを参照し、ルートを設定してファイルアセット(ビュー、コンテンツ)をコピーできます。

WCFレイヤーに関しては、MVC 4のWeb APIを使いこなすことに決め、その限界を広げてWCFに移動しなければなりません。

1

基本的には、アプリケーションをどのように保つかはあなたの選択です。ビジネスロジックを後でWebサービスとして公開したい場合は、WCFを使用してCMSのビジネスロジックがクライアントインターフェイスと独立になるようにしなければなりません。広義には、クライアントのみを変更しなければならず、BLをWCFに保管している場合は、サードパーティによって開発することができます。

私があなたの場所にいた場合、私はWCFのアプローチに間違いなく行っていたでしょう。

あなたが最も簡単なアプローチを話したら、あなたのプロジェクトの一部としてBLを持ってください。しかし、やはりスケーラビリティと容易な開発の間で選択する必要があります。

関連する問題