آنچه یاد خواهید گرفت:
معماری مونولیت ماژولار (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 ماژولار علاقهمند هستند.