2013-01-14 14 views
10

Web Apiを使用してチャットアプリケーションバックエンドを構築しています。エンティティをDTOにマッピングするためのポジティブな点があるかどうか、または現在のエンティティを公開し続けるべきかどうか疑問に思っていました。明確にするために、DTOと非DTOの一般的な質問を尋ねるのではなく、エンティティのほとんどのフィールドがクライアントによっておそらく使用されるため、このシナリオでそれを使用する利点があります。Web Apiチャットアプリケーションバックエンドサーバーでデータ転送オブジェクト(DTO)を使用するかどうかを指定する

+2

チャットアプリケーションの場合、SignalRはASP.NET Web APIではなく、使いたいものです:https://github.com/SignalR/SignalR – tugberk

答えて

14

はい、1人で開発した小規模なアプリケーションで、完了まで数日しかない場合は、エンティティを公開することができます。

将来的に肥大化するアプリケーションを構築する場合は、ドメインエンティティがデータの表現に最適でないため、DTOの使用を検討する必要があります。ドメインエンティティは常にクライアント側で必要なものを多かれ少なかれ、正確には持っていません。

ドメインエンティティをDTOにマップするには、AutoMapperというツールを使用できます。

いくつかのデモ:他のアプリケーションのようにhttp://www.codeproject.com/Articles/61629/AutoMapper

5

同様の効果。あなたのアプリに特別な利点はありません。 DTOの使用は本質的にデカップリングの練習であり、メソッドからプロパティを分離します。 現在、データベースオブジェクトを渡しています。そうすることは、必要以上に過ぎて必要以上に露出していることを意味する可能性があります。あなたはまた、何がどのように操作されているかを大いに意味しています。あなたは物事を分割する努力から抜け出すことになるでしょうか?

関連する問題