دوره NET Microservices ,DDD, CQRS,Vertical/Clean Architecture using Docker.

در دوره .NET Microservices, DDD, CQRS, Vertical/Clean Architecture using Docker یاد می‌گیری چگونه سیستم‌های مقیاس‌پذیر و مدرن را با معماری‌های حرفه‌ای طراحی و پیاده‌سازی کنی. این دوره مباحثی چون طراحی مایکروسرویس‌ها با .NET، پیاده‌سازی Domain-Driven Design (DDD)، الگوی CQRS، مدیریت Dependencyها، تست‌پذیری و استقرار سرویس‌ها با Docker و Containerization را به‌صورت عملی آموزش می‌دهد. هدف این دوره، ساخت نرم‌افزارهایی تمیز، ماژولار و قابل نگهداری است که در محیط‌های ابری به‌خوبی اجرا شوند. مناسب برای توسعه‌دهندگان بک‌اند و مهندسان نرم‌افزار حرفه‌ای.

14,900,000 تومان

دوره (2)
نام استاد

محمدرضا بردال

زمان دوره

60 ساعت

پیش نیاز

Web API

کلاس‌های فعال این دوره

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

Prerequisites •

?What are Microservices •

Monolithic Architecture •

Microservices Architecture •

  • Microservice architecture
    • Overview
    • Autonomous
    • Overall service architecture
  • Choosing an eShop as a case study
    • Identifying eShop services
  • Starting the project by the Catalog service
    • Choosing an architecture for the service
    • Setup the project structure
    • Create the required layers
  • Clean/Onion Architecture
    • Layers
    • Domain
    • Application
    • Infrastructure
    • Presentation
  • Domain Driven Design (DDD)
    • Value Object
    • Validation Rule
    • Entity
    • Invariant
    • Aggregate
    • Aggregate Root
    • Factory
    • Domain Event
    • Repository
    • Domain Service
  • Structured Error Handling
    • Result Pattern
    • Error
    • Type
    • Massage
  • Test Driven Development (TDD)
    • Unit Test
    • Test-First, Code-First
    • SUT, RIGHT-BICEP, CORRECT, RGY Development Cycle
    • xUnit
    • Fluent Assertion, Moq
    • Live Test
  • Implementing multiple unit tests for the domain layer
  • Specification Pattern
    • Rule Spec
    • Composition
  • Command Query Responsibility Segregation (CQRS)
    • Command vs Query vs Event
    • MeditR
    • Command, Command Handler
    • Event, Event Handler
    • Query, Query Handler
    • Behaviors o Implementing Infrastructure
    • Persistence Concern
    • Entity Framework Core
    • Mapping Domain Model to Data Model
    • Implementing Repository Pattern
    • Implementing Unit of Work Pattern
    • Implementing Query Service
  • Cross Cutting Concern
    • Structured Logging
    • Exception Handling
    • Input Validation
    • Unit of Work
  • Outbox Pattern
    • Introducing EF Core Interceptor
    • Saving Aggregate Events via Interceptor
    • Event Processing via Service Worker
    • Implementing of Service Worker through Quartz
    • Domain Event Handler, Handler Factory
    • Retrieve and Publish Domain Events
    • Implementing an Event Handler for Published Event
  • Idempotency
    • Outbox Consumer Pattern
    • Service Decoration
  • Implementing of Service Resilient
    • Introducing the Poly library
    • Adding Retry Pattern
  • Vertical Slice Architecture
  • Install Docker for Hosting Platform
  • Implementing Pricing Service
    • Installing Postgres, Postgres UI via docker
    • Marten Configuration
    • Implementing a Repository Service for Marten
    • Implementing of Pricing Service Endpoints
  •  Implementing Basket Service
    • Installing Redis, RedisUI via docker
    • Redis Configuration
    • Implementing a Repository Service for Redis
    • Implementing of Basket Service Endpoints
  • Gateway
    • Introduction
    • Off-loading Patterns
    • Aggregation Patterns
    • Security
    • Configuring YARP
    • Configuring Catalog, Pricing, Basket Services in Gateway
  • Service Discovery
    • Installing Consul on Docker
    • Configuring Service Discovery
    • Automatic Service Registration
    • Automatic Service Discovering
    • Refactoring Gateway
  • Introduction of gRPC
    • Protobuf, Message Contract
    • gRPC Server/Client
    • Implementing gRPC Server for Catalog Service
    • Implementing gRPC Server for Pricing Service
    • Implementing the Aggregation Pattern in Gateway based on gRPC
  • Microservice Asynchronous Communication
    • Using Message Broker for Communication
    • Installing RabbitMQ on Docker containers
    • Using MassTransit for ServiceBus
    • Creating Integration Events
    • Configuring Producer and Consumer
  • Integrating Services through Events and ServiceBus
    • Inbox Pattern
    • Implementing of Integration Event Consumer
    • Event Processing via Service Worker
    • Implementing of Service Worker through Quartz
    • Integration Event Handler, Handler Factory
    • Retrieve and Publish Integration Events
    • Implementing an Integration Event Handler for Published Event
    • Applying Idempotency Pattern
  • Sending events to the client
    • Configuring SignalR
    • Setting up a Push Notification Service
    • Definition of Message Contract
    • Service Implementation based on Contract
  • Implementing Ordering Service
    • Installing MongoDB and MongoUI on Docker
    • MongoDB Configuration
    • Service integration with the ServiceBus
    • Implementing a Repository Service for MongoDB
    • Automatic Customer Registration after User Registration
    • Implementing a Handler for the Basket Checkout Event
  • Implementing Security Service
    • Authentication
      • Id Token, Access Token, Refresh Token
    • Authorization
      • Role Based Authorization Control (RBAC)
      • Permission Based Authorization Control (PBAC)
    • Configuring Authentication in Gateway
    • Configure Authorization for each Service
  •  Service Hosting
    • Create Docker File
    • Building an Image for the Service
    • Publishing and Hosting Services on Containers
  •  Docker-Compose
    • Create Docker-Compose File
    • Migrating Services and Settings to the Docker-Compose
    • Building and Deploying Services via Docker
    • Upping All Services
  • Service Monitoring
    • Distributed Tracing
    • Metrics
    • Open Telemetry
    • Jeager
    • Prometheus
    • Garafana

Road Map

مسیر آموزشی
1
مبانی و پیش‌نیازها
  • پیش‌نیازها
  • میکروسرویس‌ها چیست؟
  • معماری تک‌پارچه
  • معماری میکروسرویس
  • مروری بر معماری
  • انتخاب پروژه نمونه
VSCode Docker
2
شروع پروژه و ساختاردهی
  • شروع پروژه Catalog
  • انتخاب معماری سرویس
  • ساختار پروژه، لایه‌ها: Domain, Application, Infrastructure, Presentation
VSCode .NET SDK
3
طراحی مبتنی بر دامنه (DDD)
  • Value Object
  • Entity، Aggregate و Aggregate Root
  • Factory
  • Domain Event،
  • Repository،
  • Domain Service
VSCode .NET SDK
4
توسعه مبتنی بر تست و مدیریت خطا (TDD)
  • Structured Error Handling
  • Result Pattern، Unit Test
  • Test-First و Code-First، xUnit
  • Fluent Assertions، Moq
VSCode xUnit Fluent Assertions Moq
5
CQRS و Patternها
  • Specification Pattern
  • Command vs Query vs Event
  • MediatR
  • Command/Query/Event Handler
VSCode .NET SDK MediatR
6
پایگاه داده و Repository
  • EF Core
  • Mapping Domain Model
  • Repository Pattern
  • Unit of Work
  • Query Service
VSCode EF Core SQL/Postgres
7
Cross-Cutting و Resiliency
  • Logging
  • Exception Handling
  • Input Validation
  • Outbox Pattern
  • Service Worker با Quartz
  • Poly و Retry Pattern
VSCode Quartz.NET Polly
8
Docker و آماده‌سازی سرویس‌ها
  • Vertical Slice Architecture
  • نصب Docker و آماده‌سازی محیط
Docker VSCode
9
پیاده‌سازی سرویس‌های Pricing و Basket
  • Pricing Service
  • Postgres
  • Marten
  • Basket Service
  • Redis
  • Endpointها
Docker Postgres Redis VSCode
10
Gateway و Service Discovery
  • Gateway
  • YARP
  • پیکربندی سرویس‌ها
  • Service Discovery، Consul
VSCode YARP Consul Docker
11
gRPC و ارتباط همزمان
  • gRPC
  • Protobuf
  • Server/Client
  • Aggregation در Gateway
VSCode gRPC Protobuf .NET SDK
12
ارتباطات ناهمزمان و Event-Driven
  • Message Broker
  • RabbitMQ
  • MassTransit
  • Integration Events
  • Service Worker
  • Idempotency
RabbitMQ MassTransit Quartz Docker VSCode
13
Push Notification و Ordering
  • SignalR
  • Push Notification
  • Ordering Service
  • MongoDB
  • Repository
  • Integration با ServiceBus
MongoDB SignalR Docker VSCode
14
امنیت سرویس‌ها
  • Authentication و Authorization
  • RBAC
  • PBAC
  • پیکربندی در Gateway
VSCode IdentityServer/ASP.NET Core
15
استقرار و مانیتورینگ
  • Docker File
  • Docker-Compose
  • استقرار سرویس‌ها
  • مانیتورینگ
  • OpenTelemetry
  • Jaeger، Prometheus، Grafana
Docker Docker-Compose OpenTelemetry Jaeger Prometheus Grafana
توضیحات

چرا یادگیری معماری میکروسرویس و الگوهای DDD و CQRS اهمیت دارد؟

معماری میکروسرویس به دلیل قابلیت مقیاس‌پذیری و توسعه مستقل هر سرویس، امروزه به یکی از استانداردهای اصلی در طراحی نرم‌افزارهای سازمانی تبدیل شده است. ترکیب این معماری با الگوی DDD به توسعه‌دهندگان کمک می‌کند تا منطق دامنه کسب‌وکار را بهتر مدل‌سازی کنند، در حالی که CQRS امکان جداسازی عملیات خواندن و نوشتن را برای بهبود کارایی و مدیریت پیچیدگی فراهم می‌کند. یادگیری این مفاهیم برای برنامه‌نویسان .NET به‌معنای توانایی ساخت سیستم‌هایی است که نه‌تنها مقیاس‌پذیر و انعطاف‌پذیر هستند، بلکه از نظر ساختار کدنویسی نیز تمیز و قابل نگهداری باقی می‌مانند.

معرفی دوره معماری تمیز (Clean Architecture) و Vertical Slice در .NET

یکی از بخش‌های مهم این دوره، آموزش Clean Architecture است که بر جداسازی لایه‌های نرم‌افزار و ایجاد کدی مستقل از جزئیات زیرساختی تمرکز دارد. این رویکرد باعث می‌شود سیستم‌ها پایدارتر و انعطاف‌پذیرتر باشند و توسعه‌دهندگان بتوانند تغییرات را بدون تاثیر مخرب روی کل پروژه اعمال کنند. همچنین مفهوم Vertical Slice Architecture معرفی می‌شود که به‌جای تقسیم کد بر اساس لایه‌ها، آن را بر اساس ویژگی‌ها و قابلیت‌های مستقل سازمان‌دهی می‌کند. این معماری در کنار DDD و CQRS به توسعه‌دهندگان کمک می‌کند پروژه‌های پیچیده .NET را با ساختاری ساده‌تر و قابل نگهداری‌تر پیاده‌سازی کنند.

مزایای شرکت در دوره Clean Architecture using Docker

شرکت در دوره NET Microservices و Clean Architecture در آموزشگاه سماتک به دانشجویان این امکان را می‌دهد که با معماری‌های مدرن و استانداردهای روز دنیا در توسعه نرم‌افزار آشنا شوند. مزیت بزرگ این دوره، ترکیب آموزش تئوری و پروژه‌محور است؛ یعنی دانشجویان علاوه بر یادگیری مفاهیم کلیدی مانند DDD، CQRS و معماری میکروسرویس، آن‌ها را در پروژه‌های واقعی پیاده‌سازی می‌کنند. استفاده از Docker برای استقرار و مدیریت سرویس‌ها باعث می‌شود شرکت‌کنندگان توانایی طراحی نرم‌افزارهای مقیاس‌پذیر و آماده ورود به محیط‌های سازمانی را کسب کنند. این موضوع مزیت بزرگی برای ورود به بازار کار محسوب می‌شود.

چه مهارت‌هایی پس از پایان این دوره به دست می‌آورید؟

در پایان دوره NET Microservices, DDD, CQRS, Clean Architecture with Docker، دانشجویان مجموعه‌ای از مهارت‌های کلیدی به دست می‌آورند. از جمله این مهارت‌ها می‌توان به طراحی و پیاده‌سازی میکروسرویس‌ها با ASP.NET Core، تسلط بر مفاهیم Domain-Driven Design، پیاده‌سازی الگوی CQRS برای مدیریت بهتر داده‌ها، استفاده از Vertical Slice Architecture در سازمان‌دهی پروژه‌ها و استقرار سرویس‌ها با Docker اشاره کرد. این مهارت‌ها به دانشجویان کمک می‌کند تا به‌عنوان توسعه‌دهنده Enterprise .NET Applications در پروژه‌های بزرگ فعالیت کنند.

ویژگی‌های خاص این دوره نسبت به سایر آموزشگاه‌ها

دوره سماتک نسبت به دوره‌های مشابه چند ویژگی متمایز دارد. نخست، محتوای آموزشی آن کاملاً به‌روز و بر اساس آخرین نسخه‌های .NET و ابزارهای مدرن طراحی شده است. دوم، برگزاری دوره به‌صورت لایو و پروژه‌محور است که دانشجویان را به‌طور مستقیم درگیر مسائل واقعی توسعه نرم‌افزار می‌کند. سوم، ترکیب چند معماری و الگوی مهم در یک دوره یکپارچه است؛ در حالی که بسیاری از آموزشگاه‌ها تنها یک یا دو مبحث مانند میکروسرویس یا CQRS را تدریس می‌کنند، سماتک مجموعه‌ای کامل از Microservices، DDD، CQRS، Clean Architecture و Docker را در قالب یک دوره جامع ارائه می‌دهد. این رویکرد باعث می‌شود دانشجویان تجربه‌ای کامل و کاربردی به دست آورند.

بازار کار و فرصت های دوره Clean Architecture using Docker

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

فرصت‌های شغلی برای متخصصان DDD و CQRS

تسلط بر Domain-Driven Design (DDD) و CQRS موقعیت‌های شغلی ارزشمندی را برای توسعه‌دهندگان .NET ایجاد می‌کند. شرکت‌ها به متخصصانی نیاز دارند که بتوانند سیستم‌های پیچیده را به شکلی ساختارمند مدل‌سازی کنند و در عین حال کارایی عملیات خواندن و نوشتن داده‌ها را بهینه کنند. توسعه‌دهندگان مسلط به DDD و CQRS می‌توانند در نقش‌هایی مانند Enterprise Software Architect، Backend .NET Developer، Solution Architect و Microservices Developer فعالیت کنند. این تخصص‌ها در ایران به‌ویژه در شرکت‌های نرم‌افزاری بزرگ و بانک‌ها تقاضای بالایی دارد و در سطح جهانی نیز جزو مهارت‌های پردرآمد محسوب می‌شود.

نقش Docker در آینده شغلی توسعه‌دهندگان بک‌اند

Docker به‌عنوان یکی از اصلی‌ترین ابزارهای DevOps و استقرار نرم‌افزار، نقش پررنگی در آینده شغلی توسعه‌دهندگان بک‌اند ایفا می‌کند. توانایی کانتینرسازی سرویس‌ها باعث می‌شود برنامه‌ها در هر محیطی به‌طور پایدار اجرا شوند و فرآیند توسعه تا استقرار نهایی ساده‌تر شود. توسعه‌دهندگانی که در کنار ASP.NET Core، Microservices و DDD/CQRS به Docker نیز مسلط باشند، می‌توانند در پروژه‌های بین‌المللی و تیم‌های Cloud-Native فعالیت کنند. همین موضوع Docker را به یک مهارت ضروری برای تضمین آینده شغلی توسعه‌دهندگان بک‌اند تبدیل کرده است.

پیش نیاز ها و مباحث فنی دوره Clean Architecture using Docker

برای شرکت در دوره NET Microservices و DDD در آموزشگاه سماتک، لازم است دانشجویان تسلط خوبی بر زبان C# و فریم‌ورک ASP.NET Core داشته باشند. درک مفاهیم شی‌ءگرایی (OOP)، آشنایی با Entity Framework و مفاهیم پایه‌ای طراحی پایگاه داده از دیگر پیش‌نیازهای این دوره است. همچنین آشنایی مقدماتی با مفاهیم REST API و معماری نرم‌افزار به دانشجویان کمک می‌کند تا مباحث پیشرفته‌تری مثل CQRS، Clean Architecture و Vertical Slice را بهتر درک کنند.

روش تدریس و شیوه برگزاری دوره در سماتک

دوره Microservices, DDD, CQRS, Clean Architecture در سماتک به‌صورت آنلاین لایو و پروژه‌محور برگزار می‌شود. تمامی جلسات به‌طور زنده توسط مدرس ارائه می‌شوند و دانشجویان امکان پرسش‌وپاسخ مستقیم دارند. این دوره بر مبنای تمرین‌های عملی و پروژه‌های واقعی طراحی شده تا دانشجویان علاوه بر یادگیری مفاهیم تئوری، در عمل هم تجربه کافی به دست آورند. همچنین جلسات ضبط شده و به همراه جزوات و کدهای نمونه در اختیار شرکت‌کنندگان قرار می‌گیرند تا امکان مرور مباحث در هر زمان فراهم باشد.

ابزارها و تکنولوژی‌های مورد استفاده در این دوره

در این دوره، دانشجویان با مجموعه‌ای از ابزارها و تکنولوژی‌های به‌روز در اکوسیستم .NET آشنا می‌شوند. از مهم‌ترین آن‌ها می‌توان به .NET 7/8 برای توسعه سرویس‌ها، Entity Framework Core برای مدیریت داده‌ها، Docker برای کانتینرسازی و استقرار سرویس‌ها و Git/GitHub برای کنترل نسخه اشاره کرد. علاوه بر این، مفاهیم مرتبط با Clean Architecture، Vertical Slice Architecture و ابزارهای مربوط به پیاده‌سازی CQRS نیز آموزش داده می‌شوند. کار با Visual Studio 2022 یا VS Code و مدیریت پایگاه داده با SQL Server از دیگر بخش‌های عملی این دوره هستند.

ثبت نام و شرایط دوره Clean Architecture using Docker

هزینه دوره NET Microservices و Docker در آموزشگاه سماتک متناسب با محتوای جامع و پروژه‌محور آن تعیین شده است. این دوره شامل آموزش مباحث پیشرفته‌ای همچون DDD، CQRS، Clean Architecture، Vertical Slice و استقرار سرویس‌ها با Docker می‌باشد که ارزش آموزشی بالایی دارد. شهریه به‌گونه‌ای طراحی شده که علاوه بر پوشش کامل محتوای به‌روز، امکان دسترسی دانشجویان به منابع جانبی، فایل‌های آموزشی و پشتیبانی تخصصی مدرس نیز فراهم باشد.

شرایط پرداخت و تخفیف‌های ویژه دوره معماری تمیز

سماتک برای دوره‌های تخصصی خود از جمله دوره معماری تمیز و میکروسرویس‌ها شرایط پرداخت متنوعی در نظر گرفته است. دانشجویان می‌توانند شهریه را به‌صورت یکجا یا در قالب اقساط پرداخت کنند. همچنین تخفیف‌های ویژه‌ای برای ثبت‌نام زودهنگام، دانشجویان دانشگاهی و شرکت‌های سازمانی ارائه می‌شود. این شرایط به علاقه‌مندان کمک می‌کند بدون دغدغه مالی در دوره‌ای جامع و پیشرفته شرکت کنند.

نحوه ثبت‌نام در دوره NET Microservices, DDD, CQRS with Docker

برای ثبت‌نام در دوره NET Microservices, DDD, CQRS with Docker کافی است به وب‌سایت آموزشگاه سماتک مراجعه کرده و فرم ثبت‌نام آنلاین را تکمیل کنید. پس از ثبت‌نام اولیه، تیم پشتیبانی با دانشجویان تماس گرفته و اطلاعات مربوط به زمان‌بندی کلاس‌ها، نحوه پرداخت و دسترسی به جلسات آنلاین را ارائه می‌دهد. همچنین امکان ثبت‌نام حضوری در دفتر آموزشگاه برای علاقه‌مندانی که تمایل به مشاوره مستقیم دارند فراهم است.

سئوالات متداول

آیا این دوره مناسب برنامه‌نویسان مبتدی است؟

خیر. این دوره برای افرادی طراحی شده که قبلاً تجربه کار با C# و ASP.NET Core را داشته باشند و با مفاهیم پایه‌ای طراحی نرم‌افزار و پایگاه داده آشنا باشند. مباحثی مانند DDD، CQRS و Clean Architecture پیشرفته هستند و برای درک بهتر آن‌ها نیاز به دانش اولیه در توسعه نرم‌افزار وجود دارد.

در معماری Monolithic تمام بخش‌های یک نرم‌افزار به‌صورت یکپارچه توسعه و استقرار می‌یابند که این موضوع باعث سختی در نگهداری و مقیاس‌پذیری می‌شود. در مقابل، معماری Microservices نرم‌افزار را به سرویس‌های کوچک‌تر و مستقل تقسیم می‌کند که هرکدام می‌توانند جداگانه توسعه، تست و استقرار شوند. این رویکرد انعطاف‌پذیری بالاتری دارد و در پروژه‌های بزرگ و سازمانی کاربردی‌تر است.

مدت زمان این دوره معمولاً بین ۵۰ تا ۶۰ ساعت آموزشی در چندین جلسه آنلاین لایو برگزار می‌شود. هر جلسه شامل بخش‌های تئوری و عملی است تا دانشجویان بتوانند مفاهیم را هم از نظر علمی و هم از نظر کاربردی یاد بگیرند.

بله. این دوره کاملاً پروژه‌محور است. دانشجویان در طول دوره یک پروژه واقعی را پیاده‌سازی می‌کنند که شامل طراحی و پیاده‌سازی Microservices، استفاده از DDD و CQRS، پیاده‌سازی معماری تمیز (Clean Architecture) و استقرار سرویس‌ها با Docker خواهد بود. این پروژه به دانشجویان کمک می‌کند تجربه‌ای نزدیک به شرایط واقعی بازار کار به دست آورند.

در پایان دوره، مدرک معتبر از آموزشگاه سماتک به شرکت‌کنندگان اعطا می‌شود. این مدرک نشان‌دهنده تسلط دانشجویان بر مفاهیم پیشرفته معماری نرم‌افزار در اکوسیستم .NET است و می‌تواند در رزومه کاری به‌عنوان یک گواهی حرفه‌ای مورد استفاده قرار گیرد.

برای تغییر این متن بر روی دکمه ویرایش کلیک کنید. لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است.

کاتالوگ دوره

سئوالات متداول

اساتید دوره

[sematec_teachers]
دیدگاه‌ها

دیدگاهها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین نفری باشید که دیدگاهی را ارسال می کنید برای “دوره NET Microservices ,DDD, CQRS,Vertical/Clean Architecture using Docker.”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

درخواست مشاوره رایگان


محصولات مشابه