2

Webレイヤーにリポジトリレイヤー(およびnhibernate実装)、サービス(bussiness)レイヤー、およびasp.netmvcを備えたアプリケーションがあります。

小さなSilverlightアプリケーションも作成する必要があるため、いくつかのwcfサービスを作成します。これはDTOを使用するように要求しますが、DTOを作成する方法と場所がわかりません。

私はいくつかのリンク(このようなもの)を見たので、dtoとマッピング手順の自然な場所は私のデータ/リポジトリレイヤーのどこかにあるようですか?

しかし一方で、Fowlers DTOパターンを見ると、マッピングはドメインレイヤーのどこかにあるアセンブラーで行われているように見えますか?

私は混乱しています...これを達成するためのベストプラクティスは何ですか?

どうもありがとう!

4

2 に答える 2

3

このリンクは少し時代遅れですよね?そして、それは単にクールなものを提示するだけであり、DTOを行うための自然な方法ではありません。

これでAutoMapperができました。マッピングを別のアセンブリに配置しますか、それともあなた次第です。

于 2009-11-25T13:04:25.617 に答える
1

概念的には、DTOは通常データレイヤー(DTOはデータレイヤーに依存しているため)とビジネスレイヤー(DTOがビジネスレイヤーをデータレイヤーから分離するために使用されている場合)の間にあります。

Silverlightアプリでビジネスレイヤーを使用する場合は、次のようになります。

Silverlight-> WCF-> BL-> DTO-> DL-> DB

これにより、MVCアプリは次のようになる可能性があります。

ASP.NET MVC-> BL-> DTO-> DL-> DB

とはいえ、これを行うための「正しい」方法は実際には1つではありません。どちらのアプリでも、要件に合っている場合は、ビジネスレイヤーやDTOをバイパスできます。ASP.NET MVCアプリをWCFレイヤーと通信させて、ビジネスレイヤーインターフェイスの観点からUIの一貫性を高めることができます。

多くの場合、ベストプラクティスを探しているとき、答えは本当に「状況によって異なります」です。

于 2009-11-27T11:52:43.063 に答える