2

ドキュメント索引機能を使用する以外の理由でSharepointに座っていたため、ビジネスでアプリケーションを再構築することにしました。nTierアプリケーションでサービスレイヤーファサードとしてWCFサービスを使用する必要があります

私たちは、ASP.NET MVC3でC#を使用して新しいアプリケーションを作成することに決めました。私たちは全体のアーキテクチャを決定しようとしています。

私は次のようなものを考えていた:

  • コア - リポジトリ
  • サービスとして公開Entity Frameworkの(コードファースト)またはNHibernateは - - ドメインオブジェクト(POCOさん)
  • データこの層は、カプセル化しますあらゆるビジネスロジックとファサードとして機能します。これは、さらなるモジュールに分解される可能性があります。
  • UI(MVC) - コントローラとビュー。

これはすべて、AutofacなどのDIコンテナを使用してまとめられます。

我々はまた、我々は、サービス層とデータリポジトリを模擬できるようにする必要がありますので、当社のコントローラをテストするためのユニットテストを書くことができるようにしたいなど

ので - 良い全体的なアーキテクチャのパターンのような上記の音を行いますかなり標準的なビジネスアプリケーションのために?

などのアイデアは、データ、サービス、UIは、コアを参照できるということではなくUIはだけは本当にデータの実装の詳細について知っているサービスレベルのコンポーネントに話をしていないでしょう

私の次の質問は、いくつかのことですWCF Services/ASP.NET Web APIのようなアプリケーションの外部でいくつかの機能を公開したいと考えています。

あなたの考えでは、何が最良の選択肢でしょうか。 WCFでサービスレイヤーを構築し、MVCのコントローラからこれを呼び出しますか?もしそうなら、これはテスト可能か、Webサービスのラッパーを書く必要がありますか?これは時間がかかりますか? (すなわちService1.CreateObject(オブジェクトobj);)

OR

は、サービス層を書き込み続けてC#クラスに、当社のサービス層を呼び出して、我々は必要なだけの機能を公開別のエンティティとしてWebサービスを作成しますか?

私は最良のルートがわからないので、どんな考えが本当に役立つでしょう。

答えて

2

は、我々はMVCアプリケーション以外のアプリケーションがサービスに話をするつもりされている場合

が依存nTierアプリケーションにおける当社のサービス層のファサードとしてWCFサービスを使用する必要があります。

  • MVC3が唯一のアプリです:確かに:あなたAINT gonnoはそれ
  • 他のアプリがあまりにも必要があります。それをやりなさい。

あなたの考えでは、何が最良の選択肢でしょうか。 WCFでサービスレイヤーを構築し、MVCのコントローラからこれを呼び出しますか?もしそうなら、これはテスト可能か、Webサービスのラッパーを書く必要がありますか?これは時間がかかる可能性があります

具体的なサービスクラスを使用しないでください。サービスインターフェイスを使用します。問題が解決しました。

私の次の質問いくつかの点で、我々は我々のアプリケーションの外にいくつかの機能を公開したいとしているされていること、すなわちWCFサービス/ ASP.NETのWeb API

私はあなたが同じWCFを意味することを願っていますサービス。別のエンティティは、当社のサービス層を呼び出して、我々は必要なだけの機能を公開としてC#クラスで、Webサービスを作成します。(すなわちService1.CreateObject(object obj)

は、サービス層を書いて続行しますか?

ehh。どのような方法がService1.CreateObject(object obj)ですか?それは間違っているように見える。

+0

OK - サービス層をWCFサービスとして書くように思えます。 WCFを使用する前にWCFを使用していないので、インターフェイスを作成することができます。もしそうなら、私たちはmockingフレームワークを使ってこれらを簡単にモックできます。 Service1.CreateObject(オブジェクトobj)は、この記事のドメインモデルの詳細については言及したくないので、単なる一般的な例です。 –

+0

それは逆です。インターフェイスと実装を作成し、WCFによってWSDLが生成されます。 EFのCodeFirstと同様です。 – jgauffin

1

WCFサービスを使用するのが適切な方法です。 (これをweb-apiとしてホストする必要があり、web-apiはhttpを超えています)。

mvcアプリケーションでは、エンドポイントURLでサービスを使用できます。

時間係数は、サーバー間の接続(MVCアプリケーションのWebServerとWCFservicesをホストするサーバー)によって異なります。それはボトルネックではありません。

まだMVCコードのユニットテストを行うことができます(サービスレイヤの呼び出しを嘲笑することができます(Moq/NMockを使用していますか?RhinoMock ...))

関連する問題