2013-01-14 3 views
10

Ich habe ein Back-Application-Back-Anwendung mit Web API erstellt, wo ich mehrere Datenbank-Entitäten direkt an Clients ausgesetzt. Ich habe mich gefragt, ob es irgendwelche positiven Punkte gibt, die Entitäten DTOs zuzuordnen, oder sollte ich die Entitäten weiterhin so darstellen, wie ich gerade bin. Nur um zu verdeutlichen, dass ich keine allgemeine Frage zu DTO und Nicht-DTO stelle, sondern nur die Vorteile der Verwendung in diesem Szenario, da die meisten Felder in den Entitäten wahrscheinlich vom Client verwendet werden würden.Verwenden oder nicht zu verwenden Datenübertragungsobjekte (DTO) in einem Web-Api-Chat-Anwendung Backend-Server

+2

Für eine Chat-Anwendung ist SignalR das, was Sie bevorzugen würden, nicht ASP.NET Web API: https://github.com/SignalR/SignalR – tugberk

Antwort

14

Ja, Sie können Ihre Entitäten freilegen, wenn es sich um eine kleine Anwendung handelt, die von einer Person entwickelt wurde und Ihnen nur wenige Tage zur Verfügung stehen.

Wenn Sie beabsichtigen, eine Anwendung zu erstellen, die in der Zukunft möglicherweise größer wird, sollten Sie DTO in Betracht ziehen, da Domain Entities für die Darstellung von Daten nicht optimal ist. Domain-Entities haben immer mehr oder weniger, nicht genau das, was Sie auf der Client-Seite benötigen.

Sie können ein Tool namens AutoMapper verwenden, um Domänen-Entitäten dem DTO zuzuordnen.

Einige Demo: http://www.codeproject.com/Articles/61629/AutoMapper

5

gleichen Vorteil wie in jeder anderen Anwendung. Ihre App hat keine besonderen Vorteile. Die Verwendung von DTOs ist im Wesentlichen eine Entkopplung, bei der Eigenschaften von Methoden getrennt werden. Im Moment übergeben Sie Datenbankobjekte. Das könnte bedeuten, dass Sie mehr als nötig passieren und mehr als nötig aufdecken. Sie implizieren auch sehr viel, was und wie Operationen durchgeführt werden. Was wirst du wieder aus der Anstrengung herausbringen, Dinge aufzuteilen?