71fd

آموزش معماری Microservice و کوبرنتیز در ASP.NET Core

کدسل برنامه نویسی وب Asp.Net Core

لینک کوتاه https://codecell.ir/course/71fd
2٬300٬000تومان
مدرس: سهراب قیصری
تعداد ویدیوها: 32
مدت زمان دوره: 18:28:19
وضعیت دوره: به اتمام رسیده
آخرین بروزرسانی: 1403/07/15
به اشتراک گذاری
نظرات
27
دیگر آموزش های مدرس:
معماری Microservice در ASP.NET Core

معماری میکروسرویس در سال های اخیر به دلیل توانایی آن در ایجاد برنامه های کاربردی بسیار مقیاس پذیر، انعطاف پذیر و قابل نگهداری به طور فزاینده ای محبوب شده است. در ASP.NET Core، معماری میکروسرویس ها را می توان با استفاده از فناوری های مختلفی از جمله Docker، Kubernetes و Service Fabric پیاده سازی کرد.

معماری میکروسرویس چیست؟

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

تفاوت معماری میکروسرویس و Monolithic یا یکپارچه چیست؟

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

  • اندازه و پیچیدگی: معماری یکپارچه با داشتن تمام اجزای یک برنامه کاربردی به طور محکم با هم در یک فایل اجرایی یا پایگاه کد مشخص می شود. این بدان معنی است که کل برنامه یک موجودیت بزرگ و پیچیده است. در مقابل، معماری میکروسرویس ها شامل تقسیم یک برنامه به سرویس های کوچکتر و مستقل است که می توانند به طور جداگانه مستقر و مدیریت شوند. این بدان معنی است که برنامه از بسیاری از بخش های کوچکتر و ساده تر تشکیل شده است.
  • مقیاس پذیری: معماری یکپارچه به راحتی مقیاس پذیر نیست، زیرا نیاز دارد که کل برنامه به صورت یک واحد کوچک و یا افزایش یابد. در مقابل، معماری میکروسرویس ها امکان مقیاس پذیری آسان تر را فراهم می کند، زیرا هر سرویس را می توان به طور مستقل بر اساس نیازهای خاص خود کوچک یا بزرگ کرد.
  • انعطاف ‌پذیری: معماری یکپارچه نسبت به میکروسرویس‌ها انعطاف ‌پذیری کمتری دارد، زیرا تغییرات در هر بخشی از برنامه نیاز به استقرار مجدد کامل کل برنامه دارد. در مقابل، معماری میکروسرویس انعطاف پذیری بیشتری را امکان پذیر می کند، زیرا می توان تغییراتی را در سرویس های فردی بدون تأثیر بر بقیه برنامه اعمال کرد.
  • تعمیر و نگهداری: نگهداری معماری یکپارچه نسبت به میکروسرویس ها دشوارتر است، زیرا هر گونه اشکال یا مشکل در یک قسمت از برنامه می تواند کل برنامه را تحت تأثیر قرار دهد. در مقابل، معماری میکروسرویس‌ها به گونه‌ای طراحی شده است که انعطاف‌پذیرتر باشد، زیرا خرابی‌ها در یک سرویس قابل جداسازی و مهار هستند.
  • استقرار: معماری یکپارچه مستلزم استقرار کل برنامه به عنوان یک واحد است که می تواند زمان بر و پیچیده باشد. در مقابل، معماری میکروسرویس ها امکان استقرار مکرر و کوچکتر را فراهم می کند، زیرا هر سرویس می تواند به طور مستقل مستقر شود.

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

مزایای معماری میکروسرویس در ASP.NET Core

استفاده از معماری میکروسرویس در asp.net Core شامل مزایای زیادی است. از مهمترین این مزایا می توان به موارد زیر اشاره کرد:

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

نحوه پیاده سازی معماری Microservices در ASP.NET Core

پیاده سازی معماری میکروسرویس در Asp.net Core شامل چندین مرحله می باشد. از مهمترین آن می توان به موارد زیر اشاره کرد:

  • طراحی سرویس: اولین قدم در پیاده سازی معماری میکروسرویس در ASP.NET Core، طراحی سرویس های فردی است. هر سرویس باید هدف مشخص و مشخصی داشته باشد و باید تا حد امکان مستقل طراحی شود.
  • ارتباط سرویس: برای اینکه سرویس ها با یکدیگر ارتباط برقرار کنند، باید یک پروتکل ارتباطی ایجاد شود. این را می توان با استفاده از فناوری های مختلفی از جمله REST API، gRPC یا مسیج بروکر به دست آورد.
  • استقرار سرویس: خدمات را می توان با استفاده از ابزارهای مختلفی از جمله Docker، Kubernetes یا Service Fabric مستقر کرد. هر یک از این ابزارها راهی برای بسته بندی و استقرار خدمات مستقل از یکدیگر فراهم می کند.
  • نظارت بر خدمات: هنگامی که سرویس ها مستقر شدند، نظارت بر عملکرد و سلامت آنها بسیار مهم است. این را می توان با استفاده از ابزارهای مختلفی از جمله Application Insights، Prometheus یا Grafana به دست آورد.
  • امنیت سرویس: مهم است که اطمینان حاصل شود که هر سرویس ایمن است و در برابر تهدیدات امنیتی محافظت می شود. این را می توان با استفاده از ابزارهای مختلفی از جمله OAuth2، JWT یا گواهی ها به دست آورد.

Docker چیست؟

Docker یک پلت فرم منبع باز است که به توسعه دهندگان اجازه می دهد تا برنامه ها را به صورت container یا کانتینر پکیج بندی، توزیع و اجرا کنند.

container یا کانتینر چیست؟

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

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

چالش های معماری میکروسرویس ها در Asp.net Core

اگرچه معماری میکروسرویس مزایای بسیاری دارد، اما چالش های متعددی را نیز به همراه دارد که باید برای اطمینان از موفقیت برنامه مورد توجه قرار گیرد. این چالش ها عبارتند از:

  • پیچیدگی: معماری میکروسرویس می تواند پیچیده تر از معماری های یکپارچه سنتی باشد. این امر مستلزم سطح بالاتری از مهارت و تخصص توسعه دهندگان است.
  • هماهنگی خدمات: با افزایش تعداد سرویس ها در برنامه، هماهنگی موثر آنها می تواند دشوارتر شود. این امر مستلزم برنامه ریزی و مدیریت دقیق است.
  • تراکنش های توزیع شده: تراکنش های توزیع شده می توانند در معماری میکروسرویس ها پیچیده تر باشند.

Kubernetes یا کوبرنتیز چیست؟

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

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

در اینجا برخی از جنبه های کلیدی Kubernetes آورده شده است:

  • هماهنگ‌سازی کانتینر: Kubernetes به شما اجازه می‌دهد تا کانتینرها را در میان خوشه‌ای از سرورها مستقر کنید و زیرساخت‌های زیربنایی را از بین ببرید. این تضمین می کند که کانتینرها همیشه در حال اجرا و در دسترس هستند.
  • مقیاس پذیری: با Kubernetes، شما به راحتی می توانید برنامه های خود را بر اساس تقاضا مقیاس بندی کنید. این می تواند به طور خودکار توزیع ترافیک ورودی به نسخه های مختلف برنامه شما را مدیریت کند و آن را مقیاس پذیر و قابل اعتماد کند.
  • خود مدیریتی: Kubernetes می‌تواند به‌طور خودکار کانتینرهایی را که از کار می‌افتند، مجدداً راه‌اندازی کند، کانتینرهایی را که پاسخگو نیستندجایگزین کند و بار برنامه را در نمونه‌های سالم توزیع کند. این جنبه خود مدیرتی تضمین می کند که برنامه های شما بسیار در دسترس و انعطاف پذیر هستند.
  • Rollouts و Rollbacks کوبرنتیز: Kubernetes امکان به روز رسانی یکپارچه برنامه ها را فراهم می کند. می‌توانید به تدریج نسخه‌های جدید را عرضه کنید، عملکرد آن‌ها را زیر نظر داشته باشید و در صورت شناسایی مشکلات، به‌راحتی به عقب برگردید و خطر خرابی در طول به‌روزرسانی را کاهش دهید.
  • مدیریت منابع: Kubernetes می‌تواند تخصیص منابع محاسباتی به کانتینرها را به طور مؤثر مدیریت کند و اطمینان حاصل کند که هر برنامه CPU، حافظه و سایر منابع لازم برای عملکرد بهینه را دریافت می‌کند.
  • پیکربندی اعلانی: شما وضعیت مطلوب برنامه و زیرساخت خود را در Kubernetes با استفاده از فایل های YAML یا Kubernetes API توصیف می کنید. Kubernetes سپس برای اطمینان از مطابقت وضعیت واقعی با وضعیت مورد نظر کار خواهد کرد.
  • اکوسیستم و جامعه: Kubernetes دارای یک جامعه پر کار و فعال است که به توسعه آن کمک می کند، بهترین شیوه ها را به اشتراک می گذارد و یک اکوسیستم غنی از ابزارها و برنامه های افزودنی ایجاد می کند. این امر پشتیبانی مداوم و جریان مداوم نوآوری را تضمین می کند.

چرا باید Kubernetes را یاد بگیرید؟

یادگیری Kubernetes می‌تواند مهارت‌های شما را به‌عنوان یک توسعه‌ دهنده یا مدیر سیستم به‌ طور قابل‌ توجهی افزایش دهد و می‌تواند به شما یک مزیت رقابتی در بازار کار، به ویژه در زمینه برنامه‌های کاربردی ابری و کانتینری ارائه دهد. در زیر به برخی از دلایل مهم برای یادگیری کوبرنتیز اشاره شده است:

  • پذیرش صنعت: Kubernetes در صنعت محبوبیت زیادی به دست آورده است و به طور گسترده برای مدیریت برنامه های کاربردی کانتینری در حوزه های مختلف، از استارت آپ ها گرفته تا شرکت های بزرگ، استفاده می شود. یادگیری Kubernetes می تواند فرصت های شغلی متعددی را ایجاد کند و چشم انداز شغلی شما را افزایش دهد.
  • برنامه های کاربردی Cloud-Native: از آنجایی که رویکرد Cloud-Native به طور فزاینده ای غالب می شود، درک Kubernetes برای توسعه و مدیریت برنامه های کاربردی مدرن طراحی شده برای اجرا در یک محیط توزیع شده و مقیاس پذیر ضروری است.
  • کارایی و بهره وری: Kubernetes استقرار و مدیریت برنامه ها را ساده می کند و پیچیدگی و تلاش دستی را کاهش می دهد. این می تواند منجر به افزایش کارایی و بهره وری برای توسعه دهندگان و تیم های عملیاتی شود.
  • اثبات آینده: با توجه به پذیرش گسترده و توسعه فعال آن، Kubernetes احتمالاً در آینده یک فناوری حیاتی باقی خواهد ماند. یادگیری آن در حال حاضر به شما کمک می کند تا مرتبط و سازگار با روندهای در حال تغییر در صنعت باشید.
  • تطبیق پذیری: Kubernetes به زبان های برنامه نویسی خاص یا فریم ورک ها محدود نمی شود. کوبرنتیز می تواند با هر برنامه کاربردی کانتینری کار کند و برای طیف گسترده ای از پروژه ها مناسب است.

Saga Pattern یا الگوی Saga

الگوی Saga یک الگوی مدیریت شکست است که به ایجاد سازگاری در برنامه‌های کاربردی توزیع شده کمک می‌کند و تراکنش‌ها را بین چندین میکروسرویس برای حفظ ثبات داده‌ها هماهنگ می‌کند.
یک میکروسرویس برای هر تراکنش یک رویداد منتشر می کند و تراکنش بعدی بر اساس نتیجه رویداد آغاز می شود. بسته به موفقیت یا شکست تراکنش ها، می تواند دو مسیر متفاوت را طی کند.
دو رویکرد رایج اجرای Saga وجود دارد، Choreography و Orchestration. هر رویکرد مجموعه ای از چالش ها و فناوری های خاص خود را برای هماهنگ کردن گردش کار دارد.

Saga Choreography

Choreography راهی برای هماهنگ کردن Saga هاست که در آن شرکت کنندگان رویدادها را بدون یک نقطه کنترل متمرکز مبادله می کنند. با Saga Choreography ، هر تراکنش محلی رویدادهای دامنه ای را منتشر می کند که تراکنش های محلی را در سایر سرویس ها آغاز می کند.

Saga Orchestration

Orchestration راهی برای هماهنگ کردن Saga ها است که در آن یک کنترل کننده متمرکز به شرکت کنندگان Saga می گوید که چه تراکنش های محلی را باید اجرا کنند. Saga Orchestration تمام تراکنش ها را مدیریت می کند و به شرکت کنندگان می گوید که کدام عملیات را بر اساس رویدادها انجام دهند. ارکستراتور درخواست‌های Saga را اجرا می‌کند، حالات هر وظیفه را ذخیره و تفسیر می‌کند، و بازیابی شکست را با تراکنش‌های جبران‌کننده مدیریت می‌کند.

ما در این دوره آموزشی از Saga Orchestration برای مدیریت تراکنش ها در میکروسرویس ها استفاده میکنم. همچنین برای پیاده سازی الگوی Saga از .net8 استفاده کرده ایم.

الگوی Event Sourcing چیست؟

الگوی Event Sourcing الگویی است که مبنای آن ذخیره جزییات رویدادهایی است که بر روی موجودیت ها در یک پایگاه داده اتفاق می افتد. استفاده از این الگو بیشتر در معماری میکروسرویس و به همراه الگوی CQRS رایج است.

ما در این آموزش با استفاده از Event Store به پیاده سازی این الگو پرداخته ایم.

الگوی Outbox چیست؟

ایده اصلی الگوی Outbox ذخیره پیام های رویداد در یک جدول Outbox همراه با عملیات اصلی در همان تراکنش است.

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

سپس یک Background Worker می‌تواند پایگاه داده را برای پیام‌های Outbox اسکن کرده و آنها را به صف پیام ارسال کند. این رویکرد ثبات داده ها و تحویل پیام قابل اعتماد را در سیستم های توزیع شده تضمین می کند.

در این آموزش، نحوه پیاده سازی الگوی Outbox را با استفاده از کتابخانه MassTransit و بدون استفاده از MassTransit خواهید آموخت.

سرفصل های دوره آموزش معماری میکروسرویس در Asp.net Core

ما در این دوره آموزشی چندین میکروسرویس سرویس را با استفاده از Asp.net Core در دات نت 7، 8 و داکر ایجاد و داکرایز خواهیم کرد.

در این سرویس ها از دیتابیس های SQLServer، MongoDb، MySQL و PostgreSQL استفاده خواهیم کرد. در ادامه برای ایجاد یک entry point واحد از API Gateway قدرتمند Ocelot استفاده خواهیم کرد.

در این دوره آموزشی برای ایمن سازی میکروسرویس ها از JWT استفاده خواهیم کرد. و در نهایت برای برقراری ارتباط بین میکروسرویس ها از gRPC و RabbitMQ استفاده می کنیم. همچنین برای استفاده از RabbitMQ از MassTransit استفاده خواهیم کرد. در ادامه با کمک MassTransit به پیاده سازی Saga Pattern پرداخته ایم.

در دوره میکروسرویس در asp برای استقرار برنامه ها از دو روش docker-compose و کوبرنتیز(Kubernetes) استفاده می کنیم.

نتیجه گیری:

یادگیری معماری میکروسرویس و کوبرنتیز در ASP.NET Core برای توسعه دهندگانی که می خواهند برنامه های کاربردی مقیاس پذیر و قوی بسازند، یک مهارت ضروری است. میکروسرویس ها یک رویکرد ماژولار برای توسعه نرم‌افزار ارائه می‌کند و به توسعه ‌دهندگان اجازه می ‌دهد تا سرویس ‌های جداگانه ‌ای را ایجاد کنند که به طور مستقل قابل استقرار، مقیاس‌ بندی و نگهداری باشند. با استفاده از مزایای میکروسرویس ‌ها، مانند افزایش چابکی ومقیاس ‌پذیری بهبود یافته توسعه‌ دهندگان می‌توانند برنامه‌ های انعطاف‌ پذیرتر و پاسخگوتری بسازند. علاوه بر این، استفاده از ابزارهایی مانند Ocelot، Docker و کوبرنتیز می‌تواند فرآیند ساخت و استقرار میکروسرویس‌ ها را ساده ‌تر کند و مدیریت و مقیاس ‌بندی سیستم‌های پیچیده توزیع‌ شده را آسان‌ تر کند. به طور کلی، تسلط بر معماری میکروسرویس و کوبرنتیز در ASP.NET Core یک مهارت ارزشمند است که می تواند به توسعه دهندگان در ساخت برنامه های کاربردی با کارایی بالا، مقیاس پذیر و انعطاف پذیر کمک کند.

فهرست ویدیوها
مدت زمان دوره: 18:28:19
01

آشنایی با داکر، Image، Container، دستورات داکر و نحوه اجرای پروژه Asp.net Core تحت داکر

00:48:17
02

ایجاد میکروسرویس مشتریان با دیتابیس SQL Server- قسمت اول

00:27:28
03

کار با AutoMapper، FluenValidation، فیلترها ،ایجاد Api های سرویس مشتریان و نحوه اجرای SQLServer تحت داکر - قسمت دوم

01:13:50
04

استفاده از الگوی CQRS با استفاده از Mediator در asp.net Core

00:28:17
05

آموزش نحوه ایجاد،استفاده و اجرای فایل docker-compose برای مدیریت کانتینرها در Asp.net Core

00:47:29
06

ایجاد میکروسرویس کالاها با دیتابیس MySQL

00:30:02
07

میکروسرویس کالاها- نحوه اجرای دیتابیس MySQL تحت داکر

00:21:44
08

افزودن سرویس های مربوط به میکروسرویس کالاها به docker-compose و اجرای آن

00:20:42
09

ایجاد میکروسرویس سفارشات با دیتابیس MongoDB

00:52:39
10

میکروسرویس سفارشات- اجرای دیتابیس MongoDB تحت داکر

00:24:38
11

افزودن سرویس های مربوط به میکروسرویس سفارشات به docker-compose و اجرای آن

00:16:59
12

آموزش استفاده از Ocelot API Gateway در میکروسرویس - قسمت اول

00:24:28
13

افزودن Ocelot به docker-compose و اجرای میکروسرویس ها از طریق Ocelot Api Gateway در Asp.net Core

00:14:11
14

آموزش ایجاد ارتباط بین میکروسرویس ها از طریق gRPC در Asp.net Core

01:01:37
15

ایجاد میکروسرویس Identity با دیتابیس PostgreSQL در Asp.net Core

00:39:18
16

نحوه اجرای دیتابیس PostgreSQL و ابزار pgAdmin تحت داکر و تست میکروسرویس Identity

00:19:57
17

افزودن میکروسرویس Identity به docker-compose و Ocelot و اجرای آن

00:13:08
18

آموزش نحوه استفاده از احراز هویت JWT در میکروسرویس ها با استفاده از Ocelot در Asp.net Core

00:17:22
19

ایجاد میکروسرویس Discount و کانفیگ کردن MassTransit برای استفاده از مسیج بروکر RabbitMQ

00:28:11
20

نحوه اجرای RabbitMQ تحت داکر، ایجاد تنظیمات queue و Consumer ها و اتصال میکروسرویس ها به RabbitMQ

00:30:02
21

آموزش ارسال و دریافت پیام در میکروسرویس ها از طریق RabbitMQ

00:45:23
22

آشنایی با مفاهیم پایه و کار با deployment ها در کوبرنتیز

00:34:05
23

آموزش کار با service ها و type ها آن، نحوه scale کردن و دستورات کاربردی در کوبرنتیز

00:32:29
24

استقرار اپلیکیشن و SQLServer در کوبرنتیز و چالش های آن

00:27:44
25

initContainer و secret ها در کوبرنتیز

00:17:29
26

آموزش نصب و راه اندازی داشبورد کوبرنتیز

00:13:08
27

نحوه پیاده سازی و استفاده از Saga Pattern در میکروسرویس ها با net8

01:35:25
28

Event Sourcing Pattern در میکروسرویس

00:21:38
29

نحوه Persist کردن فایل های آپلود در داکر

00:36:31
30

نحوه پیاده سازی Distributed Tracing با استفاده از Jaeger و OpenTelemetry

00:30:53
31

پیاده سازی الگوی Outbox با استفاده از MassTransit

01:02:57
32

پیاده سازی الگوی Outbox بدون استفاده از MassTransit

00:50:18

پرسش های متداول

میکروسرویس ها یک الگوی طراحی هستند که در آن برنامه های کاربردی از ماژول های کوچک و مستقلی تشکیل شده اند که با استفاده از قراردادهای کاملاً تعریف شده با یکدیگر ارتباط برقرار می کنند. هر میکروسرویس بر یک مفهوم واحد تمرکز دارد.

.net Core و چارچوب خالص. ASP.NET Core بهترین فریم ورک برای ساخت برنامه های میکروسرویس است زیرا مزایای باورنکردنی از جمله پیکربندی های cloud-base، توسعه سریع و پشتیبانی از پلتفرم های مختلف را ارائه می دهد.

Ocelot یک API Gateway منبع باز است که برای چارچوب .net Core ساخته شده است. Ocelot به توسعه دهندگان اجازه می دهد تا یک نقطه ورودی واحد برای برنامه مبتنی بر میکروسرویس خود ایجاد کنند که مزایای مختلفی مانند احراز هویت متمرکز، تعادل بار، مسیریابی، کشف سرویس و غیره را ارائه می دهد. Ocelot از انواع سرویس ها و پروتکل های پایین دستی مانند HTTP، WebSockets و بسیاری دیگر پشتیبانی می کند، که آن را به ابزاری عالی برای ساخت معماری های میکروسرویس مقیاس پذیر و قوی تبدیل می کند.

RabbitMQ یک مسیج بروکر متن باز است که به طور گسترده در میکروسرویس ها مورد استفاده قرار می گیرد و با استقرار مکانیزم صف پیام در بین دو برنامه به مقیاس بندی برنامه کمک می کند. RabbitMQ برای جلوگیری از از دست رفتن داده ها ذخیره سازی موقت را ارائه می دهد. RabbitMQ Queue پیام ها را از publisher می گیرد و برای consumer می فرستد.

Saga Pattern راهی برای مدیریت سازگاری داده ها در میان میکروسرویس ها در سناریوهای تراکنش توزیع شده است. Saga دنباله ای از تراکنش ها است که هر سرویس را به روز می کند و پیام یا رویدادی را برای راه اندازی تراکنش مرحله بعدی منتشر می کند.

Saga اساساً به عنوان یک رشته جداگانه برای برنامه شما عمل می کند، به اقدامات خاصی از برنامه اصلی شما گوش می دهد تا وظایف پیچیده ناهمزمان را انجام دهد و پس از تکمیل وضعیت برنامه شما را به روز می کند.

مقالات آموزش برنامه نویسی مدرس

Response Caching در ASP.NET Core

Response Caching یک مکانیزم ذخیره سازی پاسخ سرور توسط مرورگر یا سایر کلاینت ها است. با استفاده از Response Caching در Asp.net Core می توانیم عملکرد و کارایی سیستم را بالا ببریم.

669 0 1402/10/22

Output Caching در ASP.NET Core 8.0

Output Caching یک ویژگی جدید است که از زمان .NET 7 معرفی شده است. این ویژگی به ما این امکان را می دهد که به راحتی یک کش پاسخ برای Web API خود بدون پیاده سازی IMemoryCache راه اندازی کنیم.

723 0 1402/10/14

الگوی طراحی زنجیره مسئولیت در سی شارپ

الگوی زنجیره مسئولیت یا Chain of Responsibility Design Pattern یک الگوی طراحی رفتاری(behavioral design pattern) است که اجازه می‌دهد یک درخواست در امتداد زنجیره‌ای از کنترل‌کننده‌های بالقوه ارسال شود تا زمانی که درخواست مناسب برای پردازش آن را پیدا کند.

685 2 1402/10/01

ViewComponent در ASP.NET Core

در ASP.NET Core با استفاده از ViewComponent ها می توان اجزای ماژولار، قابل استفاده مجدد، قابل نگهداری و مقیاس پذیر برای ساخت برنامه های کاربردی وب ایجاد کرد. در این مقاله به نحوه ایجاد و فراخوانی ViewComponent در Asp.net core پرداخته ایم.

1٬431 2 1402/05/15

تطبیق الگو در NET 7: ساده سازی تجزیه و تحلیل داده ها

تطبیق الگو یا Pattern Matching در net7 یک تکنیک قدرتمند برای تجزیه و تحلیل و دستکاری داده ها بر اساس ساختار آن ها است. تطبیق الگو یا Pattern Matching به توسعه دهندگان اجازه می دهد تا مقادیر را با یک الگوی خاص مطابقت دهند و اقدامات مربوطه را انجام دهند.

880 1 1402/04/05

تزریق وابستگی در ASP.NET Core

تزریق وابستگی (DI) یک الگوی طراحی نرم افزاری است که امکان ایجاد برنامه های کاربردی و ماژولار را فراهم می کند.. در .NET Core تزریق وابستگی یا Dependency injection یک ویژگی مهم است که می تواند برای ساده سازی توسعه برنامه، بهبود تست پذیری و کاهش پیچیدگی کد مورد استفاده قرار گیرد.

1٬964 1 1402/02/04

ضروری ترین کتابخانه های NuGet برای ASP.NET Core

در این مقاله مهمترین،ضروری ترین و پرکاربردترین کتابخانه های NuGet که هر توسعه‌ دهنده‌ ASP.NET Core باید برای توسعه بهتر و کاهش زمان مورد نیاز برای برنامه ‌های خود از آن استفاده کنند را مورد بررسی قرار داده ایم.

1٬517 1 1401/12/29

الگوی طراحی Factory در سی شارپ

الگوهای طراحی یکی از مهمترین جنبه های طراحی و معماری نرم افزار است. Factory Method یک الگوی طراحی ایجادی است که یک رابط برای ایجاد اشیاء در یک سوپر کلاس فراهم می‌کند. ما در این مقاله الگوی Factory Method Design در سی شارپ را بررسی می کنیم.

1٬642 1 1401/10/28

مقایسه List و Array در سی شارپ

آرایه و لیست در سی شارپ هر دو به عنوان مجموعه ای از مقادیر عمل می کنند، اما در نحوه ذخیره محتوای خود در حافظه و نحوه دسترسی به آنها متفاوت هستند. در این مقاله Benchmark و کارایی List<T> با سایز داینامیک، List<T> با سایز ثابت و Array ها را بررسی می کنیم.

2٬221 2 1401/09/01

LinkedList در سی شارپ

LinkedList یا لیست پیوندی در سی شارپ یک ساختار داده خطی است که عنصر را در مکان غیر پیوسته ذخیره می کند. LinkedList شامل گره هایی است که هر گره حاوی یک فیلد داده و یک مرجع (پیوند) به گره بعدی در لیست است. در سی شارپ، LinkedList یا لیست پیوندی یک نوع مجموعه جنریک است.

2٬046 0 1401/08/13

Garbage Collection در دات نت

به طور کلی، Garbage Collection (GC) یا جمع آوری زباله در .Net چیزی نیست جز به دست آوردن مجدد حافظه اختصاص داده شده به اشیایی که در حال حاضر در هیچ بخشی از برنامه ما استفاده نمی شوند. ما در این مقاله Garbage Collection را در سی شارپ بررسی خواهیم کرد.

2٬838 5 1401/03/30

.NET Core چیست؟

.Net (با تلفظ «دات نت») یک چارچوب نرم افزاری کامپیوتری مدیریت شده رایگان و منبع باز برای سیستم عامل های ویندوز، لینوکس و macOS است. این پروژه در درجه اول توسط کارمندان مایکروسافت از طریق دات نت توسعه یافته و تحت مجوز MIT منتشر شده است.

2٬587 2 1401/03/16

پشته(Stack) در سی شارپ

پشته یا Stack در سی شارپ یک نوع خطی از ساختار داده است که قادر به ذخیره اشیاء است. پشته یک ساختار داده LIFO یا Last-In-First-Out است، به این معنی که آخرین موردی که در پشته قرار می گیرد اولین موردی است که از پشته خارج می شود.

2٬187 0 1401/03/09

صف (Queue) در سی شارپ

صف (Queue) در سی شارپ یک نوع خطی از ساختار داده است که قادر به ذخیره اشیاء است. Queue یک ساختار داده first-in-first-out یا FIFO است که به این معنی است که اولین مورد اضافه شده به صف اولین موردی است که حذف می شود.

2٬162 0 1401/02/30

تفاوت Hashtable و Dictionary در سی شارپ

در سی شارپ از Hashtable و Dictionary می توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. با این تفاوت که Hashtable و Dictionary عناصر را به عنوان جفت Key/Value ذخیره می کنند.در این مقاله به تفاوت های Hashtable و Dictionary پرداخته شده است.

1٬843 1 1401/02/23

Dictionary در سی شارپ

در سی شارپ از دیکشنری ها (Dictionary) می‌توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. تفاوت اصلی این است که یک Dictionary می تواند عناصر را به عنوان جفت Key/Value ذخیره کند.Key ها باید منحصر به فرد و نمی توانند null باشند. Value ها می توانند تکراری یا null باشند.

2٬249 3 1401/02/17

Hashtable در سی شارپ

از Hashtable می‌توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. تفاوت اصلی این است که یک Hashtable می تواند عناصر را به عنوان جفت Key/Value به عنوان جایگزینی برای استفاده از Index ذخیره کند.

1٬721 5 1401/02/14

Redirect درخواست (ریدایرکت) در asp.net core

در برنامه های ASP.NET Core برای تغییر مسیر(ریدایرکت) و Redirect به یک URL خاص روش های مختلفی وجود دارد. در این مقاله با این تکنیک ها و کدهای مورد نیاز برای تغییر مسیر یک درخواست در ASP.NET Core آشنا می شویم.

2٬562 5 1401/02/12

تبدیل enum به لیست انتخابی در asp.net core

در این آموزش ما بوسیله Reflection ها در سی شارپ و asp.net core یک enum را به لیست انتخابی یا SelectListItem تبدیل خواهیم کرد و بوسیله تگ select در بوت استرپ 5 نمایش می دهیم.

1٬753 3 1401/02/03

نحوه ارسال ایمیل در asp و c#

امروزه ارسال ایمیل به امری ضروری در پروژه های وب تبدیل شده است.از ارسال ایمیل در asp می توان در بخش های تایید حساب کاربری،بازیابی رمز عبور،ایمیل مارکتینگ،ارسال خبرنامه و ... استفاده نمود.در این آموزش نحوه ارسال ایمیل در asp core و سی شارپ پیاده سازی گردیده است.

2٬582 5 1401/02/03
نظرات

برای ثبت نظر باید در سایت ثبت نام یا ورود نمایید