آموزش ساخت مونو لیت‌های ماژولار با .NET 8 - آخرین آپدیت

دانلود Building Modular Monoliths with .NET 8

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: به‌روزرسانی شده در می ۲۰۲۵. این دوره اکنون دارای قابلیت Coursera Coach است! روشی هوشمندانه‌تر برای یادگیری با گفتگوهای تعاملی و بلادرنگ که به شما کمک می‌کند دانش خود را آزمایش کنید، پیش‌فرض‌ها را به چالش بکشید و در حین پیشروی در دوره، درک خود را عمیق‌تر کنید. در این دوره، شما یاد می‌گیرید که چگونه مونو لیت‌های ماژولار (Modular Monoliths) را با استفاده از .NET 8 توسعه دهید؛ رویکردی مدرن برای ساخت اپلیکیشن‌های مقیاس‌پذیر، قابل نگهداری و انعطاف‌پذیر. در پایان، شما در ایجاد مونو لیت‌های ماژولاری که مزایای هر دو معماری سنتی مونو لیت و میکروسرویس‌ها را ارائه می‌دهند و از نقاط ضعف هر دو اجتناب می‌کنند، مهارت خواهید یافت. شما مفاهیم کلیدی مانند معماری برش عمودی (Vertical Slice Architecture)، تزریق وابستگی (Dependency Injection)، طراحی دامنه-محور (DDD) و معماری پاک (Clean Architecture) را بررسی کرده و تجربه عملی در ساخت اجزای ماژولار کسب خواهید کرد. دوره با بررسی کلی مونو لیت‌های ماژولار و مزایای آن‌ها نسبت به معماری‌های مونو لیت سنتی و میکروسرویس‌ها آغاز می‌شود. همچنین نگاهی عمیق به محدودیت‌های مونو لیت‌های سنتی و مشکلات رایج معماری میکروسرویس‌ها، مانند وابستگی شدید به تکنولوژی (Technology Lock-in) و مونو لیت‌های توزیع‌شده خواهید داشت. پس از ایجاد یک درک بنیادی محکم، مونو لیت‌های ماژولار را به‌ویژه از طریق مثال‌های واقعی مانند معماری Shopify و انتقال آمازون از میکروسرویس‌ها به ساختار مونو لیت بررسی خواهید کرد. در ادامه، به ایجاد یک راه‌کار کامل مونو لیت ماژولار می‌پردازید که با تنظیم ساختارهای پروژه، ایجاد سلسله‌مراتب پوشه‌ها و سازماندهی وابستگی‌ها شروع می‌شود. شما لایه‌ها و ماژول‌های مختلف اپلیکیشن را بررسی می‌کنید و اطمینان حاصل می‌کنید که هر ماژول با بهترین متدهای مقیاس‌پذیری و قابلیت نگهداری توسعه یافته است. توجه ویژه‌ای به مدل‌سازی دامنه با استفاده از DDD، پیاده‌سازی CQRS و ساختاربندی APIها برای دستیابی به جداسازی دغدغه‌ها (Separation of Concerns) در حین بهینه‌سازی برای ماژولار بودن داده می‌شود. این دوره برای توسعه‌دهندگانی که به دنبال انتقال از مونو لیت‌های سنتی به معماری‌های ماژولار هستند یا کسانی که به دنبال درک عمیقی از مونو لیت‌های ماژولار مبتنی بر .NET می‌باشند، ایده‌آل است. هیچ تجربه قبلی با .NET 8 مورد نیاز نیست، اگرچه درک ابتدایی از C# و اصول توسعه نرم‌افزار مفید خواهد بود. چه روی اپلیکیشن‌های سازمانی بزرگ کار کنید و چه روی پروژه‌های کوچک‌تر، این دوره ابزارها و تکنیک‌های لازم برای طراحی و پیاده‌سازی یک راه‌کار با قابلیت نگهداری بالا و مقیاس‌پذیر را فراهم می‌کند.

سرفصل ها و درس ها

مقدمه Introduction

  • مقدمه‌ای بر تخصص Introduction to the Specialization

  • پیش‌نیازها، سورس کد و اسلایدهای دوره Prerequisites, Source Code and Course Slides

  • اجرای اپلیکیشن نهایی Run the Final Application

  • ساختار کد پروژه Project Code Structure

  • معماری‌ها، الگوها، کتابخانه‌ها و بهترین متدهای مونو لیت ماژولار Modular Monoliths Architectures, Patterns, Libraries and Best Practices

  • نحوه دنبال کردن دوره (جریان دوره و روش یادگیری) How to Follow the Course (The Course Flow and Way of Learning)

معماری مونو لیت - مشکل مونو لیت‌های سنتی چیست؟ Monolithic Architecture - What's wrong with Traditional Monoliths?

  • مونو لیت‌های سنتی (معماری مونو لیتیک) چیستند؟ What is Traditional Monoliths (Monolithic Architecture)?

  • مشکل معماری مونو لیت سنتی در چیست؟ What's wrong with Traditional Monolithic Architecture?

  • قفل تکنولوژی و چرخه ترس در معماری مونو لیت سنتی Technology Lock-In and Fear Cycle in Traditional Monolithic Architecture

  • گلوله بزرگ گل و لای (Big Ball of Mud) Big Ball of Mud

معماری‌های میکروسرویس - چرا برای همه پروژه‌ها مناسب نیست؟ Microservices Architectures - Why it is not fit for all projects?

  • میکروسرویس‌ها و معماری میکروسرویس چیستند؟ What are Microservices and Microservices Architecture?

  • مشکل معماری میکروسرویس در چیست؟ What's wrong with Microservices Architecture?

  • آنتی-پترن میکروسرویس: مونو لیت توزیع شده Microservices Antipattern: The Distributed Monolith

  • مورد آمازون: بازطراحی از میکروسرویس‌های توزیع شده به مونو لیت Amazon Case: Rearchitecting from a Distributed Microservices to a Monolith

پل ارتباطی: معماری‌های مونو لیت ماژولار - دروازه‌ای بین مونو لیت و میکروسرویس The Bridge: Modular Monolith Architectures - Gateway between Monolithic and MS

  • معماری مونو لیت ماژولار (Modulith) چیست؟ What is Modular Monolithic (Modulith) Architecture?

  • چرا مونو لیت ماژولار؟ مزایا نسبت به میکروسرویس‌ها Why Modular Monoliths? Advantages over Microservices?

  • رویکردهای «اول مونو لیت» از مارتین فاولر و سام نیومن Monolith First Approaches from Martin Fowler and Sam Newman

  • نقطه شروع برای میکروسرویس‌ها: انتقال تدریجی با بازسازی افزایشی Starting Point for Microservices: Gradually Transition with Incremental Refactor

  • معماری مونو لیت ماژولار Shopify Shopify Modular Monolithic Architecture

  • تجزیه ماژول‌های EShop: ماژول‌های کاتالوگ، سبد خرید، هویت و سفارشات Decomposition of EShop Modules: Catalog, Basket, Identity, and Ordering Modules

ایجاد ساختار راه‌کار پروژه مونو لیت ماژولار EShop Create EShop Modular Monolith Project Solution Structure

  • مقدمه - ایجاد ساختار راه‌کار پروژه مونو لیت ماژولار EShop Introduction - Create EShop Modular Monolith Project Solution Structure

  • ایجاد مخزن گیت‌هاب برای معماری مونو لیت ماژولار EShop Create GitHub Repository for EShop Modular Monolithic Architecture

  • ایجاد راه‌کار خالی جدید: eshop modular monoliths Create New Blank Solution: eshop-modular-monoliths

  • ساختار پوشه‌بندی مونو لیت ماژولار: Bootstrapper, Modules, Shared Modular Monolith Folder Structure: Bootstrapper, Modules, Shared

  • ایجاد پروژه Bootstrapper Api Create Bootstrapper Api Project

  • پیکربندی پروژه وب خالی به Bootstrapper Api مونو لیت ماژولار Configure Empty Web Project to Bootstrapper Api of Modular Monolith

  • ایجاد پوشه‌های ماژول بر اساس تحلیل Bounded Context در DDD Create Modules Folders according to DDD Bounded Context Analysis

  • معماری خارجی در مقابل معماری داخلی مونو لیت‌های ماژولار External vs Internal Architecture of Modular Monoliths Architecture

  • معماری برش عمودی (Vertical Slice Architecture) Vertical Slice Architecture

  • معماری پاک (Clean Architecture) Clean Architecture

  • مقایسه معماری برش عمودی در برابر معماری پاک Vertical Slice versus Clean Architecture

  • ایجاد پروژه‌های ماژول به عنوان Class Library Create Module Projects as a Class Library

  • الگوی Shared Kernel در DDD Shared Kernel Pattern in DDD

  • ایجاد پروژه Shared Kernel Class Library برای تمامی ماژول‌ها Create Shared Kernel Class Library Project for All Modules

  • وابستگی‌های پروژه Shared به پروژه‌های ماژول Shared Project Dependencies to Modules Projects

  • وابستگی‌های ماژول به پروژه Bootstrapper Asp.Net Api Module Dependencies to Bootstrapper Asp.Net Api Project

اتصال وابستگی‌ها بین ماژول‌ها (مدیریت DI ماژول‌ها) Wire-up Dependencies Between Modules (DI Management of Modules)

  • مقدمه - اتصال وابستگی‌ها بین ماژول‌ها (مدیریت DI ماژول‌ها) Introduction - Wire-up Dependencies Between Modules (DI Management of Modules)

  • مدیریت تزریق وابستگی Asp.net و فایل Program.cs Asp.net Dependency Injection Management and Program.cs

  • اتصال وابستگی‌ها بین ماژول‌ها Wiring up dependencies between modules

  • توسعه متد extension مدل AddCatalogModule در CatalogModule.cs Develop AddCatalogModule extension method in CatalogModule.cs

  • ثبت وابستگی‌های کاتالوگ در Program.cs Registering Catalog Dependencies into Program.cs

  • توسعه متدهای extension مدل AddBasketModule و AddOrderingModule Develop AddBasketModule, AddOrderingModule extension methods

  • ثبت وابستگی‌های سبد خرید و سفارشات در Program.cs Registering Basket and Ordering Dependencies into Program.cs

  • میان‌افزارهای Asp.net و خط لوله درخواست‌های HTTP Asp.net Middlewares and HTTP Request Pipeline

  • پیکربندی خط لوله درخواست‌های HTTP برای ماژول‌ها در Program.cs Configure HTTP Request Pipelines for Modules in Program.cs

  • بررسی استفاده از انتزاع‌های کلاس WebApplication و نصب پکیج‌های مورد نیاز Examine WebApplication Class Use Abstractions and Install Required Packages

  • توسعه متد extension مدل UseCatalogModule برای پیکربندی درخواست HTTP ماژول Develop UseCatalogModule extension method for Module Configure the HTTP request

  • یکپارچه‌سازی UseCatalogModule در Program.cs Integrating UseCatalogModule in Program.cs

  • توسعه متدهای extension مدل UseBasketModule و UseOrderingModule برای پیکربندی ماژول Develop UseBasketModule and UseOrderingModule extension method for Module Config

  • یکپارچه‌سازی متدهای UseBasketModule و UseOrderingModule در Program.cs Integrating UseBasketModule and UseOrderingModule extension method in Program.cs

  • افزودن GlobalUsings.cs برای هر پروژه جهت جلوگیری از تکرار دستورات using Add GlobalUsings.cs for Each Project to Avoid Redundant Using Statements

اولین ماژول: ماژول کاتالوگ با معماری برش عمودی و CQRS First Module: Catalog Module with Vertical Slice Architecture and CQRS

  • مقدمه - اولین ماژول: ماژول کاتالوگ با معماری برش عمودی Introduction - First Module: Catalog Module with Vertical Slice Architecture

  • تحلیل دامنه ماژول کاتالوگ: مدل‌ها، Use Caseها، Rest APIها، پایگاه‌های داده Domain Analysis of Catalog Module: Models, UCs, Rest APIs, Databases

  • تحلیل فنی ماژول کاتالوگ: معماری‌ها، الگوها، کتابخانه‌ها، پوشه‌ها Technical Analysis of Catalog Module: Architectures, Patterns, Libraries, Folder

  • روش توسعه: Shared > Modules > API Way of Development: Shared -> Modules -> API

توسعه دامنه مشترک برای انتزاع تاکتیکی DDD (Entity, Aggregate, Events) Develop Shared Domain for Tactical DDD Abstraction (Entity, Aggregate, Events)

  • مقدمه - توسعه دامنه مشترک برای انتزاع تاکتیکی DDD Introduction - Develop Shared Domain for Tactical DDD Abstraction

  • طراحی دامنه محور (DDD) Domain Driven Design - DDD

  • طراحی دامنه محور تاکتیکی: موجودیت‌ها، اشیاء مقدار، مجموعه‌ها و ریشه مجموعه‌ها Tactical Domain-Driven Design: Entities, Value Objects, Aggregates, A. Roots

  • توسعه انتزاع‌های DDD (Entity, Aggregate, DomainEvent) در کتابخانه Shared Develop DDD Abstractions (Entity, Aggregate, DomainEvent) in Shared Library

  • توسعه اینترفیس IDomainEvent در انتزاع تاکتیکی DDD با استفاده از MediatR Develop IDomainEvent interface in Tactical DDD Abstraction using MediatR

  • توسعه کلاس‌های Aggregate در انتزاع تاکتیکی DDD Develop Aggregate classes in Tactical DDD Abstraction

توسعه دامنه کاتالوگ با مدل‌های موجودیت دامنه محصول Develop Catalog Domain with Product Domain Entity Models

  • مقدمه - توسعه دامنه کاتالوگ با مدل‌های موجودیت دامنه محصول Introduction - Develop Catalog Domain with Product Domain Entity Models

  • توسعه مدل‌های موجودیت دامنه محصول در مدل‌های دامنه ماژول کاتالوگ Develop Product Domain Entity Models in Catalog Module Domain Models

  • مقایسه مدل‌های دامنه کم‌خون (Anemic) در برابر مدل‌های غنی (Rich) در DDD Anemic-domain vs Rich-domain Model Entities in DDD

  • توسعه موجودیت مدل دامنه غنی DDD برای موجودیت محصول Develop DDD Rich-domain model Entity for Product Entity

  • رویدادهای دامنه در DDD و تفاوت رویدادهای دامنه در مقابل رویدادهای یکپارچه‌ساز (Integration) Domain Events in DDD and Domain vs Integration Events

  • توسعه رویدادهای دامنه ایجاد و به‌روزرسانی محصول در ماژول کاتالوگ Develop Product Created and Updated Domain Event in Catalog Module

  • ایجاد رویدادهای دامنه ProductCreated و ProductPriceChanged در ماژول کاتالوگ Raise ProductCreated and ProductPriceChanged Domain Event in Catalog Module

مدیریت داده‌های مونو لیت ماژولار: راه‌اندازی Postgres به عنوان پایگاه داده اصلی Data Management of Modular Monolith: Setup Postgres as a Main Database

  • مقدمه - مدیریت داده‌های مونو لیت ماژولار: راه‌اندازی Postgres DB Introduction - Data Management of Modular Monolith: Setup Postgres DB

  • مدیریت داده‌های مونو لیت‌های ماژولار: ۴ استراتژی جداسازی داده‌ها Data Management of Modular Monoliths: 4 Data Isolation Strategies

  • بهترین متد: جداسازی Schema پایگاه داده ماژول‌ها در اپلیکیشن‌های مونو لیت ماژولار Best Practice: DB Schema separation of Modules in Modular Monoliths apps

  • شیء Multi context EF DB Context برای جداسازی Schema جهت ایزولاسیون داده‌ها Multi-context EF DB Context object for DB Separate Schema for Data Isolation

  • سرویس‌های پشتیبان برای معماری‌های Cloud Native Backing Services for Cloud-Native Architectures

  • استراتژی استقرار مونو لیت ماژولار EShop EShop Modular Monolith Deployment Strategy

  • راه‌اندازی PostgreSQL DB با استفاده از فایل Docker compose برای محیط داکر چند کانتینری Setup PostgreSQL DB using Docker-compose file for Multi-container Docker env

  • افزودن ایمیج PostgreSQL DB به فایل Docker compose Add PostgreSQL DB image into Docker-compose file for Multi-container Docker env

  • اجرای Docker Compose در ویژوال استودیو برای راه‌اندازی PostgreSQL بر روی داکر Run Docker-Compose on Visual Studio to setup PostgreSQL DB on Docker

  • اتصال و مرور PostgreSQL DB با استفاده از pgAdmin Connect and Browse PostgreSQL DB using pgAdmin

توسعه زیرساخت داده‌های مشترک و کاتالوگ با EF Core Code First Develop Shared and Catalog Data-Infrastructure with EF Core Code First

  • مقدمه - توسعه لایه زیرساخت داده‌های مشترک و کاتالوگ با EF Core Introduction - Develop Shared and Catalog Data-Infrastructure Layer with EF Core

  • ویژگی‌های EF Core 8، رویکرد Code First، مهاجرت‌ها (Migrations) و اتصال به PostgreSQL EF Core 8 Features, Code First Approach, Migrations and PostgreSQL Connection

  • مراحل توسعه EF Core برای زیرساخت داده‌های مشترک و کاتالوگ Steps of EF Core Developments for Shared and Catalog Data-Infrastructure

  • نصب پکیج‌های NuGet مربوط به EF Core در کتابخانه Shared Install EF Core NuGet Packages in Shared Library

  • توسعه شیء DbContext در EF Core برای ذخیره موجودیت‌ها در ماژول کاتالوگ Develop EF Core DbContext Object for Storing Entities in Catalog Module

  • نگاشت اشیاء DDD به موجودیت‌های EF - توسعه پیکربندی‌های موجودیت EF Core Mapping DDD Objects to EF Entities - Develop EF Core Entity Configurations

  • رشته اتصال (Connection String) PostgreSQL در فایل appsettings.json EF Core PostgreSQL Connection String in appsettings.json file

  • ثبت EF Core DbContext در ابزار DependencyInjection برای PostgreSQL Register EF Core DbContext in Asp.Net DependencyInjection Tool for PostgreSQL

  • ایجاد مهاجرت‌های EF Core برای CatalogDbContext - بخش اول Create EF Core Migrations for CatalogDbContext - Part 1

  • ایجاد مهاجرت‌های EF Core برای CatalogDbContext - بخش دوم Create EF Core Migrations for CatalogDbContext - Part 2

  • بررسی و اجرای Docker Compose در ویژوال استودیو برای راه‌اندازی PostgreSQL Review and Run Docker-Compose on Visual Studio to setup PostgreSQL DB on Docker

  • اعمال مهاجرت‌های EF Core بر روی PostgreSQL با دستور Update Database Apply EF Core Migrations to PostgreSQL DB with Update-Database Command

  • مهاجرت خودکار موجودیت‌های EF Core به PostgreSQL هنگام اجرای اپلیکیشن Auto Migrate EF Core Entities to PostgreSQL DB when Application Startup

  • توسعه متد Extension مدل UseMigration برای مهاجرت و Seed داده‌های DB Develop Generic UseMigration Extension Method for DB Migration and Seed

  • استفاده از متد UseMigration در کلاس‌های DependencyInjection ماژول Using UseMigration Extension Method on Module DependencyInjection Classes

  • تست مهاجرت‌های خودکار با متد UseMigration در WebApplication Test Auto-Migrations with UseMigration Extension Method on WebApplication

  • تزریق داده‌های محصول EShopDb هنگام اجرای اپلیکیشن بلافاصله پس از UseMigration Seed EShopDb Product Data When Application Startup Just After UseMigration

  • اجرای ماژول کاتالوگ برای مهاجرت و Seed داده‌های EShopDb با متد UseMigration Run Catalog Module to Migrate and Seed EShopDb with UseMigration Method

  • اینترسپتورهای EF Core: SaveChangesInterceptor برای حسابرسی (Auditing) موجودیت‌ها EF Core Interceptors: SaveChangesInterceptor for Auditing Entities

  • توسعه SaveChangesInterceptor برای حسابرسی موجودیت‌های سفارش Develop SaveChangesInterceptor to Auditing Entities for Order Entities

  • اجرا و تست ماژول کاتالوگ برای حسابرسی با EF Save Changes Interceptor Run & Test Catalog Module for Audit with EF Save Changes Interceptor

  • ارسال رویدادهای دامنه با EF Core SaveChangesInterceptor Dispatch Domain Events with EF Core SaveChangesInterceptor

  • توسعه DispatchDomainEventsInterceptor برای فعال‌سازی هندلرهای رویداد دامنه Develop DispatchDomainEventsInterceptor to Trigger Domain Event Handlers

  • اجرا و تست ماژول کاتالوگ برای ارسال DomainEvents با EF SaveChanges Interceptor Run & Test Catalog Module for Dispatch DomainEvents with EF SaveChanges Interceptor

نمایش نظرات

آموزش ساخت مونو لیت‌های ماژولار با .NET 8
جزییات دوره
11h 27m
102
(آخرین آپدیت)
520
- از 5
دارد
دارد
دارد
Chris Croft
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Chris Croft Chris Croft

مربی مدیریت، سخنران، نویسنده