CQRS PRÁCTICO - Cómo se implementa, para que sirve y cómo es su arquitectura

Поделиться
HTML-код
  • Опубликовано: 30 мар 2023
  • Ya habíamos hablado de CQRS desde lo teórico y habíamos aprendido para qué sirve, cómo se usa y cuando se usa. Llegó el momento de llevar la teoría a la práctica y de ver cómo implementar el patrón, cómo es la arquitectura de la solución y como usar MediatR
    ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
    💥ME ENCUENTRAS TAMBIÉN AQUÍ 👇
    Sitio Web ►thecodercave.com/
    Twitter ► / cavecoder
    Discord ► / discord
    ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
    💻 CURSOS PREMIUM 👇
    🚀Curso Completo de C# desde Cero ► bit.ly/3jLyIv4
    🚀Curso de C# Práctico en 15 Proyectos ► bit.ly/3uUqCaR
    🚀Curso de C# en el Backend - API Mastery ► bit.ly/3LL3CEM
    🔥 Curso Completo de Blazor desde Cero ► bit.ly/38DtZXz
    🔥 Blazor Ultimate: Domina Blazor en 4 Proyectos ► bit.ly/3xbAtbA
    👉Curso Práctico de SQL para principiantes ►bit.ly/2R6KVOX
    📚 Curso de GIT y Github para Principiantes ► bit.ly/30Fbhz4
    Descuento del 60% en todos mis cursos 👉 thecodercave.com/descuento/
    ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
    📚 RECURSOS RECOMENDADOS 👇
    ¿QUIERES APRENDER INGLÉS?👇
    Italki ► $10 de regalo con tu primera compra
    👉 go.italki.com/TheCoderCaveesp
    Busuu ► App gratis con descuento para su sección Premium
    👉www.dpbolvw.net/click-1003128...
    Dominios ► Namecheap: 👇
    👉 bit.ly/3YofMGK
    Hosting ► Bluehost: 👇
    👉 www.bluehost.com/track/gabmor...
    Nota: Los links en la descripción son links de afiliado, lo que significa que recibiré una pequeña comisión si te registras usando esos links sin ningún costo extra para ti. Todos los links de afiliados son productos o servicios en los que creo y uso personalmente.
    Music from filmmusic.io
    "Blippy Trance" by Kevin MacLeod (incompetech.com)
    License: CC BY (creativecommons.org/licenses/b...)
  • НаукаНаука

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

  • @marcossozalopez6465
    @marcossozalopez6465 Год назад +41

    Esta genial, voto para incorporar Event Sourcing

  • @javieralba8259
    @javieralba8259 Год назад +15

    Y me sumo al pedido de ampliar este ejemplo con Event Sourcing

  • @user-sb6uu1zx5g
    @user-sb6uu1zx5g Год назад +3

    Excelente video, me sumo al pedido de Event sourcing

  • @luisalbertoivetta1731
    @luisalbertoivetta1731 Год назад +7

    Muy buen video!! Sería genial un vídeo de event sourcing!!!

  • @JesusGonzalezRodrigo
    @JesusGonzalezRodrigo Год назад +6

    Muy bien explicado, para dejarlo redondo estaría bien incorporar event sourcing

  • @guillermomazzari4983
    @guillermomazzari4983 Год назад +7

    Muy buen video, muchas gracias! Si, estaría muy bueno que lo extiendas usando dos bases de datos y rabbitmq, por mi parte, conozco la teoria pero nunca lo he visto implementado, muy bien explicado amigo, mil gracias!!

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

    Gran video. Muchísimas gracias por esos aportes. Lo es tuve replicando y usando el MediatR 12 salía un error, por si a alguien le ayuda en program cambié builder.Services.AddMediatR(typeof(Program).Assembly); por builder.Services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(Assembly.GetExecutingAssembly())); y va sobre ruedas.. Ahora toca meterle repository y sql, y ver cómo queda esa plantilla.

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

      Capo muchas gracias,tenia el mismo problema y con eso lo resolvi

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

    Muchísimas gracias por tomarte la molestia de regalarnos este ejemplo tan claro y bien explicado. Me gustaría que nos regalaras el ejemplo aplicando Event Sourcing. De nuevo muchas gracias por tus videos.

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

    Excelente video explicativo, me sumo a los que quisieran ver ampliado este ejemplo práctico con Event Sourcing. Gracias!

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

    Que capo que SOS Gabriel! Seguí así.. exelente el video y si estaría bueno incorporar todo.

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

    Increíble contenido 🎉

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

    Voto por adicionar Event sourcing al proyecto y gracias por compartir tu conocimiento. Todo claro!

  • @ignacioinnovo5308
    @ignacioinnovo5308 11 месяцев назад

    Buenas! Muy buen material! Los felicito! Realmente son muy claras las explicaciones. Sigan así! Saludos!

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

    Una genialidad de video, super clara tu explicación, muchas gracias 🤗

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

    Buenísimo! Voto para seguir con Event Sourcing

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

    Br, sos un grandísimo crack. En cuanto pueda compro un curso tuyo de Udemy.

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

    Muchas gracias por este video, de paso te sugiero que sigas con otro video, más complejo y con esos detalles que hacen falta para esta arquitectura. Saludos

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

    Super, bien explicado, tambien voto para lo de EventSourcing

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

    Muy buen contenido y gran explicacion!!!. Gracias por compartir puntos de vista y conocimiento!!. Será posible que subas este codigo de ejemplo a un repo??, saludos!!

  • @e-om
    @e-om Год назад +1

    🎉 muy bueno el vídeo bien claro de principioa fin y bien resumido.
    Pregunta esa estructura no tendría que ir por modulo rn una carpeta padre para poder escalar mejor. Fíjate con un simple TO-DO cuantos archivos se creo. Si tenes muchos ABM algunas carpetas serían un lío de muchos archivos de distintas ABMs.
    Saludos y gracias por compartir.

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

    Gracias por el tutorial, voto para incorporar Event Sourcing!

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

    Excelentísimo, justo me había descargado el Boilerplate Api y Blazor que recomendabas, para entender la arquitectura; y una explicación como esta me ayuda harto. Sigue por eso camino. Y pudieras dar más ejemplos, a tu estilo, que ayuden a entender esos templates sería genial. Un abrazo!

  •  Год назад +3

    Voto por Event Sourcing. No entendí por qué colocar los comandos y consultas en la carpeta infraestructura. Yo entiendo que un comando representa un caso de uso de nuestra aplicación y debería estar en esa capa.

    • @timh52280
      @timh52280 10 месяцев назад +1

      Yo igual se que los commands y queries son la representacion de los use cases y por lo tanto deberian de ir en la capa Application

  • @leonardonorambuena2172
    @leonardonorambuena2172 8 месяцев назад

    Hola en primer lugar muchas gracias por el vídeo y me sumo a la petición de agregar Event Sourcing, saludos y gracias

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

    Muy buen video

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

    Excelente explicación, voto a favor de incorporar Event Sourcing.
    Podrías utilizar la librería CAP para ello?

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

    Excelente, voto por incorporar Event Sourcing

  • @cristianaragon6103
    @cristianaragon6103 10 месяцев назад

    Muy buen video agrega el event sourcing xf

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

    Excelente voto para que incorporen event sourcing

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

    Gracias por compartir compañero, me uno a la solicitud de integrar event sourcing, saludos desde perú

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

    Venia por el event sourcing en realidad 😂 voto a favor de implementarlo

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

    Esperamos la implementación para Event sourcing.

  • @josezavala5972
    @josezavala5972 5 месяцев назад

    Si tengo los endpoint utilizado DI , interfaces y sus implementaciones para hacer validaciones de datos, Transformaciones y llamadas en la implementación a otras interfaces ( métodos para hacer llamadas a endpoint externos), está lógica se usaría en el handler y el llamado a mis otras interfaces sería hacerlas nuevamente commands o queries y sería nuevamente por mediator mandarlas a llamar? Y así cambiaría de interfaces e implementaciones por commands o mezclarlas? Es decir en el hadler inyectar mis interfaces a llamas externas

  • @pedrolopezllorca1669
    @pedrolopezllorca1669 10 месяцев назад +2

    Si continúas con Event Sourcing y para el ejemplo usas bases de datos separadas para lectura y escritura, me caso contigo 🥰

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

    Hola, en el min 19:14 en el método "Handle" veo que haces dos operaciones, Operación de lectura línea 19, y Operación de escritura línea 31, esto no hace que rompa la regla del patrón CQRS ? de dividir las operaciones de lectura y escritura?

  • @daniboy84
    @daniboy84 5 месяцев назад

    Agrega porfa even sourcing y si es posible validator

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

    Siiiiiiiiiiiuuuuuuuuu

  • @r.amilcarrivasmarquez2892
    @r.amilcarrivasmarquez2892 Год назад

    Voto por el vídeo de abastecimiento de eventos

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

    ¿Por qué se tiene que abrir la conexión de la base de datos en los procesos? ¿Se puede abrir en un punto de la aplicación y esta quedar abierta? ó ¿Es por algún motivo que yo desconozco?. Gracias

  • @joakinalberto91
    @joakinalberto91 5 месяцев назад

    Event Sourcing

  • @kenm7604
    @kenm7604 8 месяцев назад

    Usa event source

  • @jonathanarangoa4281
    @jonathanarangoa4281 7 месяцев назад

    Si event sourcing

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

    +1 event sourcing

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

    No Event Sourcing, no like 😁

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

    Hola, muchas gracias por compratir conocimieento, tengo unas dudas, para empezar, separé en proyectos (librerías de clase)
    tuve que poner los Handlers en Infrastucture porque sino había una referencia cíclica con el proyecto de Application, bueno pasado ese punto tengo unos errores básicamente poque no sé como registrar correcatemente en Program los ensamblados
    System.MissingMethodException: Method not found: 'System.Collections.Generic.IList`1 Microsoft.EntityFrameworkCore.Metadata.Conventions.ConventionSet.get_ModelFinalizingConventions()'.
    eso me salió luego de poner algo como lo siquiente:
    builder.Services.AddMediatR(typeof(GetAllTaskHandler).Assembly);
    builder.Services.AddMediatR(typeof(GetTaskByIdHandler).Assembly);
    builder.Services.AddMediatR(typeof(CreateTaskHandler).Assembly);
    builder.Services.AddMediatR(typeof(UpdateTaskHandler).Assembly);
    builder.Services.AddMediatR(typeof(DeleteTaskHandler).Assembly);
    builder.Services.AddMediatR(typeof(Program).Assembly);
    me puedes orientar por favor, muchas gracias.