2017-02-10 14 views
0

私のアプリケーションは、3つのプロジェクト適切な方法

  • ドメイン

  • ui.web.mvc webservices.webapi

に分かれているWebサービスを消費します

ドメイン内2モデルあります

Car 
Engine 

私のwebservicesプロジェクトは、データを取得するためにドメインオブジェクトを参照します。 mvcプロジェクトが複雑なviewmodelまたはdtoを使用してデータをwebserviceに送信し、 webserviceがそのモデルをドメインにマップする場合、 viewmodelまたはdtoが両方のプロジェクト(webservicesおよびmvc)に存在すると考えるのが普通ですか?

+0

ドメインオブジェクトとそれらを取得するWebサービス?奇妙なセットアップ。 Webサービスを永続化実装(つまりリポジトリ)として抽象化してみませんか?ドメインオブジェクトを返す/格納する必要があります。私はこのようなシナリオでDTOのポイントを見ません。ほとんどのビューモデルでは、パーシスタンス層に配置されていません。 –

+0

私のリポジトリはinsdeドメインプロジェクトです。私は別のプロジェクトにリポジトリを移動することをお勧めしますか?私のビューモデルは永続層ではなくmvc層の内側にあります。 – user1765862

+0

WSは何をしていますか? –

答えて

0

enter image description here

(図示せず:MVCはまた、具体的な実装を参照する、またはXML構成を使用し、セットアップIoCコンテナに順番にするかが必要になります)手始めに

、あなたのMVCアプリケーションべきWebサービスについて知らないそれはインタフェースの背後で抽象化されるべきである(Dependency Inversion原理)。

public HomeController(IRepository repository, IService service) 
{ 
    this.repository = repository; 
    this.service = service; 
} 

私の前提は、ドメインオブジェクトにも永続性の注釈があることです。他の2つのオプションはa)貧血モデルまたはb)ドメインモデルであり、どちらも極端であるため、これが最も一般的なケースです。仮定が正しい場合は、Repoとサービスの両方がドメインオブジェクトで動作する必要があります。私はあなたが言及したDTOのための場所を見ません。

'パターン'は単純です:ドメインオブジェクト(サービスまたはレポから)を取得し、ビジネスロジックを呼び出してサービス/レポに戻します。