DotNet | دات نت
1.16K subscribers
670 photos
231 videos
485 files
718 links
تو این روزا بهتره که همیشه علم خودمون رو بالا ببریم و بتونیم با سریع ترین راه ممکن خودمونو بروز نگه داریم.
- سعی کنیم از کمترین امکانات بیشترین بهره رو ببریم
منتظرت هستیم😉
دنیا رو جای بهتری برای یادگیری کنیم 🌹
#course #book


🆔 @dotnetcode
Download Telegram
❇️ سری آموزش #Microservices در NET Core. (بخش اول)

موضوعات #Microservices و Distributed System ها موضوعاتی نیستند که با یک یا چند مقاله جسته و گریخته بتوان آنها را فرا گرفت. اینها موارد بزرگی هستند و نکات، تکنیک ها و ابزار های زیادی دارند که یاد گرفتن آنها نیازمند یک سری آموزش پیوسته و جامع است.

سری آموزش Building Microservices On .NET Core یکی از بهترین منابع برای یادگیری Microservice ها در NET Core. است که به صورت عملی و گام به گام همراه با مثال و سورس آن در گیتهاب منتشر شده است.

1️⃣ Building Microservices On .NET Core – Part 1 The Plan

2️⃣
Building Microservices On .NET Core – Part 2 Shaping microservice internal architecture with CQRS and MediatR

3️⃣ Building Microservices On .NET Core – Part 3 Service Discovery with Eureka

4️⃣ Building Microservices On .NET Core – Part 4 Building API Gateways With Ocelot

5️⃣ Building Microservices On .NET Core – Part 5 Marten An Ideal Repository For Your Domain Aggregates

6️⃣ Building Microservices On .NET Core – Part 6 Real time server client communication with SignalR and RabbitMQ

7️⃣ Building Microservices On .NET Core – Part 7 Transactional Outbox with RabbitMQ

🔰
سورس پروژه آموزشی در گیتهاب
https://github.com/asc-lab/dotnetcore-microservices-poc
Very simplified insurance sales system made in a microservices architecture using .NET Core

🔰 دیگر مقالات مرتبط
🔸Microservices

🔹
From monolith to microservices – to migrate or not to migrate?

🔸UI in Microservices World – Micro Frontends pattern and Web Components

🔹How to create better code using Domain-Driven Design

🔸CQRS and Event Sourcing Intro For Developers

این سری آموزشی رو از دست ندین به زودی چندتا از بهترین منابع برای این موضوع معرفی میشه
❇️ سری آموزش #Microservices در NET Core. (بخش دوم)

موضوعات #Microservices و Distributed System ها موضوعاتی نیستند که با یک یا چند مقاله جسته و گریخته بتوان آنها را فرا گرفت. اینها موارد بزرگی هستند و نکات، تکنیک ها و ابزار های زیادی دارند که یاد گرفتن آنها نیازمند یک سری آموزش پیوسته و جامع است.

سری آموزش Building microservices through Event Driven Architecture یکی از بهترین منابع برای یادگیری Microservice ها در NET Core. است که به صورت عملی و گام به گام همراه با مثال و سورس آن در گیتهاب منتشر شده است.

1️⃣ Building microservices through Event Driven Architecture part1 : application specific business rules

2️⃣ Building microservices through Event Driven Architecture part2 : domain objects and business rules

3️⃣ Building microservices through Event Driven Architecture part3: Presenters, Views, and Controllers

4️⃣ Building microservices through Event Driven Architecture part4: repositories

5️⃣ Building microservices through Event Driven Architecture part5: dockerization (Web Api Core and SQL Server Linux)

6️⃣ Building microservices through Event Driven Architecture part7: Implementing EventSourcing on Domain Model

7️⃣ Building microservices through Event Driven Architecture part8: Implementing EventSourcing on Repositories

8️⃣ Building microservices through Event Driven Architecture part9: Implementing EventSourcing on Application

9️⃣ Building microservices through Event Driven Architecture part10: Handling updates

🔟 Building microservices through Event Driven Architecture part11: Run Unit tests inside a docker container

🔰 سورس پروژه آموزشی در گیتهاب
https://github.com/logcorner/LogCorner.EduSync.Speech.Command/
در این سری آموزشی موضوعات زیر پوشش داده است
🏷Microservices 🏷CleanArchitecture 🏷DDD 🏷CQRS 🏷EventSourcing 🏷TDD 🏷Docker 🏷 Container 🏷EFCore 🏷ASPNETCore
این سری آموزشی رو از دست ندین به زودی چندتا از بهترین منابع برای این موضوع معرفی میشه
_____________________
👍1
❇️ سری آموزش ویدئویی #Microservices در NET Core. (بخش سوم)

موضوعات #Microservices و Distributed System ها موضوعاتی نیستند که با یک یا چند مقاله جسته و گریخته بتوان آنها را فرا گرفت. اینها موارد بزرگی هستند و نکات، تکنیک ها و ابزار های زیادی دارند که یاد گرفتن آنها نیازمند یک سری آموزش پیوسته و جامع است.

سری آموزش ویدئویی Distributed .NET Core (DShop) یکی از بهترین آموزش های ویدئویی منابع برای یادگیری Microservice و Distributed System ها در NET Core. است که به صورت عملی و گام به گام همراه با مثال و سورس آن در گیتهاب منتشر شده است. این آموزش همراه زیرنویس انگلیسی است (از قسمت Caption در Youtube)

0- Distributed .NET Core (DShop) - Teaser

1- Distributed .NET Core (DShop) - Episode 1 [Intro, HTTP requests flow, Infrastructure with Docker]

2- Distributed .NET Core (DShop) - Episode 2 [CQRS - Write side, Discounts service, MongoDB repository]

3- Distributed .NET Core (DShop) - Episode 3 [Subscribing RabbitMQ messages, API gateway]

4- Distributed .NET Core (DShop) - Episode 4 [Asynchronous microservices integration via events]

5- Distributed .NET Core (DShop) - Episode 5 [CQRS - Read side, Internal HTTP communication]

6. Distributed .NET Core (DShop) - Episode 6 [Service discovery & Load balancing with Consul + Fabio]

7- Distributed .NET Core (DShop) - Episode 7 [Handling asynchronous requests, SignalR, Polly]

8- Distributed .NET Core (DShop) - Episode 8 [Distributed transactions, 2PC, Event Choreography, Saga]

9- Distributed .NET Core (DShop) - Episode 9 [Vault secrets, Seq logging, Jaeger distributed tracing]

10- Distributed .NET Core (DShop) - Episode 10 [Metrics with AppMetrics, InfluxDB, Prometheus, Grafana]

11- Distributed .NET Core (DShop) - Episode 11 [Travis CI pipelines, custom MyGet feeds]

12- Distributed .NET Core (DShop) - Episode 12 [Docker basics, Docker Hub, docker-compose]

13- Distributed .NET Core (DShop) - Episode 13 [Integration tests with xUnit, Web API, Mongo, RabbitMQ]

14- Distributed .NET Core (DShop) - Episode 14 [Consumer-driven contract testing with Pact]

15- Distributed .NET Core (DShop) - Episode 15 [Orchestration with Portainer, Kubernetes and Rancher]

🔰 سورس پروژه آموزشی در گیتهاب
https://github.com/devmentors/DNC-DShop
در این سری آموزشی موضوعات زیر پوشش داده است
🏷Microservices 🏷DistributedSystem 🏷DDD 🏷CQRS 🏷Docker 🏷 Container 🏷ASPNETCore 🏷SqlServer 🏷Redis 🏷NoSql 🏷MongoDb 🏷InfluxDb 🏷SignalR 🏷JWT 🏷RabbitMQ 🏷Grafana 🏷AppMetrics 🏷Prometheus 🏷Jaeger 🏷Seq 🏷ELK 🏷ApiGateway 🏷Consul 🏷Kubernetes

🔸این سری آموزشی رو به هیچ عنوان از دست ندین
🔹بازم منبع خوب هست. تو کامنتا بگین معرفی کنم یا بسه؟!
_______________
پروژه سورس باز فروش بیمه به صورت Microservices در NET Core.

🔰 تکنولوژی های استفاده شده
.NET Core 2.1
Entity Framework Core
#MediatR
#Marten
#Eureka
#Ocelot
#JWT Tokens
#RestEase
#RawRabbit
#NHibernate
#Polly
#NEST (#ElasticSearch client)
#Dapper
#SignalR
#MicroServices
DynamicExpresso

https://github.com/asc-lab/dotnetcore-microservices-poc
❇️ کتاب رایگان ماکروسافت برای آموزش #Microservices در NET Core.

💎بدون شک این کتاب یکی از بهترین و کامل ترین منابع جهت یادگیری توسعه برنامه‌های مبتنی بر معماری Microservices و مدیریت آنها با استفاده از Docker Containers در NET Core. است.

https://docs.microsoft.com/en-us/dotnet/architecture/microservices/
لینک دانلود PDF کتاب
https://aka.ms/microservicesebook

🔸برای یادگیری بهتر می‌توانید پروژه eShopOnContainers که بر اساس مفاهیم این آموزش نوشته شده است را بررسی کنید.

https://github.com/dotnet-architecture/eShopOnContainers
کالبدشکافی یک مهاجرت بزرگ: چرا ردیت قلب تپنده‌اش را به Go سپرد؟

اخیراً تیم مهندسی Reddit یکی از مهم‌ترین تغییرات زیرساختی چند سال اخیر خود را فاش کرد: بازنویسی سرویس کامنت‌ها (Comment Service) از پایتون به Go.
شاید بپرسید چرا کامنت؟ در ردیت، کامنت‌ها فقط یک لیست ساده متنی نیستند؛ آن‌ها یک ساختار درختی پیچیده و عمیق (Deeply Nested) دارند که پردازش و نمایش آن‌ها در اسکیل میلیونی، یک چالش تمام عیار مهندسی است.


چرا پایتون دیگر پاسخگو نبود؟ (The Bottleneck)


ردیت سال‌هاست که یک "Python Shop" محسوب می‌شود. پایتون برای توسعه سریع عالی است، اما وقتی صحبت از High Throughput و محاسبات سنگین در لحظه می‌شود، کم می‌آورد:
۱. هزینه بالای ساخت آبجکت‌ها: در پایتون، هر نود (Node) در درخت کامنت‌ها یک آبجکت سنگین است. وقتی قرار است هزاران کامنت را برای یک ترد (Thread) لود کنید، سربار حافظه و CPU وحشتناک می‌شود.

۲. قفل مفسر جهانی (GIL): پردازش همزمان درخواست‌ها در پایتون به دلیل GIL محدودیت دارد و نمی‌توان از تمام هسته‌های CPU به صورت واقعی (Parallelism) بهره برد.

۳. تایپ‌دهی پویا: در سیستم‌های بسیار بزرگ، چک کردن تایپ‌ها در زمان اجرا (Runtime) هم سربار دارد و هم ریسک باگ را بالا می‌برد.

چرا Go ناجی سیستم شد؟
تیم ردیت تصمیم گرفت برای این سرویس خاص به سراغ Go برود. نتایج خیره‌کننده بود:

مدیریت همزمانی (Concurrency): با استفاده از Goroutineها، ردیت توانست درخواست‌های واکشی (Fetch) کامنت‌ها را به صورت موازی و بسیار سبک انجام دهد. کاری که در پایتون نیازمند Threadهای سنگین سیستم‌عامل بود، در Go با چند کیلوبایت حافظه انجام شد.

ساختار داده‌ای بهینه: برخلاف پایتون، Go اجازه می‌دهد کنترل دقیقی روی نحوه چیدمان داده‌ها در حافظه داشته باشید (Memory Layout). این یعنی کاهش فشار روی Garbage Collector و افزایش سرعت پردازش.

کاهش تاخیر (Latency): نتیجه نهایی، کاهش چشمگیر زمان پاسخگویی (Response Time) سرویس کامنت بود، حتی در زمان‌هایی که ترافیک پلتفرم به اوج می‌رسد.

درس‌هایی برای طراحی سیستم (System Design):
این حرکت ردیت یک کلاس درس عالی برای معماران نرم‌افزار است:
- معماری چند زبانه (Polyglot): لازم نیست کل پلتفرم با یک زبان نوشته شود. ردیت همچنان برای بیزنس لاجیک‌های لایه بالا از پایتون استفاده می‌کند، اما برای لایه‌های زیرین و پرفشار، Go را وارد کرده است.

- میکروسرویس واقعی: جدا کردن سرویس کامنت، اجازه داد تا فقط "همان بخش" اسکیل شود، بدون اینکه نیاز باشد کل کدبیس تغییر کند.

📊 نتیجه: سرویس جدید با منابع سخت‌افزاری کمتر، ترافیک بیشتری را مدیریت می‌کند و تجربه کاربری (UX) روان‌تری را ارائه می‌دهد.

🔗 مطالعه مقاله فنی کامل در ردیت:
https://www.reddit.com/r/RedditEng/s/2tmpQVQSdv

#Reddit #Golang #SystemDesign #Microservices #Backend #PythonVsGo #HighThroughput

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105🔥3👏1