2013-01-14 2 views
10

나는 여러 개의 데이터베이스 엔티티를 클라이언트에 직접 노출하는 웹 API를 사용하여 채팅 응용 프로그램 백엔드를 구축했습니다. 엔티티를 DTO에 매핑하는 데있어 긍정적 인 점이 있는지 궁금 해서요. 아니면 내가 현재있는 것처럼 엔티티를 계속 노출해야하는지 궁금합니다. 명확히하기 위해 DTO와 비 DTO의 일반적인 질문을 요구하는 것이 아니라 엔티티의 필드 대부분이 클라이언트에 의해 사용되기 때문에이 시나리오에서이 질문을 사용하는 것의 장점을 분명히하기 위해 명확하게 설명합니다.웹 API 응용 프로그램 백엔드 서버에서 데이터 전송 객체 (DTO)를 사용하거나 사용하지 않으려면

+2

채팅 응용 프로그램의 경우 SignalR은 ASP.NET 웹 API가 아닌 다음과 같은 것을 사용하는 것이 좋습니다. https://github.com/SignalR/SignalR – tugberk

답변

14

예. 한 사람이 개발 한 작은 응용 프로그램으로 개체를 노출 할 수 있으며 며칠 만 완료하면 개체를 노출 할 수 있습니다.

향후 성장할 응용 프로그램을 만들려는 경우 도메인 엔터티가 데이터 표현에 적합하지 않으므로 DTO 사용을 고려해야합니다. 도메인 엔티티는 항상 클라이언트 측에서 필요한 것보다 많거나 적습니다.

도메인 엔터티를 DTO에 매핑하려면 AutoMapper이라는 도구를 사용할 수 있습니다.

일부 데모 : 다른 응용 프로그램에서 같은 http://www.codeproject.com/Articles/61629/AutoMapper

5

같은 장점. 앱에는 특별한 이점이 없습니다. DTO를 사용하는 것은 본질적으로 디커플링 (decoupling) 운동이며, 메소드와 속성을 분리합니다. 현재 데이터베이스 개체를 전달하고 있습니다. 그렇게하면 필요한 것 이상을 지나쳐 필요한 것 이상을 노출시킬 수 있습니다. 당신은 또한 많은 일, 어떻게 그리고 어떻게 운영되는지를 암시합니다. 당신이 물건을 나누기위한 노력에서 벗어나려고하고있는 것은 무엇입니까?

관련 문제