Chia Sẻ Khóa Học .NET Backend Bootcamp 2024 - Modulith, VSA, DDD, CQRS Và Outbox [Khóa 6515 A]
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 gì bạn sẽ học được:
- ✓ Modular Monolith (Modulith) Architecture.
- ✓ Vertical Slice Architecture (VSA).
- ✓ Domain-Driven Design (DDD).
- ✓ Command Query Responsibility Segregation (CQRS).
- ✓ Outbox Pattern for Reliable Messaging.
- ✓ CQRS (Command Query Responsibility Segregation) và Vertical Slice architecture cho module development.
- ✓ Giao tiếp qua các In-process method calls-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 Feature folders.
- ✓ Các DDD, CQRS Pattern sử dụng thư viện MediatR với Best Practices.
- ✓ Sử dụng Domain Events & Integration Events khi UpdatePriceChanged event.
- ✓ Sử dụng Entity Framework Core Code-First Approach và Migrations trên PostgreSQL Database.
- ✓ Cross-cutting Concerns bao gồm Logging với Serilog, Validation với MediatR Pipeline Behaviors, Exceptions, Pagination.
- ✓ Sử dụng Redis làm Distributed Cache trên PostgreSQL database.
- ✓ Phát triển Proxy, Decorator và Cache-aside pattern.
- ✓ Sync Communication giữa các Catalog và Basket Module với In-process Method Calls (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 Flows 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: EShop Modules sang Microservices với Stranger Fig Pattern.
Trong khóa học này 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ác công nghệ và architectural pattern tiên tiến.
Chúng tôi sẽ phát triển:
- ✓ 1. Modular Monoliths (Modulith) Architecture.
- ✓ 2. Vertical Slice Architecture (VSA).
- ✓ 3. Domain-Driven Design (DDD).
- ✓ 4. Command Query Responsibility Segregation (CQRS).
- ✓ 5. Outbox Pattern for Reliable Messaging.
Chúng tôi bắt đầu với những điều cơ bản và dần dần đi sâu hơn vào từng chủ đề. Bạn sẽ có được kinh nghiệm thực tế khi xây dựng ứ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 tôi sẽ tuân theo kiến trúc CQRS (Command Query Responsibility Segregation) và Vertical Slice cho module development.
- ✓ Các Module sẽ giao tiếp thông qua các In-process method calls-public API và sử dụng RabbitMQ cho event-driven communication.
- ✓ Chúng tôi sẽ bảo mật API của mình bằng Keycloak, sử dụng OpenID Connect và Bearer Tokens.
- ✓ Chúng tôi 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:
Catalog module:
- ✓ Sử dụng 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 implementation với Feature folders.
- ✓ Phát triển DDD, CQRS Pattern bằng thư viện MediatR với Best Practices.
- ✓ Sử dụng Domain Events & Integration Events khi UpdatePriceChanged event.
- ✓ Sử dụng Entity Framework Core Code-First Approach và Migrations trên PostgreSQL Database.
- ✓ Sử dụng Carter để hiển thị các Minimal Api endpoint.
- ✓ Cross-cutting Concerns bao gồm Logging với Serilog, Validation với MediatR Pipeline Behaviors, Exceptions, Pagination.
Basket module bao gồm:
- ✓ Tương tự như Catalog Module; Phát triển DDD, CQRS, Vertical Slice Architecture implementation.
- ✓ Ngoài ra:
- ✓ Sử dụng Redis làm Distributed Cache trên PostgreSQL database.
- ✓ Phát triển và triển khai các Proxy, Decorator và Cache-aside pattern.
- ✓ Publish BasketCheckoutEvent tới RabbitMQ thông qua thư viện MassTransit.
- ✓ Triển khai Outbox Pattern cho Reliable Messaging với BasketCheckout Use Case.
Module Communications:
- ✓ Sync Communications giữa Catalog và Basket Module với In-process Method Calls (Public API).
- ✓ Async Communications giữa các Module với RabbitMQ & MassTransit để UpdatePrice giữa các Catalog-Basket Module.
Identity Module bao gồm:
- ✓ Phát triển User Identity Module với Keycloak Authentication.
- ✓ OAuth2 + OpenID Connect Flows với Keycloak.
- ✓ Setup Keycloak vào Docker-compose file cho Identity Provider làm 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.
Ordering Module bao gồm:
- ✓ Tương tự như Catalog và Basket Module; Phát triển DDD, CQRS, Vertical Slice Architecture implementation.
- ✓ Triển khai 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: EShop Modules sang Microservices với Stranger Fig Pattern.
Khóa học này không chỉ đơn thuần là học về .NET mà còn đi sâu vào thế giới của Modular Monolith với Vertical-Slice Architecture, Domain-Driven Design (DDD), CQRS và các architectural pattern nâng cao cho Backend Development.
Mục lục:
- ✓ 01. Giới thiệu.
- ✓ 02. Monolithic Architecture - Kiến trúc Monolith truyền thống có vấn đề gì?
- ✓ 03. Microservices Architectures - Tại sao nó không phù hợp với các dự án?
- ✓ 04. Cầu nối: Modular Monolith Architectures - Cổng kết nối giữa Monolithic và MS.
- ✓ 05. Tạo EShop Modular Monolith Project Solution Structure.
- ✓ 06. Kết nối các Dependency giữa các Module ((Quản lý DI của các Module).
- ✓ 07. Module đầu tiên: Catalog Module với Vertical Slice Architecture và CQRS.
- ✓ 08. Phát triển Shared Domain cho Tactical DDD Abstraction (Entity, Aggreagate, Events).
- ✓ 09. Phát triển Catalog Domain với Product Domain Entity Models.
- ✓ 10. Data Management of Modular Monolith: Setup Postgres làm một Main Database.
- ✓ 11. Phát triển Shared và Catalog Data-Infrastructure với EF Core Code First.
- ✓ 12. Application Use Case Development với CQRS và MediatR.
- ✓ 13. Catalog Application Use Case Development với CQRS và MediatR.
- ✓ 14. Phát triển Catalog API Endpoints Expose Minimal Api Endpoints với Carter và REPR.
- ✓ 15. Phát triển Cross-cutting Concerns cho Catalog và Each Module trong EShop Modules.
- ✓ 16. Phát triển Basket Module với Vertical Slice Architecture và CQRS.
- ✓ 17. Phát triển Basket Data-Infrastructure với EF Core Code First và PostgreSQL.
- ✓ 18. Phát triển Basket Application Use Case Development với CQRS và MediatR.
- ✓ 19. Phát triển Basket API Endpoints Exposing Minimal Api Endpoints với Carter và REPR.
- ✓ 20. Phát triển Distributed Caching với Redis trong Basket Module.
- ✓ 21. Sync Communications giữa các Module với In-process Method Calls (Public API).
- ✓ 22. Async Communications giữa các Module với RabbitMQ & MassTransit for UpdatePrice.
Khóa học này dành cho ai:
- ✓ Các .NET Developer mới bắt đầu tò mò về các công nghệ .NET Backend với Modular Monolith Architecture.
NHẬN GET EBOOK TRÊN AMAZON THEO YÊU CẦU