0

次のような状況があります: Web サイトと Web サービスを作成する必要がありますshare a part of the functionalities

これが、コードを 2 回書きたくない理由です。

私は次のアーキテクチャを考えました:

MyApp.BusinessLogic --> ここで DataModel をデータベースに保存します

MyApp.DataAccess -> DataModels & エンティティ & マッピング


MyApp.UI.Models -> ViewModels

MyApp.UI.ServiceLayer -> ビジネス ロジックにアクセスし、Web サイトの UI ViewModel を作成し、ViewModel を DataModel に変換して、BusinessLogic レイヤーを使用して保存します。

MyApp.Web サイト


MyApp.WS.Models - >Ws モデル。これらは、クライアントと WS の間で渡されるオブジェクトになります。

MyApp.WS.ServiceLayer -> ビジネス ロジックにアクセスし、Web サービスの WS モデルを作成し、WS.Model を DataModel に変換して、BusinessLogic レイヤーを使用して保存します。

MyApp.WebService


アーキテクチャはやり過ぎですか?どのような問題が発生しますか? ASP.NET MVC Web サイトのコントローラーに問題はありますか?

4

2 に答える 2

1

アプリケーションを設計するときは、このようにします。私の唯一の問題は、モデルをビュー モデルにコピーすることです。これを克服する最善の方法は、AutoMapper を使用することです。

ただし、サービスを変更するとアプリが壊れるリスクが高いため (およびその逆)、いくつかの単体テストを作成します。単体テストは早い段階でそれを教えてくれます。

于 2013-03-24T22:21:53.313 に答える
0

基本的に定義してください:)

コードの使用量を減らしたい場合は、サービスを作成してから、アプリでそれを使用してみませんか?

それで、あなたが次のようなものを持っているなら...

Foo.DataAccess
-Foo.BusinessLogic
--Foo.ServiceLayer

次に、それを次のように参照します:
Foo.WebService (表示/更新用のモデルを含む... ただし、おそらく外部的に単純化します)

次に、
Foo.WebApp
を使用し、この消費する Foo.Webservice を使用して、代わりにデータ呼び出しを行います。

UI と Web サービス モデルを使用すると、コードの重複が増えます。Fluent 検証などを使用して、サービスに検証を処理させ、基本的な検証システムを強化することができます。

于 2013-03-24T22:22:43.390 に答える