لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش ساخت مونو لیتهای ماژولار با .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
مقایسه معماری برش عمودی در برابر معماری پاک
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
روش توسعه: 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
راهاندازی 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
نمایش نظرات