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

Комментарии • 59

  • @hdeleonnet
    @hdeleonnet  3 года назад +10

    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

  • @fernandoriveralopez9715
    @fernandoriveralopez9715 4 месяца назад +1

    Papi que belleza de video mi rey muchas gracias

  • @munecrons9290
    @munecrons9290 Год назад +1

    Justo llevaba días buscando algo como esto, agradecido con el de arriba y contigo

  • @mauroalesandroperalta1223
    @mauroalesandroperalta1223 Год назад +2

    ¡Más que una cerveza te debo un barril por tus contenidos! ¡Muchísimas gracias por todo tu trabajo, excelentes explicaciones como siempre!

  • @muerete0000
    @muerete0000 3 месяца назад

    ERES EL MEJOR GRACAIS

  • @diego_solis
    @diego_solis 3 года назад +7

    Un video de arquitectura limpia 🙏

    • @Keiktu
      @Keiktu 3 года назад +1

      ¡POR FAVOR!

    • @Keiktu
      @Keiktu 3 года назад +1

      Igualmente hay que tomar el camino más largo y duro, comprar el libro del tio bob y leerlo todo jaja

  • @gastonmarengo1447
    @gastonmarengo1447 3 года назад +3

    Impecable.... excelente video explicando todo tan claro... Muchas Gracias

  • @lewisburgos9799
    @lewisburgos9799 2 года назад +1

    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

  • @CubidesH
    @CubidesH 6 месяцев назад

    Gracias Hector, lo más importante...has entregado el concepto, entonces lo pude aplicar en .net core 8. Profesores como vos, escasos.

  • @batman4523
    @batman4523 3 года назад +5

    Cuando leí en el titulo Service Layer me emocione pensé hablarías del Service Layer de SAP, aun así muy buen video como siempre

    • @angelmorales5250
      @angelmorales5250 3 года назад +3

      El Service Layer de SAP B1 es mediante sencillo, puesto que tan pronto te autentiques, es Gestión de servicios REST

    • @batman4523
      @batman4523 3 года назад

      @@angelmorales5250 si de hecho, pero pues nunca esta de mas ver videos sobre su funcionamiento

  • @nelsonesmarlinrosario7290
    @nelsonesmarlinrosario7290 3 года назад

    Contenido simple pero de gran ayuda.

  • @Z_0x00
    @Z_0x00 3 года назад +2

    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

  • @Krior07
    @Krior07 3 года назад +5

    Próximo video del Hectorsillo acerca de MVC => Haciendo un Ecommerce de bebidas en una hora xD 🤘🏽

  • @elyanegontijo
    @elyanegontijo 3 года назад +1

    Gracias por tus vídeos 🇧🇷🇪🇸

  • @lorenzomolina6191
    @lorenzomolina6191 3 года назад +1

    Gracias por la info, he sido iluminado y justo estaba buscando algo así, te la rifas 🤘🏽

  • @leah9227
    @leah9227 3 года назад +1

    Excelente video, aunque yo lo conozco como microservicios. ¡Más videos de arquitectura! ¡Se agradece el aporte!

  • @linamarcelacastroguevara
    @linamarcelacastroguevara 3 года назад

    Muchas gracias por su contenido, son muy claras sus explicaciones y muy buenos sus ejemplos.

  • @juanpablotapiasuana9679
    @juanpablotapiasuana9679 3 года назад

    Justo estaba buscando este tema, gracias doc!

  • @sgssergio
    @sgssergio Год назад

    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.

  • @ricardomisme355
    @ricardomisme355 3 года назад +3

    muy bueno el video, un próximo video podría ser de clean arquitecture :D. Éxitos

    • @maheza36
      @maheza36 3 года назад +1

      Así sea pago!!!!

  • @elmenor560able
    @elmenor560able 3 года назад +1

    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?

    • @elmenor560able
      @elmenor560able 3 года назад

      Adicional tengo otra duda, mvc es bueno para páginas dinámicas o recomiendas otra tecnología?

  • @josecartin5197
    @josecartin5197 3 года назад

    Sencillo pero directo, como deberian ser las clases en la Uni jajaja.

  • @atl.academy
    @atl.academy 3 года назад

    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?

  • @robertvaldez6695
    @robertvaldez6695 9 месяцев назад

    Excelente, qué función tendría en ese punto la carpeta Models por defecto, seria bueno eliminarla?

  • @AlejandroMarkus
    @AlejandroMarkus Год назад

    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?

  • @FernandoZamudioC
    @FernandoZamudioC Год назад

    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 !

  • @fernandopoveda5485
    @fernandopoveda5485 3 года назад

    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!!

  • @luisosoriofit
    @luisosoriofit 3 года назад

    Muchas gracias por la explicación de este patrón, una pregunta este patrón también se pude hacer con un api rest ?

  • @jonathansantosgomez3948
    @jonathansantosgomez3948 3 года назад

    Sublime

  • @jorgeaguayo3897
    @jorgeaguayo3897 3 года назад +1

    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

  • @cristianmendozaJesusTeAma
    @cristianmendozaJesusTeAma 3 года назад

    Me gusta, podrias conectar con FireBase (BD realtime)

  • @brandonmanuelventuraumana1035
    @brandonmanuelventuraumana1035 3 года назад +1

    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.

    • @MaryEmi100
      @MaryEmi100 Год назад

      hola! encontraste respuesta a esto? 👀

    • @laamenazard
      @laamenazard Год назад +1

      @@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 .

  • @naylord5
    @naylord5 3 года назад +1

    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!

    • @hdeleonnet
      @hdeleonnet  3 года назад +1

      Hay algo llamado Unity(no el de videojuegos) para la inyeccion

    • @naylord5
      @naylord5 3 года назад

      @@hdeleonnet gracias le daré un toque para probarlo en mi siguiente proyecto

    • @DrSoulsR
      @DrSoulsR 3 года назад +1

      @@naylord5 unity container

  • @perenganoperengano2424
    @perenganoperengano2424 Год назад

    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();

  • @Keiktu
    @Keiktu 3 года назад

    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!

    • @Keiktu
      @Keiktu 3 года назад

      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.

    • @hdeleonnet
      @hdeleonnet  3 года назад +1

      El servicio debe tener responsabilidad de modulo, puedes abstraer las acciones comunes en una Interfaz

  • @jorgemayorga777
    @jorgemayorga777 3 года назад

    Podrías hacer un video de como creaste la clase Startup...

    • @hdeleonnet
      @hdeleonnet  3 года назад

      Esa existe en todo proyecto de asp mvc .net core

    • @danielfragoso3779
      @danielfragoso3779 3 года назад

      Estimado, esa clase viene por defecto al momento de crear el proyecto.

    • @jorgemayorga777
      @jorgemayorga777 3 года назад

      @@hdeleonnet aaaaaaa, yo tengo el proyecto mvc común 😓😓😓

    • @jorgemayorga777
      @jorgemayorga777 3 года назад

      Voy a tener que actualizarme 🙄🙄🙄

  • @jahirchavarria5595
    @jahirchavarria5595 2 года назад

    Como podria crear una libreria de clases asi en visual code?

  • @Ederitos
    @Ederitos 3 года назад

    No me queda claro como esto simplifica O mejora el modelo de 3 capas tradicional...

  • @roqegalan8281
    @roqegalan8281 3 года назад

    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

    • @diego_solis
      @diego_solis 3 года назад +1

      Usa eager loading, creo que es mejor