Data Transfer Objects REALMENTE são importantes? Veja DTO na prática!

Поділитися
Вставка
  • Опубліковано 13 січ 2025

КОМЕНТАРІ • 25

  • @juniorodrigues8198
    @juniorodrigues8198 Рік тому +2

    Fico feliz quando procuro um conteúdo e vejo um vídeo seu nas recomendações

    • @giarettaio
      @giarettaio  Рік тому +1

      Valeeu Junior. Tmj demais. Abraço.

  • @daniellopes2811
    @daniellopes2811 Рік тому +3

    Conteúdo cada vez melhor, parabéns continue compartilhando conhecimento, isto nos ajuda muito.

    • @giarettaio
      @giarettaio  Рік тому

      Muito obrigado, fico realmente feliz que esteja curtindo. Grande abraço

  • @raick6223
    @raick6223 Рік тому +2

    Parabéns pelo conteúdo, continue com essa qualidade top!

    • @giarettaio
      @giarettaio  Рік тому +1

      Valeeu Raick. Feliz em ler isto e ter você aqui no canal. Grande abraço.

  • @marciokoehler6269
    @marciokoehler6269 Рік тому +5

    Uma aula de API! Valeu mestre.

    • @giarettaio
      @giarettaio  Рік тому

      Muito obrigado, de coração ❤️

  • @daviribeiro6120
    @daviribeiro6120 Рік тому +1

    Muito bem explicado. Show!!!

  • @pedroa.oliveira2323
    @pedroa.oliveira2323 Рік тому +3

    Didática e exemplificação impecáveis! Muitíssimo obrigado por compartilhar conhecimento assim... como sugestão de próximo vídeo: gostaria de aprender sobre apis com clean code em dotnet, ou ao menos consumir uma

    • @giarettaio
      @giarettaio  Рік тому +1

      Falaa Pedro. Muito obrigado pelas palavras e muito obrigado por estar aqui conosco no canal. Fico realmente feliz que estejas curtindo o conteúdo.
      Sobre a sua sugestão, com certeza ela é realmente muito válida. Hoje inicia no canal uma nova série de vídeos chamada ".NET para iniciantes", onde vamos ver desde como criar um projeto, até o consumo de um API. Então fica ligado que esse tipo de conteúdo vai começar a aparecer no canal :). Grande abraço.

    • @pedroa.oliveira2323
      @pedroa.oliveira2323 Рік тому +1

      @@giarettaio TOP! Indicando já para os companheiros

  • @raykavin.meireles
    @raykavin.meireles 5 місяців тому +1

    Explicação excelente, obrigado!!

    • @giarettaio
      @giarettaio  5 місяців тому

      Tmj demais. Abraço.

  • @norte-code
    @norte-code День тому

    fazer DTO com Extension Methods é tao rapido e melhora tanto a performance com relação ao AutoMapper

  • @hernanysantos8550
    @hernanysantos8550 5 місяців тому +1

    Gosto de usar explicit operator ao inves do AutoMapper. Uma lib a menos, um controle maior sobre minhas mãos e uso de um recurso nativo. No mais show de bola

    • @giarettaio
      @giarettaio  5 місяців тому

      Com certeza. Boa abordagem também. Tmj. Abraço.

  • @rwribeiro91
    @rwribeiro91 10 місяців тому +1

    Olá, muito bom conteúdo.
    Uma dúvida. Vc acha interessante utilizar a biblioteca Mapster no lugar do AutoMapper? a experiencia que tive com Mapster foi bem interessante devido a não ser necessário criar profiles de conversão (desde que sigamos a convenção de que ambas as classes possuam atributos seguindo o mesmo padrão de nomemclatura)

    • @giarettaio
      @giarettaio  10 місяців тому +1

      Opaaa! Eu prefiro Mapster do que AutoMapper. Acho mais enxuto de usar. Porém, mostrei Mapper pelo motivo de ser o mais encontrado em empresas, no dia a dia. Eu já tenho uma pauta aqui para fazer conteúdo sobre o Mapster...Grande abraço.

  • @0xd3c0d3d
    @0xd3c0d3d 10 місяців тому +3

    Com todo respeito, mas isso foi igual trocar 6 por meia dúzia além de fazer alocações de memorias desnecessárias usando AutoMapper, faria algum sentido a DTO nesse exemplo se fosse para retornar apenas algumas propriedades para o frontend.

    • @giarettaio
      @giarettaio  10 місяців тому +2

      Opaaa! Usar DTO é adicionar uma camada a mais de segurança na aplicação, que é a camada de transferência de dados. O intuito aqui é não expor a modelo, que é o coração da nossa aplicação. Em aplicações maiores, é muito comum ver esta prática. Além de ter uma melhor segurança, com a DTO é possível utilizar demais recursos, como projectoTo() ou qualquer outro recurso.
      Sobre a alocação e memória, não será algo que irá impactar a aplicação. AutoMapper é comumente utilizado e sempre recebe melhorias referente a memória. Você pode tentar utilizar o Mapster também. Isso não é escrito na pedra, é somente uma visão (que eu acredito ser importante e eu utilizo) sobre como desenvolver softwares melhores. Grande abraço.

  • @gabrielsidnei
    @gabrielsidnei 8 місяців тому +1

    Gostaria de tirar uma dúvida.
    De acordo com o seu vídeo, o correto é expor o DTO e não a Entidade, até ai tudo bem, mas porque exatamente fazemos isso?
    Quando você fala sobre não expor o objeto do banco de dados, você quer dizer em qual sentido? Porque se for pra pessoa não ter acesso aos nomes dos atributos, o DTO está exatamente com os mesmos nomes...

    • @giarettaio
      @giarettaio  8 місяців тому

      Faala Gabriel. Quando falamos em Modelo (ou Entity em alguns casos) estamos falando especificamente do espelho do nosso banco de dados. Não é aconselhável transportar dados tendo em vista diretamente a modelo. Se temos esta modelo na Controller, vamos expor externamente nossa modelo. O DTO nada mais é do que uma forma segura de transportar estes dados, e não somente pelo nome da propriedade, mas sim por todo o mapeamento que temos dentro da API. Por isso que com a DTO podemos validar, analisar e depois sim aplicar um mapping com a modelo, ou seja, estaremos atribuindo à modelo somente depois de tudo validado e revisado. Claro que existem dezenas de formas de fazer isso (DDD explica bem isso), mas DTO é uma excelente forma para iniciar. Grande abraço.

    • @gabrielsidnei
      @gabrielsidnei 8 місяців тому

      @@giarettaio Posso estar enganado e claro, estou em busca de melhorar meus padrões, mas validar DTO não é errado?
      Digo, ele é uma camada de transporte e apenas isso, não seria incorreto usar o DTO para validação?
      E também, eu me referi ao fato de que uma entidade e um DTO, claro, tratando todos os campos entre os 2 (Ou seja, não estou privando atributo nenhum de ser exibido) teriam a mesma funcionalidade, não?
      Digo porque deu a entender que em todo e qualquer caso se deve usar DTO, quando ao que me parece só devemos usar DTO quando precisamos lidar com dados a menos do que o escopo total da entidade.
      Isso é uma dúvida antiga minha, só que nunca consegui achar nada explicando direito, não nesse ponto, obrigado por responder meu comentário!!!