دوره آموزشی
The Great Courses
دوبله زبان فارسی

بوت‌کمپ بک‌اند NET 8. - بررسی Modulith ،VSA ،DDD ،CQRS و Outbox

بوت‌کمپ بک‌اند NET 8. - بررسی Modulith ،VSA ،DDD ،CQRS و Outbox

✅ سرفصل و جزئیات آموزش

آنچه یاد خواهید گرفت:

  • معماری مونو‌لیت ماژولار (Modulith)
  • معماری Vertical Slice (VSA)
  • طراحی دامنه محور (DDD)
  • تفکیک مسئولیت فرمان و کوئری (CQRS)
  • الگوی Outbox برای پیام‌رسانی قابل‌ اعتماد
  • CQRS (تفکیک مسئولیت فرمان و کوئری) و معماری Vertical Slice برای توسعه ماژول‌ها
  • ارتباط از طریق فراخوانی متدهای درون‌فرآیندی و APIs عمومی و استفاده از RabbitMQ برای ارتباطات رویداد محور
  • ایمن‌سازی APIs با Keycloak با استفاده از OpenID Connect و توکن‌های حامل
  • ASP.NET Core Minimal API و جدیدترین قابلیت‌های NET 8. و C# 12
  • پیاده‌سازی معماری Vertical Slice با پوشه‌های ویژگی
  • الگوهای DDD و CQRS با استفاده از کتابخانه MediatR با پیروی از بهترین شیوه‌ها
  • استفاده از رویدادهای دامنه و رویدادهای یکپارچه‌سازی هنگام رویداد UpdatePriceChanged
  • استفاده از Entity Framework Core با رویکرد Code First و مهاجرت‌ها روی پایگاه‌ داده PostgreSQL
  • مباحث Cross-cutting شامل لاگ کردن با Serilog و اعتبارسنجی با رفتارهای پایپ‌لاین MediatR و استثناها و صفحه‌بندی
  • استفاده از Redis به‌ عنوان کش توزیع شده در کنار پایگاه‌ داده PostgreSQL
  • استقرار الگوهای Proxy و Decorator و Cache-aside
  • ارتباطات همزمان بین ماژول‌های کاتالوگ و سبد خرید با فراخوانی متدهای درون‌فرآیندی (APIs عمومی)
  • ارتباطات غیرهمزمان بین ماژول‌ها با RabbitMQ و MassTransit
  • توسعه ماژول هویت کاربر با احراز هویت Keycloak
  • جریان‌های OAuth2 + OpenID Connect با Keycloak
  • الگوی Outbox برای پیام‌رسانی قابل‌ اعتماد با یوزکیس BasketCheckout
  • انتشار BasketCheckoutEvent در RabbitMQ از طریق کتابخانه MassTransit و دریافت آن در ماژول سفارشات
  • مهاجرت به میکروسرویس‌ها - تبدیل ماژول‌های فروشگاه اینترنتی به میکروسرویس‌ها با الگوی Strangler Fig

پیش‌نیازهای دوره

  • مبانی #C و برنامه‌نویسی

توضیحات دوره

در این بوت‌کمپ یاد می‌گیرید چگونه با استفاده از فناوری‌های پیشرفته و الگوهای معماری مدرن، اپلیکیشن‌هایی قوی، مقیاس‌پذیر و قابل‌ نگهداری بسازید.

ما موارد زیر را توسعه خواهیم داد:

  • معماری مونو‌لیت ماژولار (Modulith)
  • معماری Vertical Slice (VSA)
  • طراحی دامنه محور (DDD)
  • تفکیک مسئولیت فرمان و کوئری (CQRS)
  • الگوی Outbox برای پیام‌رسانی قابل‌ اعتماد

ما از مبانی شروع می‌کنیم و به‌ صورت تدریجی عمیق‌تر می‌شویم و هر موضوع را بررسی می‌کنیم. شما تجربه عملی ساخت یک اپلیکیشن کامل Monolith ماژولار فروشگاه اینترنتی را به دست می‌آورید و قابلیت‌هایی مانند CQRS و الگوی Outbox را پیاده‌سازی می‌کنید.

  • ما از معماری‌های CQRS (تفکیک مسئولیت فرمان و کوئری) و Vertical Slice برای توسعه ماژول‌ها پیروی خواهیم کرد.
  • ماژول‌ها از طریق فراخوانی متدهای درون‌فرآیندی و APIs عمومی با هم ارتباط برقرار می‌کنند و از RabbitMQ برای ارتباطات رویداد محور استفاده خواهند کرد.
  • ما APIs خود را با Keycloak و با استفاده از OpenID Connect و توکن‌های حامل ایمن می‌کنیم.
  • الگوی Outbox را برای پیام‌رسانی قابل‌ اعتماد بین ماژول‌ها پیاده‌سازی خواهیم کرد.

در کنار این‌ها، ماژول‌ها و بخش‌های زیر را توسعه خواهید داد:

ماژول کاتالوگ که شامل موارد زیر است:

  • استفاده از Asp.Net Core Minimal API و جدیدترین قابلیت‌های NET 8. و C# 12
  • توسعه پیاده‌سازی معماری Vertical Slice با پوشه‌های ویژگی
  • توسعه الگوهای DDD و CQRS با استفاده از کتابخانه MediatR و رعایت بهترین شیوه‌ها
  • استفاده از رویدادهای دامنه و رویداد یکپارچه‌سازی هنگام رویداد UpdatePriceChanged
  • استفاده از Entity Framework Core با رویکرد Code First و مهاجرت‌ها روی پایگاه‌ داده PostgreSQL
  • استفاده از Carter برای ارائه اندپوینت‌های Minimal API
  • مباحث Cross-cutting شامل لاگ کردن با Serilog، اعتبارسنجی با رفتارهای پایپ‌لاین MediatR، استثناها و صفحه‌بندی

ماژول سبد خرید که شامل موارد زیر است:

  • مشابه ماژول کاتالوگ - توسعه پیاده‌سازی معماری DDD و CQRS و Vertical Slice
  • استفاده از Redis به‌ عنوان کش توزیع شده در کنار پایگاه‌ داده PostgreSQL
  • توسعه و پیاده‌سازی الگوهای Proxy و Decorator و Cache-aside
  • انتشار BasketCheckoutEvent در RabbitMQ از طریق کتابخانه MassTransit
  • پیاده‌سازی الگوی Outbox برای پیام‌رسانی قابل‌ اعتماد با یوزکیس BasketCheckout

ارتباط بین ماژول‌ها:

  • ارتباطات همزمان بین ماژول‌های کاتالوگ و سبد خرید با فراخوانی متدهای درون‌فرآیندی (APIs عمومی)
  • ارتباطات غیرهمزمان بین ماژول‌ها با RabbitMQ و MassTransit برای UpdatePrice بین ماژول‌های کاتالوگ و سبد خرید

ماژول هویت که شامل موارد زیر است:

  • توسعه ماژول هویت کاربر با احراز هویت Keycloak
  • جریان‌های OAuth2 + OpenID Connect با Keycloak
  • راه‌اندازی Keycloak در فایل Docker-compose به‌ عنوان ارائه‌دهنده هویت و یک سرویس پشتیبان
  • ایمن‌سازی ماژول‌های فروشگاه اینترنتی با Keycloak OpenID Connect در AspNet
  • توکن JwtBearer برای OpenID Connect با هویت Keycloak

ماژول سفارشات که شامل موارد زیر است:

  • مشابه ماژول‌های کاتالوگ و سبد خرید - توسعه پیاده‌سازی DDD و CQRS و معماری Vertical Slice
  • پیاده‌سازی الگوی Outbox برای پیام‌رسانی قابل‌ اعتماد با یوزکیس BasketCheckout

در نهایت، درباره موارد زیر صحبت خواهیم کرد:

  • مهاجرت به میکروسرویس‌ها - تبدیل ماژول‌های فروشگاه اینترنتی به میکروسرویس با الگوی Strangler Fig

این دوره فقط یادگیری NET. نیست؛ بلکه یک بررسی عمیق از دنیای Monoliths ماژولار با معماری Vertical-Slice و طراحی دامنه محور (DDD) و CQRS و الگوهای معماری پیشرفته برای توسعه بک‌اند است.

این دوره برای چه کسانی مناسب است؟

  • توسعه‌دهندگان NET. از سطح مبتدی تا ارشد که به فناوری‌های بک‌اند NET. با معماری Monolith ماژولار علاقه‌مند هستند.

بوت‌کمپ بک‌اند NET 8. - بررسی Modulith ،VSA ،DDD ،CQRS و Outbox

  • مقدمه 10:07
  • پیش‌نیازها، منبع کد و اسلایدهای دوره 02:27
  • مشاهده اپلیکیشن نهایی (نیازمند پیکربندی‌های هویت - فقط برای نمایش) 07:27
  • ساختار کد پروژه 05:38
  • معماری‌ها، الگوها، کتابخانه‌ها و بهترین شیوه‌های Monolith ماژولار 05:22
  • چگونه این دوره را دنبال کنیم؟ (جریان دوره و روش یادگیری) 04:08
  • Monolithic سنتی (معماری Monolithic) چیست؟ 02:38
  • اشکال معماری Monolithic سنتی چیست؟ 03:24
  • وابستگی به فناوری و چرخه ترس در معماری Monolithic سنتی 02:10
  • گودال گل 01:18
  • آزمون Monolithic None
  • میکروسرویس‌ها و معماری میکروسرویس چه هستند؟ 03:35
  • اشکال معماری میکروسرویس‌ها چیست؟ 05:29
  • ضدالگوی میکروسرویس‌ها - Monolith توزیع شده 04:25
  • کیس آمازون - معماری مجدد از میکروسرویس‌های توزیع‌ شده به یک Monolithic 05:02
  • آزمون میکروسرویس‌ها None
  • معماری Monolith ماژولار (Modulith) چیست؟ 04:19
  • چرا Monolith ماژولار؟ مزیت‌ها نسبت به میکروسرویس‌ها؟ 02:58
  • رویکرد Monolith First از Martin Fowler و Sam Newman 02:47
  • نقطه شروع برای میکروسرویس‌ها - گذار تدریجی با ریفکتور کردن افزایشی 05:43
  • معماری Monolith ماژولار در Shopify 05:14
  • تجزیه ماژول‌های EShop - ماژول‌های کاتالوگ، سبد خرید، هویت و سفارشات 04:10
  • آزمون Monolith ماژولار None
  • مقدمه - ایجاد ساختار راه‌حل پروژه Monolith ماژولار فروشگاه اینترنتی 02:07
  • ایجاد مخزن GitHub برای معماری Monolith ماژولار فروشگاه اینترنتی 03:42
  • ایجاد راه‌حل خالی جدید - Monolith ماژولار فروشگاه اینترنتی 03:21
  • ساختار پوشه‌ای Monolith ماژولار - Bootstrapper و Modules و Shared 06:11
  • ایجاد پروژه Bootstrapper Api 04:26
  • پیکربندی پروژه وب خالی به‌ عنوان Bootstrapper Api برای Monolith ماژولار 04:35
  • ایجاد پوشه‌های ماژول‌ها بر اساس تحلیل Bounded Context در DDD 01:38
  • معماری خارجی در برابر معماری داخلی در Monolith ماژولار 02:33
  • معماری Vertical Slice 04:39
  • معماری تمیز 03:44
  • Vertical Slice در برابر معماری تمیز 03:03
  • ایجاد پروژه‌های ماژول به‌ صورت کتابخانه کلاس 04:04
  • الگوی کرنل مشترک در DDD 01:41
  • ایجاد پروژه کتابخانه کلاس کرنل مشترک برای همه ماژول‌ها 02:42
  • وابستگی‌های پروژه مشترک به پروژه‌های ماژول 03:35
  • وابستگی‌های ماژول به پروژه Bootstrapper Asp.Net Api 02:50
  • مقدمه - اتصال وابستگی‌های بین ماژول‌ها (مدیریت DI ماژول‌ها) 01:57
  • مدیریت تزریق وابستگی در Asp.net و Program.cs 03:59
  • اتصال وابستگی‌های بین ماژول‌ها 02:45
  • توسعه متد افزونه AddCatalogModule در CatalogModule.cs 06:17
  • رجیستر وابستگی‌های کاتالوگ در Program.cs 02:09
  • توسعه متدهای افزونه AddBasketModule و AddOrderingModule 02:32
  • رجیستر وابستگی‌های سبد خرید و سفارشات در Program.cs 01:27
  • میان‌افزارهای Asp.net و پایپ‌لاین درخواست HTTP 04:49
  • پیکربندی پایپ‌لاین‌های درخواست HTTP برای ماژول‌ها در Program.cs 02:11
  • بررسی کلاس وب اپلیکیشن، استفاده از انتزاع‌ها و نصب پکیج‌های مورد نیاز 04:29
  • توسعه متد افزونه UseCatalogModule برای پیکربندی درخواست HTTP ماژول 03:23
  • یکپارچه‌سازی UseCatalogModule در Program.cs 01:09
  • توسعه متد افزونه UseBasketModule و UseOrderingModule برای پیکربندی ماژول 01:34
  • یکپارچه‌سازی متد افزونه UseBasketModule و UseOrderingModule در Program.cs 01:16
  • افزودن GlobalUsings.cs برای هر پروژه جهت اجتناب از Redundant با استفاده از دستورات 02:00
  • مقدمه - اولین ماژول - ماژول کاتالوگ با معماری Vertical Slice 01:20
  • تحلیل دامنه ماژول کاتالوگ - مدل‌ها، UCs و Rest Apis و پایگاه‌ داده‌ها 03:05
  • تحلیل فنی ماژول کاتالوگ - معماری‌ها، الگوها، کتابخانه‌ها، پوشه‌ها 04:16
  • روش توسعه - Shared -> Modules -> API 03:29
  • مقدمه - توسعه دامنه مشترک برای انتزاغ تاکتیکی DDD 01:00
  • طراحی دامنه محور (DDD) 03:25
  • طراحی دامنه محور تاکتیکی - انتیتی‌ها، آبجکت‌های ارزش، تجمیع‌ها و Rooots 03:49
  • توسعه انتزاع‌های DDD (انتیتی، تجمیع و DomainEvent) در کتابخانه مشترک 03:45
  • توسعه رابط IDomainEvent در انتزاغ تاکتیکی DDD با استفاده از MediatR 03:57
  • توسعه کلاس‌های تجمیع در انتزاع تاکتیکی DDD 06:23
  • مقدمه - توسعه دامنه کاتالوگ با مدل‌های انتیتی دامنه محصول 01:29
  • توسعه مدل‌های انتیتی دامنه محصول در مدل‌های دامنه ماژول کاتالوگ 03:15
  • انتیتی‌های مدل Anemic Domain در برابر Rich Domain در DDD 02:48
  • توسعه انتیتی مدل Rich Domain در DDD برای انتیتی محصول 05:53
  • رویدادهای دامنه در DDD و دامنه در برابر رویداد یکپارچه‌سازی 05:46
  • توسعه رویداد دامنه Created و Updated محصول در ماژول کاتالوگ 03:23
  • ایجاد رویدادهای دامنه ProductCreated و ProductPriceChanged در ماژول کاتالوگ 04:25
  • مقدمه - مدیریت داده در Monolith ماژولار - راه‌اندازی پایگاه‌ داده Postgres 01:07
  • مدیریت داده در Monolith ماژولار - 4 استراتژی جداسازی داده 03:37
  • بهترین شیوه‌ها - جداسازی اسکیمای پایگاه داده ماژول‌ها در اپلیکیشن‌های Monolith ماژولار 03:01
  • آبجکت کانتکس پایگاه داده Multi-context EF برای اسکیمای جداگانه پایگاه‌ داده جهت جداسازی داده 02:12
  • سرویس‌های پشتیبان برای معماری‌های Cloud-Native 03:11
  • استراتژی استقرار Monolith ماژولار فروشگاه اینترنتی 03:44
  • راه‌اندازی پایگاه‌داده PostgreSQL با استفاده از فایل Docker-compose برای محیط Docker چندکانتینری 05:15
  • افزودن ایمیج پایگاه‌ داده PostgreSQL به فایل Docker-compose برای محیط Docker چندکانتینری 06:30
  • اجرای Docker-Compose در Visual Studio برای راه‌اندازی پایگاه‌ داده PostgreSQL روی Docker 05:14
  • اتصال و جستجوی پایگاه‌ داده PostgreSQL با استفاده از pgAdmin 04:12
  • مقدمه - توسعه لایه زیرساخت داده مشترک و کاتالوگ با EF Core 02:59
  • قابلیت‌های EF Core 8، رویکرد Code First، مهاجرت‌ها و اتصال به PostgreSQL 02:59
  • مراحل توسعه EF Core برای زیرساخت داده مشترک و کاتالوگ 06:13
  • نصب پکیج‌های NuGet مربوط به EF Core در کتابخانه مشترک 05:26
  • توسعه آبجکت EF Core DbContext برای ذخیره انتیتی‌ها در ماژول کاتالوگ 06:48
  • نگاشت آبجکت‌های DDD در انتیتی‌های EF - توسعه پیکربندی انتیتی EF Core 03:37
  • رشته اتصال EF Core به PostgreSQL در فایل appsettings.json 03:21
  • رجیستر EF Core DbContext در ابزار DependencyInjection Asp.Net برای PostgreSQL 04:41
  • ایجاد مهاجرت‌های EF Core برای CatalogDbContext - بخش 1 04:49
  • ایجاد مهاجرت‌های EF Core برای CatalogDbContext - بخش 2 08:06
  • بررسی و اجرای Docker-Compose در Visual Studio برای راه‌اندازی پایگاه‌ داده PostgreSQL روی Docker 03:22
  • اعمال مهاجرت‌های EF Core روی پایگاه‌ داده PostgreSQL با فرمان Update-Database 02:26
  • مهاجرت خودکار انتیتی‌های EF Core به پایگاه‌ داده PostgreSQL هنگام راه‌اندازی اپلیکیشن 04:53
  • توسعه متد افزونه عمومی UseMigration برای مهاجرت و Seed کردن پایگاه‌ داده 06:20
  • استفاده از متد افزونه UseMigration در کلاس‌های DependencyInjection ماژول 03:46
  • تست مهاجرت‌های خودکار با استفاده از متد افزونه UseMigration روی WebApplication 05:15
  • Seed کردن داده‌ محصول در EShopDb هنگام راه‌اندازی اپلیکیشن، بلافاصله پس از UseMigration 10:12
  • اجرای ماژول کاتالوگ برای مهاجرت و Seed کردن EShopDb با متد UseMigration 05:15
  • EF Core Interceptors - بررسی SaveChangesInterceptor برای حسابرسی انتیتی‌ها 03:17
  • توسعه SaveChangesInterceptor برای حسابرسی انتیتی‌ها در انتیتی‌های سفارش 09:14
  • اجرا و تست ماژول کاتالوگ برای حسابرسی با EF SaveChanges Interceptor 06:11
  • Dispatch کردن رویدادهای دامنه با EF Core SaveChangesInterceptor 04:10
  • توسعه DispatchDomainEventsInterceptor برای تریگر کردن هندلرهای رویداد دامنه 12:14
  • اجرا و تست ماژول کاتالوگ برای Dispatch کردن رویدادهای دامنه با EF SaveChanges Interceptor 07:06
  • مقدمه - توسعه یوزکیس اپلیکیشن با CQRS و MediatR 01:27
  • الگوی CQRS (تفکیک مسئولیت فرمان و کوئری) 03:01
  • پیاده‌سازی منطقی و فیزیکی الگوی CQRS 02:43
  • الگوی طراحی CQRS با کتابخانه MediatR (پیاده‌سازی منطقی CQRS) 04:11
  • توسعه کلاس هندلر ویژگی با CQRS و MediatR 09:35
  • ایجاد انتزاع در MediatR برای CQRS - جداسازی فرمان و کوئری - بخش 1 04:11
  • ایجاد انتزاع در MediatR برای CQRS - جداسازی فرمان و کوئری - بخش 2 04:46
  • مقدمه - توسعه یوزکیس اپلیکیشن کاتالوگ با CQRS و MediatR 01:16
  • یادآوری سریع تحلیل یوزکیس‌های اپلیکیشن ماژول کاتالوگ 01:43
  • توسعه ساختار پوشه‌های ماژول کاتالوگ برای CQRS 02:35
  • توسعه کلاس‌های DTO برای محصول در ماژول کاتالوگ 01:52
  • توسعه CreateProductCommand و هندلر محصولات در لایه اپلیکیشن ماژول کاتالوگ 05:25
  • توسعه CreateProductCommandHandler محصولات با استفاده از CatalogDbContext در کاتالوگ 03:51
  • توسعه UpdateProductCommand و هندلر محصولات با استفاده از CatalogDbContext 06:46
  • توسعه DeleteProductCommand و هندلر محصولات با استفاده از CatalogDbContext 03:46
  • توسعه کوئری‌های محصول با CQRS و MediatR در ماژول کاتالوگ 05:13
  • نگاشت با Mapster 03:33
  • توسعه کوئری‌های محصول با CQRS و MediatR در ماژول کاتالوگ با Mapster 02:31
  • توسعه کوئری‌های GetProductByCategory با CQRS و MediatR در ماژول کاتالوگ 03:44
  • توسعه کوئری‌های GetProductById با CQRS و MediatR در ماژول کاتالوگ 05:34
  • توسعه هندلرهای رویداد دامنه با MediatR INotificationHandler در کاتالوگ 05:42
  • توسعه هندلرهای رویداد دامنه با MediatR INotificationHandler - بخش 2 05:19
  • مقدمه - توسعه اندپوینت‌های API کاتالوگ با ارائه اندپوینت‌های Minimal API 01:29
  • الگوی طراحی REPR و چرخه عمر درخواست CQRS در MediatR 01:50
  • Minimal Apis و نصب کتابخانه Carter برای ارائه Minimal Apis 04:41
  • یادآوری سریع تحلیل اندپوینت‌های ماژول کاتالوگ 02:01
  • توسعه اندپوینت POST مربوط به CreateProduct با Carter و پیاده‌سازی ICarterModule - بخش 1 05:07
  • توسعه اندپوینت POST مربوط به CreateProduct با Carter و پیاده‌سازی ICarterModule - بخش 2 05:53
  • توسعه اندپوینت UpdateProduct برای REST APIs در ماژول کاتالوگ 05:31
  • توسعه اندپوینت DeleteProduct برای REST APIs در ماژول کاتالوگ 04:14
  • توسعه اندپوینت GetProducts برای REST APIs در ماژول کاتالوگ 04:35
  • توسعه اندپوینت GetProductById برای REST APIs در ماژول کاتالوگ 04:10
  • توسعه اندپوینت GetProductByCategory برای REST APIs در ماژول کاتالوگ 04:57
  • رجیستر کتابخانه‌های Carter در درخواست و سرویس تزریق وابستگی در Asp.Net 06:10
  • ایجاد متد افزونه برای ثبت Carter Assembly 06:24
  • ایجاد کالکشن Postman برای EShopModules 06:50
  • تست ماژول کاتالوگ - درخواست POST برای CreateProduct - اشکال‌زدایی Carter Minimal API 10:13
  • تست اندپوینت بروزرسانی محصول با CQRS و VSA در ماژول کاتالوگ 08:42
  • تست اندپوینت‌ دریافت محصول با CQRS و VSA در ماژول کاتالوگ 09:59
  • تست اندپوینت حذف محوصل با CQRS و VSA در ماژول کاتالوگ 04:08
  • مقدمه - توسعه مباحث Cross-cutting برای کاتالوگ و هر ماژول 01:35
  • رفتارهای پایپ‌لاین MediatR و کتابخانه Fluent Validation 04:04
  • افزودن مباحث Cross-cutting به کتابخانه کلاس مشترک برای استفاده در همه ماژول‌ها 02:43
  • اعمال اعتبارسنجی با AbstractValidator با استفاده از کتابخانه Fluent Validation - بخش 1 04:16
  • اعمال اعتبارسنجی با AbstractValidator با استفاده از کتابخانه Fluent Validation - بخش 2 07:08
  • رفتار پایپ‌لاین اعتبارسنجی با MediatR با استفاده از کتابخانه Fluent Validation 08:37
  • حذف Validator دستی و تست رفتار پایپ‌لاین اعتبارسنجی با MediatR 04:59
  • توسعه Validators فرمان CRUD با Fluent Validation 04:19
  • مدیریت گلوبال استثناها در ASP.NET Core با app.UseExceptionHandler 05:46
  • مدیریت مشترک استثناها به‌ صورت عمومی در ASP.NET Core با app.UseExceptionHandler 10:08
  • مدیریت گلوبال استثناها با رابط IExceptionHandler در Asp.Net Core 08:15
  • رجیستر و مدیریت استثناها سفارشی در Asp.net با متد AddExceptionHandler 08:22
  • رفتار لاگ کردن در پایپ‌لاین MediatR برای مباحث Cross-cutting 07:17
  • تست رفتار لاگ کردن برای همه درخواست‌های MediatR در ماژول کاتالوگ 06:06
  • لاگ کردن ساختاریافته با استفاده از Serilog در NET 8.0 Minimal APIs. 09:19
  • Serilog WriteTo Seq برای لاگ کردن ساختاریافته در NET. 07:39
  • توسعه کلاس صفحه‌بندی برای کوئری GetProducts با استفاده از CQRS و MediatR 03:47
  • توسعه کوئری GetProducts و اعمال صفحه‌بندی با استفاده از CQRS و MediatR 09:19
  • مقدمه - توسعه ماژول سبد خرید با معماری Vertical Slice و CQRS 01:15
  • تحلیل دامنه ماژول سبد خرید - مدل‌ها، یوزکیس‌ها، REST APIs و پایگاه‌ داده‌ها 04:08
  • تحلیل فنی ماژول سبد خرید - معماری‌ها، الگوها، کتابخانه‌ها، پوشه‌ها 02:43
  • توسعه مدل‌های انتیتی دامنه سبد خرید در انتیتی‌های دامنه سبد خرید 05:28
  • توسعه انتیتی مدل Rich Domain برای انتیتی‌های سبد خرید 05:35
  • مقدمه - توسعه زیرساخت داده سبد خرید با EF Core Code First 02:36
  • مراحل توسعه زیرساخت EF Core برای ماژول سبد خرید 03:05
  • توسعه آبجکت EF Core DbContext برای ذخیره انتیتی‌ها در زیرساخت سبد خرید 06:26
  • نگاشت آبجکت‌های DDD در انتیتی‌های EF - توسعه پیکربندی انتیتی EF Core 04:33
  • روابط EF Core 8 و نگاشت آبجکت مقدار DDD با ComplexType و Property 02:48
  • توسعه پیکربندی‌های انتیتی برای روابط SC و آیتم‌های SC 01:58
  • رشته اتصال EF Core به PostgreSQL در فایل appsettings.json 01:39
  • رجیستر EF Core DbContext در ابزار تزریق وابستگی Asp.Net برای PostgreSQL 04:35
  • ایجاد مهاجرت‌های EF Core برای BasketDbContext در زیرساخت سبد خرید 05:43
  • اجرای Docker-Compose در Visual Studio برای راه‌اندازی PostgreSQL روی Docker 02:04
  • اعمال مهاجرت‌های EF Core روی پایگاه‌ داده PostgreSQL با فرمان Update-Database 03:03
  • مهاجرت خودکار انتیتی‌های EF Core به PostgreSQL هنگام راه‌اندازی اپلیکیشن با کدنویسی 03:00
  • تست مهاجرت‌های خودکار با استفاده از متد افزونه UseMigration روی وب اپلیکیشن 04:55
  • مقدمه - توسعه یوزکیس‌های اپلیکیشن سبد خرید با CQRS و MediatR 01:07
  • توسعه ساختار پوشه‌ سبد خرید برای CQRS 03:23
  • توسعه کلاس‌های DTO برای سبد خرید در ماژول سبد خرید 02:36
  • توسعه CreateBasketCommand و هندلر سبد خرید در یوزکیس‌های اپلیکیشن سبد خرید 05:33
  • توسعه CreateBasketCommandHandler سبد خرید با استفاده از BasketDbContext در ماٰژول سبد خرید 04:46
  • توسعه DeleteBasketCommand و هندلر سبد خرید با استفاده از BasketDbContext 07:05
  • توسعه کوئری‌های سبد خرید با CQRS و MediatR در ماژول سبد خرید 04:34
  • توسعه AddItemIntoBasketHandler سبد خرید با CQRS و MediatR 05:58
  • توسعه RemoveItemFromBasketHandler سبد خرید با CQRS و MediatR 04:48
  • مقدمه - توسعه اندپوینت‌های API سبد خرید با ارائه اندپوینت‌های Minimal API 02:17
  • توسعه اندپوینت‌ POST مربوط به CreateBasket با Carter و پیاده‌سازی ICarterModule 08:12
  • توسعه اندپوینت‌ DeleteBasket با Carter و پیاده‌سازی ICarterModule 03:25
  • توسعه اندپوینت‌ GetBasket با Carter و پیاده‌سازی ICarterModule برای Minimal APIs 04:01
  • توسعه اندپوینت‌ AddItemIntoBasket با Carter و پیاده‌سازی ICarterModule 07:04
  • توسعه اندپوینت‌ RemoveItemFromBasket با Carter و پیاده‌سازی ICarterModule 05:13
  • رجیستر کتابخانه‌های MediatR و Carter در سرویس تزریق وابستگی Asp.Net 06:50
  • رجیستر کتابخانه‌های MediatR در سرویس و درخواست تزریق وابستگی Asp.Net 06:40
  • توسعه متد افزونه MediatR برای ثبت سفارش با Assembly 03:56
  • تست Basket API - درخواست POST برای CreateBasket - اشکال‌زدایی Carter Minimal API 06:39
  • تست اندپوینت‌‌های Get Basket با CQRS و VSA در ماژول سبد خرید 03:15
  • تست اندپوینت‌‌ DeleteBasket با CQRS و VSA در ماژول سبد خرید 02:42
  • تست اندپوینت‌‌ AddItemIntoBasket با CQRS و VSA در ماژول سبد خرید 08:18
  • تست اندپوینت‌‌ RemoveItemFromBasket با CQRS و VSA در ماژول سبد خرید 04:38
  • مقدمه - توسعه کش توزیع شده با Redis در ماژول سبد خرید 02:04
  • توسعه کلاس BasketRepository با استفاده از آبجکت EF Core DbContext 05:23
  • پیاده‌سازی کلاس IBasketRepository با استفاده از آبجکت EF Core DbContext 05:15
  • رجیستر IBasketRepository در DI ماژول سبد خرید 01:24
  • تزریق و استفاده از IBasketRepository در کلاس‌های هندلر در ماژول سبد خرید 07:35
  • تزریق و استفاده از IBasketRepository در کلاس‌های هندلر AddItem و RemoveItem 03:49
  • تست سریع اندپوینت سبد خرید با CQRS و VSA در ماژول سبد خرید 06:15
  • الگوی Cache-aside و ابطال Cache 03:28
  • الگوی Proxy، الگوی Decorator و کتابخانه Scrutor 03:32
  • توسعه CachedBasketRepository با الگوی Proxy و Decorator و Scrutor 04:04
  • توسعه CachedBasketRepository با الگوی Proxy و Decorator - بخش 2 10:56
  • توسعه CachedBasketRepository با الگوی Proxy و Decorator - بخش 3 07:23
  • رجیستر CachedBasketRepository تزئین‌ شده و StackExchangeRedis با Scrutor 06:33
  • رجیستر StackExchangeRedis در DI مشترک پروژه Api در Program.cs 04:05
  • راه‌اندازی Redis به‌ عنوان کش توزیع شده با استفاده از فایل Docker-compose برای محیط چندکانتینری 04:14
  • اجرای Docker-Compose در Visual Studio برای راه‌اندازی کش توزیع شده Redis روی Docker 03:13
  • اتصال کش Redis از ماژول سبد خرید محلی و ارسال درخواست GET برای کش سبد خرید 08:30
  • توسعه JsonConverter سفارشی برای سبد خرید و آیتم‌ها هنگام خواندن در Redis 07:52
  • توسعه JsonConverter سفارشی برای سبد خرید و آیتم‌ها - بخش 2 03:39
  • استفاده از JsonSerializerOptions سفارشی با JsonConverter برای سبد خرید و آیتم‌ها 04:15
  • تست سریع اندپوینت سبد خرید با CachedBasket Repository و JsonConverter سفارشی 10:15
  • مقدمه - ارتباطات همزمان بین ماژول‌ها با فراخوانی متدهای درون‌فرآیندی 04:10
  • معماری Monolith ماژولار چگونه ارتباط بین ماژول‌ها را مدیریت می‌کند؟ 02:31
  • یوزکیس‌های همزمان‌سازی ماژول سبد خرید - ارتباطات افزودن یک آیتم به سبد خرید 02:44
  • بررسی کلاس AddItemIntoBasketHandler - دریافت قیمت محصول از ماژول کاتالوگ 06:47
  • ارتباطات همزمان بین ماژول‌ها با استفاده از کتابخانه‌های کلاس قرارداد 05:58
  • مرحله 1 - ایجاد کتابخانه کلاس Catalog.Contracts 02:08
  • مرحله 2 - انتقال متدهای MediatR برای کوئری یا فرمان به Catalog.Contracts 06:03
  • تفکیک عملیات‌های مشترک مرتبط با قراردادهای CQRS در کتابخانه کلاس Shared.Contracts 12:37
  • مرحله 3 - اصلاح ماژول کاتالوگ برای دریافت مرجع از کتابخانه کلاس Catalog.Contracts 06:51
  • مرحله 4 - دریافت مرجع سبد خرید از کتابخانه کلاس Catalog.Contracts 03:16
  • مرحله 6 - دریافت مقادیر انتیتی محصول در AddItemIntoBasketHandler و تعیین قیمت 05:14
  • تست فراخوانی همزمان AddItemIntoBasket در سبد خرید به ماژول کاتالوگ برای دریافت داده محصول 08:47
  • مرحله 7 - مهاجرت به میکروسرویس‌ها - تکامل قراردادها در ارتباطات همزمان 03:26
  • مقدمه - ارتباطات غیرهمزمان بین ماژول‌ها با RabbitMQ و MassTransit 01:43
  • معماری Monolith ماژولار چگونه ارتباطات غیرهمزمان بین ماژول‌ها را مدیریت می‌کند؟ 03:35
  • الگوی پیام‌رسانی Fan-Out Publish/Subscribe 02:44
  • یادآوری سریع - رویداد دامنه در برابر رویداد یکپارچه‌سازی - رویداد دامنه منجر به رویداد یکپارچه‌سازی می‌شود 01:40
  • تحلیل دامنه ارتباطات غیرهمزمان بین ماژول‌های کاتالوگ و سبد خرید 03:15
  • تحلیل فنی ارتباطات غیرهمزمان بین ماژول‌های کاتالوگ و سبد خرید 04:41
  • مراحل توسعه ارتباطات غیرهمزمان بین ماژول‌های کاتالوگ و سبد خرید 03:08
  • مرحله 1 - بررسی رویداد دامنه و رویداد یکپارچه‌سازی در ماژول کاتالوگ 04:05
  • مرحله 2 - ایجاد کتابخانه کلاس Shared.Messaging 04:12
  • توسعه رویداد ProductPriceChangedIntegration در کتابخانه کلاس Shared.Messaging 03:03
  • توسعه متدهای افزونه MassTransit برای رجیستر اتصال RabbitMQ در DI 04:07
  • توسعه متدهای افزونه MassTransit برای رجیستر اتصال در DI کاتالوگ 02:46
  • افزودن مرجع پروژه به Shared.Messaging در ماژول‌های کاتالوگ و سبد خرید 03:18
  • ثبت پکیج‌های MassTransit در DI پروژه Bootstrapper Api در فایل Program.cs 04:55
  • رویداد یکپارچه‌سازی ProductPriceChanged - چگونه رویداد دامنه به رویداد یکپارچه‌سازی منتهی می‌شود؟ 01:36
  • مرحله 3 - انتشار رویداد یکپارچه‌سازی UpdatePrice توسط کاتالوگ 03:48
  • مرحله 4 - Subscribe و consume کردن رویداد یکپارچه‌سازی ProductPriceChanged توسط سبد خرید 05:13
  • توسعه قابلیت UpdateItemPriceInBasket در ماژول سبد خرید - بخش 1 04:16
  • توسعه قابلیت UpdateItemPriceInBasket در ماژول سبد خرید - بخش 2 05:20
  • فراخوانی UpdateItemPriceInBasketCommand در ProductPriceChangedIntegrationEventHandler 04:15
  • تست - ProductPriceChangedIntegrationEvent با In-memory MassTransit 13:46
  • RabbitMQ چیست و کامپوننت‌های اصلی آن کدامند؟ (Producer و Queue و Consumer) 02:36
  • انتقال In-memory Bus به Message Broker مبتنی بر RabbitMQ در MassTransit 04:42
  • توسعه متدهای افزونه MassTransit برای رجیستر اتصال RabbitMQ در DI 04:20
  • راه‌اندازی RabbitMQ برای ارتباطات غیرهمزمان با استفاده از فایل Docker-compose 04:07
  • اجرای Docker-Compose در Visual Studio برای راه‌اندازی RabbitMQ روی Docker 02:56
  • تست - ProductPriceChangedIntegrationEvent با RabbitMQ و MassTransit 12:59
  • مقدمه - توسعه ماژول هویت کاربر با احراز هویت Keycloak 01:52
  • مدیریت هویت و دسترسی Keycloak 02:00
  • مزیت‌های اصلی استفاده از Keycloak 02:26
  • بهترین شیوه‌ها هنگام استفاده از Keycloak 03:03
  • جریان‌های OAuth2 + OpenID Connect با Keycloak 05:16
  • Keycloak به‌ عنوان سرویس پشتیبان برای ماژول‌های Monolith ماژولار 02:35
  • راه‌اندازی Keycloak در فایل Docker-compose برای ارائه‌دهنده هویت 03:26
  • اجرای Docker-Compose در Visual Studio و راه‌اندازی ارائه‌دهنده هویت Keycloak روی Docker 05:20
  • راه‌اندازی پایگاه‌ داده هویت کاربر Keycloak به‌ صورت اسکیمای هویت PostgreSQL 07:11
  • اجرای docker-compose برای تولید اسکیمای هویت Keycloak و PostgreSQL 03:55
  • ایجاد حوزه، کاربر و کلاینت برای OpenID Connect با ارائه‌دهنده هویت Keycloak 10:19
  • ایمن‌سازی ماژول‌های فروشگاه اینترنتی با Keycloak OpenID Connect در AspNet 08:45
  • ایمن‌سازی و تست اندپوینت‌های سبد خرید با یکپارچه‌سازی Keycloak 03:36
  • دریافت توکن JwtBearer برای OpenID Connect با هویت Keycloak 08:06
  • دریافت کاربر فعلی از توکن با ClaimsPrincipal در احراز هویت AspNet 04:31
  • تست - ایجاد سبد خرید با کاربر فعلی از توکن با ClaimsPrincipal 04:56
  • ایمن‌سازی اندپوینت‌های سبد خرید با OpenID Connect و استفاده از ارائه‌دهنده هویت Keycloak 08:45
  • مقدمه - ماژول سفارشات با معماری Vertical Slice و CQRS 02:59
  • تحلیل دامنه ماژول سفارشات - مدل‌ها، یوزکیس‌ها، REST APIs و پایگاه‌ داده‌ها 04:30
  • تحلیل فنی ماژول سفارشات - معماری‌ها، الگوها، کتابخانه‌ها 02:56
  • توسعه انتیتی‌های دامنه سفارشات با الگوهای طراحی دامنه محور تاکتیکی 06:49
  • توسعه زیرساخت داده سفارشات با EF Core Code First و PostgreSQL 08:30
  • توسعه لایه اپلیکیشن برای سفارشات با CQRS و MediatR 06:26
  • توسعه اندپوینت‌های API سفارشات با ارائه Minimal API توسط Carter 10:02
  • مقدمه - الگوی Outbox برای پیام‌رسانی قابل‌ اعتماد در میکروسرویس‌ها 02:20
  • تحلیل رویداد چک‌اوت سبد خرید بین ماژول‌های سبد خرید و سفارشات 07:17
  • توسعه رویداد BasketCheckout در کتابخانه کلاس Shared.Messaging 03:12
  • یادآوری سریع راه‌اندازی ارتباطات غیرهمزمان MassTransit و RabbitMQ 03:24
  • توسعه پوشه ویژگی BasketCheckout برای ارائه اندپوینت POST و رویداد انتشار 05:05
  • توسعه متد هندلر چک‌اوت سبد خرید برای انتشار رویداد به RabbitMQ از طریق MassTran 09:43
  • مشکل Dual-write و الگوی Outbox 05:06
  • توسعه الگوی Outbox برای پیام‌رسانی قابل‌ اعتماد در میکروسرویس‌ها با BasketCheckout 01:05
  • مرحله 1 و 2 - ایجاد انتیتی Outbox و اصلاح DbContext 08:04
  • مرحله 3 - بروزرسانی CheckoutBasketHandler با Outbox و راه‌اندازی و کامیت کردن پایگاه‌ داده 07:52
  • مرحله 4 - ایجاد سرویس پس‌زمینه برای پردازش پیام‌های Outbox 11:32
  • ماژول سفارشات برای Subscribe-Consume کردن رویداد BasketCheckout از RabbitMQ 02:50
  • رجیستر ماژول سفارشات در MassTransit برای ارتباطات غیرهمزمان رویداد محور 02:26
  • توسعه هندلر رویداد یکپارچه‌سازی Consumer رویداد چک‌اوت سبد خرید 08:33
  • تست - یوزکیس چک‌اوت سبد خرید - ارتباطات غیرهمزمان قابل‌ اعتماد با الگوی Outbox - بخش 1 07:35
  • تست - یوزکیس چک‌اوت سبد خرید - ارتباطات غیرهمزمان قابل‌ اعتماد با الگوی Outbox - بخش 2 11:03
  • آزمون Outbox None
  • مقدمه - کانتینرسازی و ارکستراسیون اپلیکیشن ماژولار فروشگاه اینترنتی در Docker-Compose 01:12
  • استراتژی استقرار Monolith ماژولار فروشگاه اینترنتی 01:25
  • افزودن پروژه Asp.Net Api به فایل Docker-compose برای محیط Docker چندکانتینری 02:44
  • تنظیم متغیرهای محیطی پیکربندی پروژه Api بر اساس appsettings 09:57
  • تست همه‌ موارد - اجرای همه‌ موارد با Docker-compose همراه با پروژه Api و سرویس‌های پشتیبان 07:31
  • تیت ماژول سبد خرید - اجرای همه‌ موارد با Docker-compose همراه با پروژه Api 07:25
  • تست CheckoutBasket با RabbitMQ و ماژول سفارشات - اجرای همه‌ موارد با Docker-compose همراه با Api 04:26
  • تست ماژول سفارشات - اجرای همه‌ موارد با Docker-compose همراه با پروژه Api 01:44
  • اپلیکیشن‌های کلاینت - Consume کردن ماژول Api در ماژول‌های فروشگاه اینترنتی 05:21
  • مهاجرت به میکروسرویس‌ها - چالش‌ها و ملاحظات 02:35
  • الگوی Strangler Fig برای ریفکتور کردن Monolith به میکروسرویس‌ها 02:17
  • مراحل ریفکتور کردن Monolith به میکروسرویس‌ها 00:52
  • مرحله 1 - تجزیه ماژول‌های فروشگاه اینترنتی به میکروسرویس‌ها با کانتکس‌های محدود DDD 00:50
  • مرحله 2 - اولویت‌بندی ماژول‌ها و سرویس‌ها برای مهاجرت 00:49
  • مرحله 3 - استخراج یک سرویس از Monolith 00:50
  • مرحله 4 - مدیریت یک پایگاه‌ داده Monolith 01:00
  • مرحله 5 - طراحی و پیاده‌سازی ارتباطات بین سرویس‌ها 01:45
  • مرحله 6 - ارتباطات غیرهمزمان بین سرویس‌ها 01:12
  • مرحله 7 - تراکنش‌های توزیع‌ شده و سازگاری داده‌ 01:00
  • مرحله 8 - استقرار میکروسرویس‌ها پس از Monolith 01:28
  • میکروسرویس‌های NET 8. - بررسی DDD و CQRS، معماری تمیز و عمودی 02:31
  • تشکر 00:58

14,718,800 3,679,700 تومان

مشخصات آموزش

بوت‌کمپ بک‌اند NET 8. - بررسی Modulith ،VSA ،DDD ،CQRS و Outbox

  • تاریخ به روز رسانی: 1405/04/02
  • سطح دوره:Alls
  • تعداد درس:328
  • مدت زمان :24:41:46
  • حجم :12.79GB
  • زبان:دوبله زبان فارسی
  • دوره آموزشی:AI Academy

آموزش های مرتبط

The Great Courses
2,260,000 452,000 تومان
  • زمان: 03:02:02
  • تعداد درس: 14
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
795,000 159,000 تومان
  • زمان: 58:00
  • تعداد درس: 12
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
19,403,000 3,880,600 تومان
  • زمان: 26:02:40
  • تعداد درس: 175
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
8,508,000 1,701,600 تومان
  • زمان: 11:25:13
  • تعداد درس: 94
  • سطح دوره:
  • زبان: دوبله فارسی
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
1,833,000 366,600 تومان
  • زمان: 02:27:39
  • تعداد درس: 24
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
6,100,500 1,220,100 تومان
  • زمان: 08:11:21
  • تعداد درس: 28
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
7,256,500 1,451,300 تومان
  • زمان: 09:44:25
  • تعداد درس: 67
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
3,634,500 726,900 تومان
  • زمان: 04:52:43
  • تعداد درس: 38
  • سطح دوره:
  • زبان: دوبله فارسی

آیا سوالی دارید؟

ما به شما کمک خواهیم کرد تا شغل و رشد خود را افزایش دهید.
امروز با ما تماس بگیرید