none
Trabalhando com DTOs RRS feed

  • 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 { getset; }
            public string FirstName { getset; }
            public string LastName { getset; }
            public string Username { getset; }
        }

    Muito Obrigado.


    • Editado _Manigold_ sexta-feira, 8 de dezembro de 2017 19:03
    sexta-feira, 8 de dezembro de 2017 17:41

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



    sexta-feira, 8 de dezembro de 2017 20:32
    Moderador
  • 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
    sexta-feira, 8 de dezembro de 2017 21:49

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



    sexta-feira, 8 de dezembro de 2017 20:32
    Moderador
  • 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
    sexta-feira, 8 de dezembro de 2017 21:49