ドキュメント索引機能を使用する以外の理由で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サービスを作成しますか?
私は最良のルートがわからないので、どんな考えが本当に役立つでしょう。
OK - サービス層をWCFサービスとして書くように思えます。 WCFを使用する前にWCFを使用していないので、インターフェイスを作成することができます。もしそうなら、私たちはmockingフレームワークを使ってこれらを簡単にモックできます。 Service1.CreateObject(オブジェクトobj)は、この記事のドメインモデルの詳細については言及したくないので、単なる一般的な例です。 –
それは逆です。インターフェイスと実装を作成し、WCFによってWSDLが生成されます。 EFのCodeFirstと同様です。 – jgauffin