Código más Limpio con el Patrón MVC y Service Layer
HTML-код
- Опубликовано: 13 сен 2024
- En este video te mostrare como puedes separar tu capa de servicio de tu framework MVC ASP .Net
Si quieres apoyarme y darme para una cerveza puedes hacerlo por aquí: paypal.me/Hecto...
Puedes apoyarme desde 0.5 USD al mes uniéndote como miembro al canal aquí: / @hdeleonnet
💻 CURSO de Patrones de Diseño en C# y ASP .Net: www.udemy.com/...
La falta de respeto tanto a mí como a cualquier otra persona y el SPAM son razones de bloqueo en mi canal.
"Copyright Disclaimer Under Section 107 of the Copyright Act 1976, allowance is made for "fair use" for purposes such as criticism, comment, news reporting, teaching, scholarship, and research. Fair use is a use permitted by copyright statute that might otherwise be infringing. Non-profit, educational or personal use tips the balance in favor of fair use"
Sigueme en twitter ⇒ / powerhdeleon
Sigueme en facebook ⇒ / hdeleon666
Mi Sitio web ⇒ hdeleon.net
#programación #asp #csharp
Si te ha gustado el video puedes apoyarme dejándome un Pulgar arriba y comentando
Curso de Patrones de Diseño en C# integrados en ASP .Net: www.udemy.com/course/aprender-patrones-de-disenos-aplicados-en-asp-net/?referralCode=11528C0122AD145CE970
rock
Papi que belleza de video mi rey muchas gracias
Justo llevaba días buscando algo como esto, agradecido con el de arriba y contigo
¡Más que una cerveza te debo un barril por tus contenidos! ¡Muchísimas gracias por todo tu trabajo, excelentes explicaciones como siempre!
ERES EL MEJOR GRACAIS
Un video de arquitectura limpia 🙏
¡POR FAVOR!
Igualmente hay que tomar el camino más largo y duro, comprar el libro del tio bob y leerlo todo jaja
Impecable.... excelente video explicando todo tan claro... Muchas Gracias
hey Hector una vez más me has salvado, estaba buscando como implementar el patrón de Injeccion de Dependecias usando esa misma estructura y casi me hago un lío(enrredo) pero con tu explicación quedó exquisito. Saludos desde RD
Gracias Hector, lo más importante...has entregado el concepto, entonces lo pude aplicar en .net core 8. Profesores como vos, escasos.
Cuando leí en el titulo Service Layer me emocione pensé hablarías del Service Layer de SAP, aun así muy buen video como siempre
El Service Layer de SAP B1 es mediante sencillo, puesto que tan pronto te autentiques, es Gestión de servicios REST
@@angelmorales5250 si de hecho, pero pues nunca esta de mas ver videos sobre su funcionamiento
Contenido simple pero de gran ayuda.
Ufff que bueno, siempre enseñas cosas nuevas y modelos que me encanta, los logro implementar en mis proyectos pese a que mucho no lo enseñan en la uni, pero con tus vídeos aprendo lo que no se ve en otro lado, gracias
Próximo video del Hectorsillo acerca de MVC => Haciendo un Ecommerce de bebidas en una hora xD 🤘🏽
Gracias por tus vídeos 🇧🇷🇪🇸
Gracias por la info, he sido iluminado y justo estaba buscando algo así, te la rifas 🤘🏽
Excelente video, aunque yo lo conozco como microservicios. ¡Más videos de arquitectura! ¡Se agradece el aporte!
Muchas gracias por su contenido, son muy claras sus explicaciones y muy buenos sus ejemplos.
Justo estaba buscando este tema, gracias doc!
Muy bueno el video, este patrón es fundamental cuando se tiene lógica de negocio compleja, en ese caso se puede aplicar el patrón repository para las llamadas a servicios exterbos y bases de datos y la capa service para la lógica de negocio y orquestación entre los datos obtenidos de diferentes fuentes.
El Get y Post para invocación de servicios via post en vez de enviar una clase de modelo específica esnmejor enviar un generic y se puede usar para cualquier caso.
muy bueno el video, un próximo video podría ser de clean arquitecture :D. Éxitos
Así sea pago!!!!
Qué pasa si quiero agregar más lógica de negocio, no sólo ir a consumir el servicio, digamos que en ese actionresult tengo que ir a consultar a tres servicios y después lo que me devuelvan los tres mostrarlos en una sola vista, también lo haría en la misma clase de services?
Adicional tengo otra duda, mvc es bueno para páginas dinámicas o recomiendas otra tecnología?
Sencillo pero directo, como deberian ser las clases en la Uni jajaja.
ahhh muy bueno el video... lo que si a mi me confunde mucho, en la empresa que estoy trabajando usan otros nombres:
- Service (para controlador)
- Application (para la de servicio)
- bueno y despues la vista... medio raro los nombres que usan, no?
Excelente, qué función tendría en ese punto la carpeta Models por defecto, seria bueno eliminarla?
Muy buen video, me ha ayudado mucho a entender el porque en su dia me dijeron que me separara de la carpeta Models apra crearlos en una capa de soporte aparte. Me surje una duda y es que debo tener una capa mas adicional de persistencia. La capa de persistencia obtiene datos de una Base de datos y esos datos que se obtienen han de pasar a la capa de servicio para posteriormente pasar al controlador. Tengo la duda de como administrar esa capa de persistencia hay alguna manera de que funcione tambien con async task? usando otra capa como la de persistencia?
Entiendo y comparto totalmente esta filosofia de trabajo PERO al hacer este ejemplo pero con acceso a base de datos me obliga a confirgurar el connectyiionString en dos lugares distintos el acceso a la base de datos, en el PROGRAM de la capa VISTA/WEB implementando "builder.Services.AddDbContext(options => options.UseSqlServer(connectionString));" pero tambien en la capa de Models/Datos en el OnConfiguring debo agregar optionsBuilder.UseSqlServer(**La conex**), lo hice sin hacerlo dos veces apuntando a un lugar comun pero quisiera saber si estoy equivocado !
Hector, Me gusto el tema (Naturalmente en producción puede crecer mucho mas). Ahora como ves el tema de MVC frente a Blazor!? Nota: Feliz día del Rockero un poco atrasado. jejej.
Voy para tu curso de patrones de diseño, aunque dudo tener el tiempo de culminarlo....lo voy a intentar!!
Muchas gracias por la explicación de este patrón, una pregunta este patrón también se pude hacer con un api rest ?
Si
Sublime
Me gustaría aprender a hacer un programa web, de hecho un punto de venta pero tenerlo en web, pero no tengo idea de cómo comenzar. Que debo aprender para hacer este software que sea web, que sea como una pag a la que entres y te abra el software, ojalá me explique y puedas ayudarme en qué debo aprender por favor y muchas gracias
Me gusta, podrias conectar con FireBase (BD realtime)
He tenido una duda existencial, en Web API para devolver los datos al cliente se utilizan los DTO's para no devolver las clases/entidades que representan el modelo de datos. Con respecto a MVC, me parece curioso que este tipo de informacion se devuelve como modelos de vista ViewModel, investigando se dice que el concepto entre DTO y ViewModel en MVC es el mismo practicamente, sin embargo y esto lo tengo claro los ViewModel para MVVM son mas complejos. Pero existe un debate entre usar ViewModel o DTO para MVC, la documentacion de Microsoft menciona que los ViewModel es recomendable que sean clases planas y con poca o ninguna implementacion o comportamiento (que en MVVM los ViewModels si lo tienen). ¿Cual es tu opinio al respecto? Espero haberme dado a entender.
Y muy buen video.
PD: Estoy comenzando el de patrones de diseño, muy buenas impresiones.
hola! encontraste respuesta a esto? 👀
@@MaryEmi100 amiga creo que estan confundidos DTO y ViewModel sirven para lo mismo y es para mostrar datos al usuario y no usar nuestros modelos que interactuan con la base de datos, ahora bien MVVM es un patron de arquitectura asi como lo es MVC y N Capas, OJO: ViewModel y MVVM son cosas distinta, incluso .NET tiene una plantilla para el desarrollo web llamado razor page que utiliza la arquitectura MVVM tambien esta es usada en el desarrollo de aplicaciones moviles .
Excelente video Héctor! Podrías hacer este mismo pero usando .Net framework (no .Net Core)?
Cuál sería la diferencia? Lo digo por el paso de agregar el servicio scoped a la clase startup.
Muchas gracias!
Hay algo llamado Unity(no el de videojuegos) para la inyeccion
@@hdeleonnet gracias le daré un toque para probarlo en mi siguiente proyecto
@@naylord5 unity container
Ahora en .NET 6.0 no existe el archivo "startup.cs", la inyección de dependencias se hace ahora es en el archivo "Program.cs" y yo llorando porque no aparecía el archivo ese :v
así lo puse en el archivo "Program.cs" y funcionó:
using MVC.Service;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
builder.Services.AddScoped();
Excelente video Hector! Realmente me ayudó muchísimo este video, así haríamos que nuestros endpoints de controladores sean mucho mas pequeños (cosa que en mi proyecto necesito), pero estaba indeciso en la manera de hacerlo.
Solo tengo una pregunta, veo que creas 1 servicio por entidad (en este caso la entidad Post), ¿Es esto buena idea? Pregunto porque tocaría para cada entidad crear su Interfaz respectiva y luego inyectar cada 1 de estas en el Startup.cs del proyecto de MVC.
Imaginatre en un proyecto que tenga 130 entidades o una BD con 130 tablas (este es mi caso jeje) o más ¿seria buena idea crear 1 servicio por cada entidad? Me imagino esto muy caótico la verdad... Pensaba algo así como que crear 1 servicio por "concepto de negocio" o creo que según Domain Driven Design sería por "Bounded Context" ¿Que opinas?
Excelente canal Hector!
Agregando a esto, seria bueno ver como a esto le sumas 1 capa más, la capa de DAL (data access), usando patron repositorio o algun otro patron que recomiendes más? Asi combinamos 2 abstracciones.
El servicio debe tener responsabilidad de modulo, puedes abstraer las acciones comunes en una Interfaz
Podrías hacer un video de como creaste la clase Startup...
Esa existe en todo proyecto de asp mvc .net core
Estimado, esa clase viene por defecto al momento de crear el proyecto.
@@hdeleonnet aaaaaaa, yo tengo el proyecto mvc común 😓😓😓
Voy a tener que actualizarme 🙄🙄🙄
Como podria crear una libreria de clases asi en visual code?
No me queda claro como esto simplifica O mejora el modelo de 3 capas tradicional...
Hola, estoy usando MySQL con entity core, pero no me funciona el LazyLoading. ¿Sabes como hacerlo funcionar?
He trabajado con EntityFramework con SQLServer y sin problema funciona.
Saludos
Usa eager loading, creo que es mejor