Usuário com melhor resposta
Trabalhando com DTOs

Pergunta
-
Boa tarde a todos, estou começando a usar DTOs mas não domino o conceito, porém achei super interessante,pois só envio o que realmente deve ser enviado, mas pintou uma duvida que é a seguinte:
Sempre que trabalhar com DTos minha classe principal não vai ser usada?
Por exemplo tenho a classe User e crio um dto UserDto, aí que bate a duvida eu só trabalho em cima do UserDto deixando minha classe User de "enfeite"? ou seja fica no projeto a "toa"?:
public
class
User
{
public
int
Id {
get
;
set
; }
public
string
FirstName {
get
;
set
; }
public
string
LastName {
get
;
set
; }
public
string
Username {
get
;
set
; }
}
public
class
UserDto
{
public
int
Id {
get
;
set
; }
public
string
FirstName {
get
;
set
; }
public
string
LastName {
get
;
set
; }
public
string
Username {
get
;
set
; }
}
Muito Obrigado.
- Editado _Manigold_ sexta-feira, 8 de dezembro de 2017 19:03
Respostas
-
Olá,
Sua classe User é a de negocio, o dto server apenas para transporte. Levar os dados da interface ate o domínio ou domínio ate interface, evitando assim expor o domínio direto na interface ou api
- Editado welington jrModerator sexta-feira, 8 de dezembro de 2017 20:37
- Marcado como Resposta _Manigold_ sábado, 9 de dezembro de 2017 23:55
-
Você pode fazer o seguinte:
- Classe de dados DAL (Data Access Layer): UserDAL
- Classe de negócio: UserNegocio
- Classe DTO (data transfer object): UserDTO
- Camada Web ou Windows: Preenche os dados da DTO e manda para a classe de negócio e a classe de negócio chama a DAL. A camada do usuário (Web ou Windows) nunca acessa direto a camada DAL.
Espero que tenha entendido.
Você não precisa ter uma classe User com Get e Set. Só a DTO ou DTL tem isso.
Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.
Mauricio Junior - Comunidade www.ecode10.com- Marcado como Resposta _Manigold_ sábado, 9 de dezembro de 2017 23:55
Todas as Respostas
-
Olá,
Sua classe User é a de negocio, o dto server apenas para transporte. Levar os dados da interface ate o domínio ou domínio ate interface, evitando assim expor o domínio direto na interface ou api
- Editado welington jrModerator sexta-feira, 8 de dezembro de 2017 20:37
- Marcado como Resposta _Manigold_ sábado, 9 de dezembro de 2017 23:55
-
Você pode fazer o seguinte:
- Classe de dados DAL (Data Access Layer): UserDAL
- Classe de negócio: UserNegocio
- Classe DTO (data transfer object): UserDTO
- Camada Web ou Windows: Preenche os dados da DTO e manda para a classe de negócio e a classe de negócio chama a DAL. A camada do usuário (Web ou Windows) nunca acessa direto a camada DAL.
Espero que tenha entendido.
Você não precisa ter uma classe User com Get e Set. Só a DTO ou DTL tem isso.
Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.
Mauricio Junior - Comunidade www.ecode10.com- Marcado como Resposta _Manigold_ sábado, 9 de dezembro de 2017 23:55