2013-01-14 4 views
10

Ho un back-end per applicazioni di chat creato utilizzando Web Api dove espongo diverse entità di database direttamente ai client. Mi chiedevo se ci sono dei punti positivi per mappare le entità alle DTO o devo continuare a esporre le entità come sono attualmente. Giusto per chiarire che non sto chiedendo una domanda generale DTO vs non DTO ma solo i vantaggi di usarlo in questo scenario poiché la maggior parte dei campi nelle entità verrebbero probabilmente utilizzati dal client.Per utilizzare o non utilizzare gli oggetti di trasferimento dati (DTO) in un server back-end di applicazioni Web Chat

+2

Per un'applicazione di chat, SignalR è ciò che si preferisce utilizzare, non API Web ASP.NET: https://github.com/SignalR/SignalR – tugberk

risposta

14

Sì, puoi esporre le tue entità se questa è una piccola applicazione sviluppata da una sola persona e hai solo pochi giorni per terminarla.

Se si intende creare un'applicazione che potrebbe crescere in futuro, è consigliabile considerare l'utilizzo di DTO perché le entità di dominio non sono ottimali per la rappresentazione dei dati. Le entità di dominio hanno sempre più o meno, non esattamente ciò di cui hai bisogno sul lato client.

È possibile utilizzare uno strumento chiamato AutoMapper per associare entità dominio a DTO.

Alcuni demo: http://www.codeproject.com/Articles/61629/AutoMapper

5

stesso vantaggio come in qualsiasi altra applicazione. Non c'è alcun vantaggio specifico nella tua app. L'uso di DTO è essenzialmente un esercizio di disaccoppiamento, che separa le proprietà dai metodi. Al momento si stanno passando oggetti di database. Fare ciò potrebbe significare che stai passando più del necessario e esponendo più del necessario. Stai anche implicando un grande affare, cosa e come vengono eseguite le operazioni. Di nuovo, cosa hai intenzione di uscire dallo sforzo di dividere le cose?