LLevo 4 videos de DTO y sinceramente con un par de minutos del tuyo ya me ha quedado más claro que con el resto. Además el ejemplo sencillo pero correcto para entenderlo. MUCHAS GRACIAS.
@sebaszb4123
4 жыл бұрын
Mereces 10 veces la cantidad de suscriptores que tienes. Gracias por tu trabajo.
@ManuelZapata
3 жыл бұрын
Gracias Sebas por esas palabras! 💪
@MariaCandidaFloresPalma
Ай бұрын
Como..yo.kisi3ra..aser.todo.mlño.k.me.pifen.pero.no.puedo.ayudenme.pa el a Resibir.dinero.emmi. .teléfono.gracias.
@MariaCandidaFloresPalma
Ай бұрын
😊😅
@anthonysosa1900
3 жыл бұрын
5 minutos y ya me solucionaste el problema, gracias loco
@tovileo_
Ай бұрын
Excelente explicacion y ejemplificación
@krlosarthur
2 жыл бұрын
No solo me ha parecido útil la información sino que la forma de explicar y presentar es muy acertada. Gracias por la información 😃
@d-landjs
Жыл бұрын
Super entendible maes!
@Orozco9301
3 жыл бұрын
Excelente vídeo Manuel, muchas gracias. Excelente práctica el no implementar lógica de actualización o eliminado dentro del mapper sino dejarla directamente en los servicios. Buen día.
@forrestlyric6378
3 жыл бұрын
I know Im randomly asking but does someone know of a trick to get back into an instagram account..? I was dumb forgot my password. I love any tricks you can give me!
@devonbriar4627
3 жыл бұрын
@Forrest Lyric instablaster =)
@Orozco9301
3 жыл бұрын
@@forrestlyric6378 we're glad dude.
@jhonfredymartinezrealpe9527
4 жыл бұрын
Excelente video, deja muy claro el concepto de un DTO y su responsabilidad... Lo confundía con un VO, pero ahora todo está más claro.
@ManuelZapata
4 жыл бұрын
Excelente Jhon Fredy! Y por cierto, gracias por hacerte miembro Singleton! 🙌
@ulrichfladl7995
2 жыл бұрын
Super cool. Gracias!
@jealepive
4 жыл бұрын
Increíble información, muchas gracias! Gran trabajo!
@ManuelZapata
4 жыл бұрын
Gracias Jean!
@agustincabrera3551
3 жыл бұрын
Gran video. Voy a compartirlo para que suba la popularidad de este canal. El contenido es excelente.
@douglasperez3701
3 жыл бұрын
Excelente video, yo uso automapper y cuando parece que ya lo dominas un poco mas, siempre terminas aprendiendo algo nuevo. Saludos y éxitos!
@juliomejia9824
4 жыл бұрын
Excelente ejemplo, usamos estos mapper mucho en servicios rest en la empresa donde laboro. Saludos cordiales.
@ManuelZapata
4 жыл бұрын
Excelente! Saludos Julio.
@agusmcundom
Жыл бұрын
Gracias! Saludos desde Argentina!
@armandomen2944
3 жыл бұрын
Muy buen video, excellente manera de explicar el por que del DTO con un ejemplo, MUCHISIMAS GRACIAS.
@ManuelZapata
3 жыл бұрын
Ha sido un gusto Armando
@cristianmedina599
4 жыл бұрын
Me gusto como explicaste el tema y la organizacion del video con el indice de los mismos. Muchas gracias.
@ManuelZapata
4 жыл бұрын
Genial @cmm! Es una funcionalidad reciente de KZitem para organizar el video.
@juanpablo-mu6wq
Жыл бұрын
Excelente video Manuel! Muchas gracias por compartir tu conocimiento
@mauricioosorio4841
4 жыл бұрын
Tengo su canal en mis favoritos, complementa a mi auto aprendizaje de Ingeniería de Software.
@ManuelZapata
3 жыл бұрын
Genial Mauricio. Muchas gracias!
@enriquerivera814
4 жыл бұрын
Excelente Manuel, que pena no se cuentas con algún vídeo de las menores prácticas para la organización de un proyecto .net y el usos de paquetes y nugets es algo de lo que se habla mucho pero importante
@ManuelZapata
4 жыл бұрын
Ese es un muy buen tema, Enrique. Lo anoté en mi backlog de ideas de contenido :)
@luismartinez-ff1xu
4 жыл бұрын
@@ManuelZapata apoyo la idea, también seria bueno para spring boot, saludos.
@gastonmarengo1447
4 жыл бұрын
Muy buena info y Excelente explicacion, gracias. Los uso a los DTO en C# y sinceramente son muy utiles. Me gustaria saber mas de Automapper..... Saludos
@ManuelZapata
4 жыл бұрын
Con gusto. Saludos Gaston!
@angelmoralesb
3 жыл бұрын
Mapster es espectacular y sencillo!
@lvbernal
4 жыл бұрын
¡Muy buen video! Me llevo la idea de dejar DTOs y Mappers en proyectos separados. Y también ampliar más el API para retornar DTOs cuando la vista lo amerita, para hacer más liviano el cliente. Cae muy bien cuando el API es muy orientado a acciones o tareas en lugar de a entidades.
@ManuelZapata
4 жыл бұрын
Exacto! En ese caso que mencionas los DTO son perfectos porque los acomodas a lo que el proceso requiere. No hay que forzar ninguna entidad para que “calce”.
@SimaDamian
3 жыл бұрын
@@edwardlinares Yo tambien me llevo esa idea, siempre uso DTOs en contrato del servicio de dominio (no expongo entidades de dominio sinó DTOs) ahora si hago proyectos aparte no llego a visualizar como quedaría. Pero lo voy a tener en cuenta para proxima implementación. Digo, no se como funcionaria en mis diseños ya que las entidades a mapear no estan publicas como para llevar esa logica a otro proyecto. Tendría que analizarlo.
@kevinandres8850
Жыл бұрын
Que buena explicación!
@diegoavendano8165
3 жыл бұрын
Gracias por compartir tu conocimiento, excelente vídeo.
@hubertg1454
3 жыл бұрын
Excelente, No estoy tan perdido. pertenezco al mundo de las aplicaciones empresariales ERP y expongo su lógica y datos con DTOs para integraciones usando Web APIs , el automapper es uno de mi favoritos. seria buenisimo si me ayudaras con alguna referencia para poder hacer estas APIs con mejor arquitectura, me toca aprender a separar mejor los proyectos.
@pedromartinez9148
3 жыл бұрын
Hermano, muchisimas gracias por la info. Eres un crack explicando. Salu2 desde México.
@_jormanespinoza
3 жыл бұрын
Excelente! yo utilizo mapstruct en Java para los mapeos
@johncerpa3782
3 жыл бұрын
Excelente explicación, gracias.
@westlymeza8322
4 жыл бұрын
Muchas gracias Manuel , excelente vídeo
@ManuelZapata
4 жыл бұрын
Con mucho gusto West! 🙌
@francotorres2787
4 жыл бұрын
Muy bien explicado, hasta ahora no entendía bien como plantear un DTO, muchas gracias capo. Podrias hacer un video explicando paso a paso cómo serializar un objeto.
@ManuelZapata
4 жыл бұрын
Con gusto Franco! Si estás trabajando en C#, te recomiendo que busques en el canal hdeleon.net. Es posible que allí encuentres algo al respecto. Saludos!
@santiagotriana4726
3 жыл бұрын
Buen video 👍. Es claro, a pesar que un poco largo (innecesariamente)
@SimaDamian
3 жыл бұрын
Muy Bueno! Un caso donde si o sí aconsejo usar Dtos es los controllers de una api! tanto las entradas como salida son objetos planos serializables y no el modelo de dominio. Por lo general yo uso el modelo de dominio privado y expongo los contratos de servicios de dominio como DTOs por ende mis controllers o servicios via RPC ya están mapeados y serializables (DTOs). Saludos
@compartelo007
3 жыл бұрын
Vídeo muy interesante, gracias.
@oswaldocalderon9535
3 жыл бұрын
Excelente video, muy bien explicado. Saludos
@guillermosolia
3 жыл бұрын
Muy buen video!! Saludos desde Argentina
@ManuelZapata
3 жыл бұрын
Gracias Guillermo!
@iturraldec
Жыл бұрын
los DTO si , en PHP, pero no sabía que esa técnica tenía una termino
@itmarck
3 жыл бұрын
Como desarrollador web no puedo evitar relacionar esto con las API REST, como si éstas hicieran la función de un DTO. ¿Es válido verlo de esa forma? Porque cuando se requiere un reporte, el endpoint de la API devolvería solo los datos necesarios para el reporte. En todo caso se podría ver como que algunos endpoints de una API REST pueden funcionar como DTOs ya que en otros casos es una copia de la entidad tal cual. Corrígeme si no estoy en lo correcto y gracias por el video.
@victorwillhuber
3 жыл бұрын
mira, listo
@MrLeonardonam
4 жыл бұрын
Hola Manuel,Mi historia con los DTOs empezo cuando lei de ellos en un libro de arquitectura java,pero los he usado en su mayoria con php(Laravel). Desconocia de las librerias que mencionas al ultimo.Les dare un vistazo. Muy buenos temas en el canal. Saludos.
@ManuelZapata
4 жыл бұрын
Excelente Leonardo! Esa es la idea de estos videos. Que despierten la curiosidad por profundizar en los temas.
@lisandromendez8005
3 жыл бұрын
Excelente... Sabes? he ido aprendiendo esto por separado porque me he encontrado con problemas y busco y busco y así voy resolviendo.
@adolfogarcia7881
2 ай бұрын
Se puede meter dto en el hexagonal a pesar q ya tiene modelo y entidad?
@wilwazka2957
Жыл бұрын
¿Y los dto se usan al aplicar DDD? Según se ve, son independientes del paradigma.
@eliassilva7228
2 жыл бұрын
Muy bien explicado, los DTO use mucho en mi ultimo proyecto y sin embargo el concepto no lo tenia muy claro.
@CarlosMisaelAzabacheSabando
4 жыл бұрын
Si he utilizado antes los DTO, pero la verdad no le hallaba mucho sentido. Ya con tu genial explicación queda claro y ya entendiendo bien para que sirven y sus bondades, con mucha seguridad ya los empezaré a utilizar. Gracias por compartir.
@ManuelZapata
4 жыл бұрын
De eso se trata Carlos, de entender el trasfondo de estos patrones y cuando tiene sentido usarlos 🙌
@sebastianpineda993
Жыл бұрын
Qué significa o a qué hace referencia cuando habla de ¨dominio¨?
@antoniogonzalezrestrepo28
4 жыл бұрын
Excelente explicación, la mejor diría yo. Muchas gracias por compartir tu conocimiento.
@ManuelZapata
3 жыл бұрын
Gracias por tus palabras, Antonio!
@loo.989
Жыл бұрын
Yo no entiendo cómo no te encontré antes. Excelente video y explicación. Me estaba costando comprender este tema de los DTO y los Mappers. Creo haber entendido que la finalidad de un Mapeador es convertir un DTO a Entity o viceversa ya que, generalmente, nosotros no exponemos Entidades en nuestros Rest al Cliente, sino que exponemos DTO's por una cuestión de seguridad, cierto?. Ahora, la conversión de un DTO a Entity es porque al exponer un DTO al Cliente, allí es done por ejemplo "llenan un formulario con datos" y para poder almacenar esa info en la BD si o si debemos hacer la conversión de ese DTO a Entity para actualizar o guardar esos datos, cierto?. Es decir, si no existiera el mapeador, esos datos quedarian "flotando" no pudiendose almacenar en ningún lado, correcto?
@sc-nc6bb
2 жыл бұрын
los DTO tambien pueden ser Interfaces?
@selvin_medina
4 жыл бұрын
Hola buen día Manuel Zapata, muchas gracias, tienes vídeos sobre el patrón unit of work?
@ManuelZapata
4 жыл бұрын
Aún no tengo videos de Unit of Work, Selvin!
3 жыл бұрын
Pregunta, al utilizar el acceso a las listas en el metteingdto no está ejecutándose una consulta quitando la responsabilidad única? Por lo que veo se utiliza EF.
@markosace
4 жыл бұрын
Excelente browwwww
@ManuelZapata
4 жыл бұрын
🙌
@eduardobeltran7721
Жыл бұрын
Este concepto de DTO es el resultado de Store Procedure con resultados equivalentes y que puede ser probado de la DB. Porque no se encuentran ejercicios y/o ejemplos con SP ?
@ManuelZapata
Жыл бұрын
Se podría aplicar con procedimientos almacenados sin ningún problema. Por qué no se encuentran ejemplos con SP? Supongo que por el origen del concepto. Esto lo ves más fácilmente en lenguajes como Java o C#, pero no significa que no aplique a otros ambientes.
@ricardotovar4597
2 жыл бұрын
Hola, una consulta ,El DTO facilita el trabajo al frontend ya que no va a tener que hacer muchas solicitudes sino que con una sola consulta ya podra mostrar en pantalla la informacion, caso contrario al backend que el tiene que realizar todas esa logica :?
@MrJpfdesign
2 жыл бұрын
Muy buen video, cual es la diferencia que tiene con un ViewModel? Saludos
@ManuelZapata
2 жыл бұрын
Te refieres a un ViewModel de MVVM?
@carloscastillo9154
2 жыл бұрын
Hola maestro gracias por tu video, muy bueno. Una duda, Si tengo varias DTOs para una misma entidad "SalesMan", que muestran informacion distinta, por ejemplo, Un DTO para mostrar ID, Nombre y Fecha, y otro DTO para mostrar NroOficina, Departamento. ¿Cual seria la convencion para nombrar esas clases DTOs para diferenciarlas?
@ManuelZapata
2 жыл бұрын
Carlos, yo creo que la mejor convención es la que te permita identificar fácilmente cuál es el propósito de cada uno.
@fabriziopastor6146
3 жыл бұрын
¿Alguien me puede explicar que sígnica poder serializar un objeto ? :( lo que encuentro en internet me resulta algo confuso :'v
@gelordtube
3 жыл бұрын
he encontrado proyectos donde utilizan también objetos ViewModel que se encontraban en el lado de cliente (MVC C#) es buena practica utilizar DTOs junto con las clases ViewModel?
@williammartin4968
3 жыл бұрын
Muchas gracias por este gran video. Agradezco una consulta. ¿DTO sería equivalente a aplicar el patrón CompositeEntity en la capa de persistencia, o qué diferencias tienen? Gracias.
@ManuelZapata
3 жыл бұрын
Hola Martín. Honestamente, no sabia que te referías con Composite Entities hasta qyue busqué el concepto. Un DTO no es lo mismo. Es algo mucho más genérico.
@yordanaquino6590
2 жыл бұрын
Buenos días estimado Manuel, se puede decir que el Dto es como las vistas de la base de datos?
@JuanM-ck4jg
2 жыл бұрын
Hola , sabes como podria hacer si yo tengo 2 objetos, el primero es Estudiante con codigo, Nombre , apellido, nota , usuarioregistro y usurioActualizo (Este primero tiene los 3 valores) y el segundo solo tiene codigo, nota y usurioActualizo, se me origino este problema debido a que cuando envio los datos del objeto con menos parametros , mi objeto origen pierde los datos de usuarioregistro , nombre y apellido.(Se me origino ya que yo deseo actualizar ese registro por entity y obviamente al actualizar me registra los otros como null :C , me ayudarias mucho respondiendo ojo que es un ejemplo parecido al que tengo ) Saludos.
@oscarmera3580
4 жыл бұрын
Excelente Manual, yo utilizo orika y dozer en Java pero siempre he tenido la duda si utilizar un mapper puede ser menos eficiente en cuanto a rendimiento que hacerlo manualmente . Saludos
@ManuelZapata
4 жыл бұрын
Yo creo que eso depende de la complejidad del mapeo, Oscar.
@diegobejardelaguila8614
2 жыл бұрын
Osea el DTO por ejemplo te serviria para crear una tabla con detalle de ventas donde esta el igv, la cantidad, precio de descuento, etc. Cosas que no estan directamente en la base de datos si no ya cuando es procesada la informacion. ? Este podria ser uno de los usos de los dtos?
@mr.moment2548
2 жыл бұрын
basicamente el DTO es una capa de abstraccion de la entidad(es)
@tusbackingtrackes
2 жыл бұрын
Un DTO hace lo mismo que los API Resources de Laravel?
@aguspe532
2 жыл бұрын
Hola! muy buen video! ¿Hay alguna explicación en Python? Slds!!
@ManuelZapata
2 жыл бұрын
La explicación es independiente del lenguaje, Agus. Te puedes apoyar en las data classes para implementarlos.
@aguspe532
2 жыл бұрын
@@ManuelZapata Gracias!
@Lucaskpp7
3 жыл бұрын
u earn a sub mi amigo
@maximilianominetto524
4 жыл бұрын
Lo he usado para un proyecto que tengo, vos sabés que al Mapper lo conocía como Converter en otras fuentes, es bueno saber si nombre original, más si es Martin Fowler. Ah y uso una clase abstracta que implementa la conversión de las listas de dto y entidades y delego a las concretas que implementen su mapeo. Saludos.
@ManuelZapata
4 жыл бұрын
Excelente lo de la clase abstracta, Maximiliano! De casualidad también le pones genéricos para indicar el tipo de los DTO y de las entidades?
@maximilianominetto524
4 жыл бұрын
@@ManuelZapata No tengo el código pero creo que si Mapper en java
@jhonnyjamifernandez447
4 жыл бұрын
Yo no estoy asiendo servicios rest pero necesito muchas veces serializar las entidades que me trae el EntityFramework, pero cuando se actualiza alguna tabla del EF se me actualiza todo y se me pierde la anotacion de serializable en las clases, hay alguna manera de solucionar esto o deberia usar DTO?. Muchas gracias.
@ManuelZapata
3 жыл бұрын
Ni idea como solucionarias el problema, Jhonny. Yo por lo general trato de no tocar clases generadas justamente por ese problema que mencionas.
@edustreamimg
3 жыл бұрын
Hola Manuel. Una duda un repositorio se entendería como un servicio?. Cuales son los límites que definen a un servicio? El servicio es una estructura formalmente definida en UML?
@ManuelZapata
3 жыл бұрын
Un repositorio tiene la responsabilidad del acceso a datos. Un servicio puede tener múltiples significados dependiendo de la arquitectura.
@miguelnunez8659
4 жыл бұрын
Hola Manuel, muchas gracias por compartir, si lo uso en c# y vb .NET, la duda que me queda en el ejemplo mostrado del mapeador no deberías controlar la entidad si es null ???
@ManuelZapata
4 жыл бұрын
Hola Miguel. Tienes razón. Habría que validar la entidad. Saludos!
@saksahgx4011
2 жыл бұрын
LIKE :D
@ghss5088
3 жыл бұрын
El DTO es perfecto para implementarlo en proyectos no muy grandes y más si no vas a documentar algo así con swagger (que en base al objecto de entrada y de salida forma su mensajería). Pongamos el caso que utilizamos un DTO para 4 endpoint diferentes y un día se nos da la gana de querer monetizar nuestra API y decidimos implementarle swagger, nuestro cliente verá un montón de variables de entrada y de salida (ya que serán estos DTO), y no sabrá qué sobra y qué no.... sin hablar que por parte del código esto se vuelve insostenible en el tiempo, al tener una entidad que no sabremos cuando ocupa cierto atributo y cuando no (debido a que es muy genérico).
@ManuelZapata
3 жыл бұрын
Gracias por el aporte, Gonzalo. Muy interesante. Deja varias cosas a analizar.
@RexGanesAdventures
4 жыл бұрын
Si dto termina siendo lo mismo que el objeto del dominio, hago que el API devuelva el objeto del dominio o creo un dto igual?
@ManuelZapata
4 жыл бұрын
Yo crearía de igual forma un DTO. Con eso me aseguro que el objeto de dominio no salga de la capa de acceso a datos. Alguna veces esto es necesario porque no siempre el objeto de dominio es serializable. Esto me ocurre en un proyecto en Python en que estoy trabajando.
@vcordero2010
3 жыл бұрын
Excelente explicación Manuel, una opción para el Mapeo pudiera ser el uso de Generics ? en vez delegar en otra librería esta responsabilidad ? Saludos.
@clibercastillo5489
4 жыл бұрын
Buenaso, gracias por el video, es normal tener varios DTOs para una entidad? Estoy construyendo una API REST y al hacer un GET no quiero tener el id de la entidad, pero para el POST si lo necesito, Entonces crearía dos DTOs?
@ManuelZapata
4 жыл бұрын
Hola Cliber. Por supuesto. Ese es un enfoque válido: tener varios DTOs por entidad. Ese es el trade-off que menciono en el video debes balancear. Tienes un DTO grande con muchas propiedades, o DTOs pequeños con solo las propiedades específicas del caso.
@clibercastillo5489
4 жыл бұрын
Gracias Manuel, saludos.
@javierchiquitoavellan1666
3 жыл бұрын
El mapeador sería como una clase de utilidad, verdad?
@tecnoaprendizcursosdeprogr4870
4 жыл бұрын
Dónde puedo encontrar un curso de analisis y diseño de sistemas? Sabrán de alguna página? Gracias!
@ManuelZapata
4 жыл бұрын
Busca a Likecomtic en Udemy. Ellos tienen un curso de arquitectura de software.
@tecnoaprendizcursosdeprogr4870
4 жыл бұрын
@@ManuelZapata Muchas gracias, no eres egoista y hablas de otras plataformas, eres un verdadero informático!! :)
@ManuelZapata
4 жыл бұрын
Con todo gusto!
@Coderoll
4 жыл бұрын
Yo siempre he pensado que las entidades deben de quedarse en la capa de acceso a datos y por ejemplo en un API lo que debemos exponer es un DTO ya sabes eso de SRP
@ManuelZapata
4 жыл бұрын
Exactamente Oscar! Coincido contigo.
@carlosdavila4999
3 жыл бұрын
Trabajar de esa manera con el tiempo el código se acopla muy fácilmente y duplicas mucho código, es mejor tener proyecciones de la información al contexto que lo requiera...
@CarlosRodriguez-ww1fv
4 жыл бұрын
llámenme loco, pero yo prefiero mapear mis entidades a mano sin hacer contextos con orm's
@ManuelZapata
4 жыл бұрын
No estás loco, Carlos! Muy desarrolladores lo hacen así.
@lires575
4 жыл бұрын
Yo abusé de los pobres DTO. Por eso, ahora odio hacer Mappers 😂😂
@ManuelZapata
4 жыл бұрын
Jajaja suele pasar.
@piratamorgan2998
3 жыл бұрын
Confirmo que quité tu bigote con Photoshop, y quedas mejor sin bigote. Saludos desde medallo 😝
Пікірлер: 130