Tin mới nhất

Menu

Browsing "Older Posts"

Bài Viết Về Chủ Đề " VSA "

Chia Sẻ Khóa Học .NET 8 Backend Bootcamp 2026 - Modulith, VSA, DDD, CQRS & Outbox [Update 2/2026] [Khóa 5352 A]

12 tháng 5 2026 / No Comments

Phát triển EShop Modulith trên .NET sử dụng ASP.Net Web API, PostgreSQL, Redis, RabbitMQ, Keycloak, Seq, Docker, MassTransit.

Những điều bạn sẽ học:

  • ✓ Modular Monolith (Modulith) Architecture.
  • ✓ Vertical Slice Architecture (VSA).
  • ✓ Domain-Driven Design (DDD).
  • ✓ Command Query Responsibility Segregation (CQRS).
  • ✓ Outbox Pattern cho Reliable Messaging.
  • ✓ CQRS (Command Query Responsibility Segregation) & Vertical Slice Architecture cho module development.
  • ✓ Giao tiếp thông qua các In-process method call - public API và sử dụng RabbitMQ cho event-driven communication.
  • ✓ Bảo mật API với Keycloak, sử dụng OpenID Connect và Bearer Tokens.
  • ✓ ASPNET Core Minimal API và các tính năng mới nhất của .Net 8 và C# 12.
  • ✓ Triển khai Vertical Slice Architecture với các Feature folder.
  • ✓ DDD, CQRS Pattern sử dụng thư viện MediatR với các Best Practice.
  • ✓ Sử dụng Domain Event và Integration Event khi sự kiện UpdatePriceChanged xảy ra.
  • ✓ Sử dụng Entity Framework Core Code-First Approach và Migration trên PostgreSQL Database.
  • ✓ Các Cross-cutting Concern bao gồm Logging với Serilog, Validation với MediatR Pipeline Behaviors, Exceptions, Pagination.
  • ✓ Sử dụng Redis như một Distributed Cache thông qua PostgreSQL database.
  • ✓ Phát triển Proxy, Decorator & Cache-aside pattern.
  • ✓ Đồng bộ hóa giao tiếp giữa Catalog & Basket Module với các In-process Method Call (Public API).
  • ✓ Async Communication giữa các Module với RabbitMQ & MassTransit.
  • ✓ Phát triển User Identity Module với Keycloak Authentication.
  • ✓ OAuth2 + OpenID Connect Flow với Keycloak.
  • ✓ Outbox Pattern cho Reliable Messaging với BasketCheckout Use Case.
  • ✓ Publish BasketCheckoutEvent lên RabbitMQ thông qua thư viện MassTransit, Consume từ Ordering Module.
  • ✓ Di chuyển sang Microservices: Từ các EShop Module sang Microservices với Stranger Fig Pattern.

Trong khóa học chuyên sâu này, bạn sẽ học cách xây dựng các ứng dụng mạnh mẽ, có khả năng mở rộng và dễ bảo trì bằng cách sử dụng các công nghệ tiên tiến và các mô hình kiến ​​trúc hiện đại.

Chúng ta sẽ phát triển:

  • ✓ Modular Monoliths (Modulith) Architecture.
  • ✓ Vertical Slice Architecture (VSA).
  • ✓ Domain-Driven Design (DDD).
  • ✓ Command Query Responsibility Segregation (CQRS).
  • ✓ Outbox Pattern for Reliable Messaging.

Chúng ta sẽ bắt đầu từ những kiến ​​thức cơ bản và dần dần đi sâu vào từng chủ đề. Bạn sẽ có kinh nghiệm thực hành xây dựng một ứng dụng EShop Modular Monolith hoàn chỉnh, triển khai các tính năng như CQRS và Outbox pattern.

  • ✓ Chúng ta sẽ tuân theo kiến ​​trúc CQRS (Command Query Responsibility Segregation) & Vertical Slice cho module development.
  • ✓ Các Module sẽ giao tiếp với nhau thông qua các In-process method call - public API và sử dụng RabbitMQ cho event-driven communication.
  • ✓ Chúng ta sẽ bảo mật các API của mình bằng Keycloak, sử dụng OpenID Connect và Bearer Tokens.
  • ✓ Chúng ta sẽ triển khai Outbox Pattern cho reliable messaging giữa các module.

Cùng với đó, bạn sẽ phát triển các module và item sau:

Module Catalog bao gồm:

  • ✓ Sử dụng các Asp.Net Core Minimal API và các tính năng mới nhất của .Net 8 và C# 12.
  • ✓ Phát triển Vertical Slice Architecture triển khai với cácFeature folder. 
  • ✓ Phát triển các DDD, CQRS Pattern sử dụng thư viện MediatR theo các Best Practice.   
  • ✓ Sử dụng Domain Event & Integration Event khi sự kiện UpdatePriceChanged xảy ra.
  • ✓ Sử dụng Entity Framework Core Code-First Approach & Migration trên PostgreSQL Database.
  • ✓ Sử dụng Carter để hiển thị các Minimal Api endpoint.
  • ✓ Các Cross-cutting Concern bao gồm Logging với Serilog, Validation với MediatR Pipeline Behaviors, Exception, Pagination.

Module Basket bao gồm:

  • ✓ Tương tự như Module Catalog; DDD, CQRS, Vertical Slice Architecture implementation.
  • Ngoài ra:
  • ✓ Sử dụng Redis như một Distributed Cache trên PostgreSQL database.
  • ✓ Phát triển và triển khai các Proxy, Decorator & Cache-aside pattern.
  • ✓ Publish BasketCheckoutEvent lên RabbitMQ thông qua thư viện MassTransit.
  • ✓ Áp dụng Outbox Pattern cho Reliable Messaging với BasketCheckout Use Case.

Module Communication:

  • ✓ Đồng bộ hóa giao tiếp giữa Module Catalog & Basket với các In-process Method Call (Public API).
  • ✓ Async Communication giữa các module với RabbitMQ và MassTransit cho UpdatePrice giữa các Catalog-Basket Module.

Module Identity bao gồm: 

  • ✓ Phát triển User Identity Module với Keycloak Authentication.
  • ✓ OAuth2 + OpenID Connect Flow với Keycloak.
  • ✓ Setup Keycloak vào Docker-compose file cho Identity Provider dưới dạng một Backing Service.
  • ✓ Bảo mật các EShop Module với Keycloak OpenId Connect trong AspNet.
  • ✓ JwtBearer token cho OpenID Connect với Keycloak Identity.

Module Ordering bao gồm:

  • ✓ Tương tự như Module Catalog & Basket; Phát triển DDD, CQRS, Vertical Slice Architecture implementation.
  • ✓ Áp dụng Outbox Pattern cho Reliable Messaging với BasketCheckout Use Case.
  • Cuối cùng, chúng ta sẽ thảo luận:
  • ✓ Di chuyển sang Microservices: Từ các EShop Module sang Microservices với Stranger Fig Pattern.

Khóa học này không chỉ đơn thuần là học .NET, mà còn là một khóa học chuyên sâu về thế giới của các Modular Monolith với Vertical-Slice Architecture, Domain-Driven Design (DDD), CQRS và các mẫu kiến ​​trúc nâng cao cho Backend Development.

Mục lục:

  • ✓ 01. Giới thiệu.
  • ✓ 02. Monolithic Architecture - Những vấn đề của Monolith truyền thống?
  • ✓ 03. Microservices Architecture - Tại sao nó không phù hợp với các project?
  • ✓ 04. Bridge: Modular Monolith Architecture - Cổng kết nối giữa Monolithic & MS.
  • ✓ 05. Tạo EShop Modular Monolith Project Solution Structure.
  • ✓ 06. Kết nối các Dependency giữa các Module (DI Management của các Module).
  • ✓ 07. Module đầu tiên: Catalog Module với Vertical Slice Architecture & CQRS.
  • ✓ 08. Phát triển Shared Domain cho Tactical DDD Abstraction (Entity, Aggreagate, Events).
  • ✓ 09. Phát triển Catalog Domain với các Product Domain Entity Model.
  • ✓ 10. Data Management của Modular Monolith: Setup Postgres làm một Main Database.
  • ✓ 11. Phát triển Shared & Catalog Data-Infrastructure với EF Core Code First.
  • ✓ 12. Application Use Case Development với CQRS & MediatR.
  • ✓ 13. Catalog Application Use Case Development với CQRS & MediatR.
  • ✓ 14. Phát triển Catalog API Endpoints Expose Minimal Api Endpoints với Carter & REPR.
  • ✓ 15. Phát triển các Cross-cutting Concern cho Catalog & từng Module trong các EShop Module.
  • ✓ 16. Phát triển Basket Module với Vertical Slice Architecture & CQRS.
  • ✓ 17. Phát triển Basket Data-Infrastructure với EF Core Code First & PostgreSQL.
  • ✓ 18. Phát triển Basket Application Use Case Development với CQRS & MediatR.
  • ✓ 19. Phát triển Basket API Endpoints Exposing Minimal Api Endpoints với Carter & REPR.
  • ✓ 20. Phát triển Distributed Caching với Redis trong Basket Module.
  • ✓ 21. Sync Communication giữa các Module với các In-process Method Call (Public API).
  • ✓ 22. Async Communication giữa các Modules với RabbitMQ & MassTransit cho UpdatePrice.
  • ✓ 23. Phát triển User Identity Module với Keycloak Authentication.
  • ✓ 24. Ordering Module với Vertical Slice Architecture & CQRS.
  • ✓ 25. Outbox Pattern cho Reliable Microservices Messaging với BasketCheckout Use Case.
  • ✓ 26. Containerize & Orchestrate EShop Modular App trong Docker-Compose.
  • ✓ 27. Di chuyển sang Microservices: Từ các EShop Module đến Microservices với Strangler Fig.
  • ✓ 28. Thanks.

Khóa học này dành cho:

Beginner đến Senior .NET Developer tò mò về các công nghệ .NET Backend với các kiến ​​trúc Modular Monolith.


NHẬN GET EBOOK TRÊN AMAZON THEO YÊU CẦU




Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Tuyên bố miễn trừ bản quyền:
Trang web này không lưu trữ bất kỳ tệp nào trên máy chủ của nó. Chúng tôi chỉ lập chỉ mục và liên kết đến nội dung được cung cấp bởi các trang web khác. Vui lòng liên hệ với các nhà cung cấp nội dung để xóa nội dung bản quyền nếu có và gửi email cho chúng tôi, chúng tôi sẽ xóa các liên kết hoặc nội dung có liên quan ngay lập tức.