#AspNetCore
#CrossPlatform
مزیت های نوشتن اپلیکیشن با Asp Net Core
1-مستقلcross Platform() یعنی برنامه وب شما در همه سیستم عامل ها مک، لینوکس، ویندوز به راحتی اجرا میشن.
2-سورس بازOpen Sourceهست و همه افراد جهان میتونن سورس رو ارتقا بدن
3- وب سرویس Kestrel: به این معنی هست که ماکروسافت پروژه اپن سورس KestrelHttpServer که میتونه پروژه رو بدون IIS اجرا کنه. جالب اینجا هست این وب سرویس از کتابخونه libuv استفاده میکنه که برای هاست کردن Node Js نوشته شده بود و تاکید اون اجرای عملیات IO به صورت Async هست. در تست هایی که ماکروسافت از این سرویس گرفته که سورس اون تو github هست ، این وب سرویس از Node Js سریعتره !!
4-تزریق وابستگی Dependency Injectionبه صورت توکار: به صورت توکار IOC Container با امکانات خوب برای بحث Inversion Of Controll داره
5-با فریمورک های مدرن سمت کلاینت یکپارچه شده: فریمورک های مثل Gulp ,...
6-کارایی Performance طبق تست های انجام شده برنامه های نوشته شده به شدت بازدهی بالایی دارن، سریعتر از Node Js , و سریعتر از زبان Go , و سریعتر از Java Servlet
7- محیط توسعه Cross Paltfrom: شما میتونید داخل هر سیستم عامل برنامه Asp Net Core رو توسعه بدید مثل لینوکس و مک
8- پشتیبانی از DBMS های معرف: با Entity Framework جدید خیلی راحت میتونید با دیتابیس های اراکل، Mysql،DB2،Sqllite و.. متصل شوید.
9- باز نویسی Asp: این فریمورک از ابتدا باز نویسی شده و بسیار ماژولار و سبک هست، مهندسی نویسی شده. شما همه جاها باید از Interface ها استفاده کنید که خیلی راحت میتونید Class خودتون رو داخل کانفیگ پروژه Impl و Inject کنید
@ArmanAbi
#CrossPlatform
مزیت های نوشتن اپلیکیشن با Asp Net Core
1-مستقلcross Platform() یعنی برنامه وب شما در همه سیستم عامل ها مک، لینوکس، ویندوز به راحتی اجرا میشن.
2-سورس بازOpen Sourceهست و همه افراد جهان میتونن سورس رو ارتقا بدن
3- وب سرویس Kestrel: به این معنی هست که ماکروسافت پروژه اپن سورس KestrelHttpServer که میتونه پروژه رو بدون IIS اجرا کنه. جالب اینجا هست این وب سرویس از کتابخونه libuv استفاده میکنه که برای هاست کردن Node Js نوشته شده بود و تاکید اون اجرای عملیات IO به صورت Async هست. در تست هایی که ماکروسافت از این سرویس گرفته که سورس اون تو github هست ، این وب سرویس از Node Js سریعتره !!
4-تزریق وابستگی Dependency Injectionبه صورت توکار: به صورت توکار IOC Container با امکانات خوب برای بحث Inversion Of Controll داره
5-با فریمورک های مدرن سمت کلاینت یکپارچه شده: فریمورک های مثل Gulp ,...
6-کارایی Performance طبق تست های انجام شده برنامه های نوشته شده به شدت بازدهی بالایی دارن، سریعتر از Node Js , و سریعتر از زبان Go , و سریعتر از Java Servlet
7- محیط توسعه Cross Paltfrom: شما میتونید داخل هر سیستم عامل برنامه Asp Net Core رو توسعه بدید مثل لینوکس و مک
8- پشتیبانی از DBMS های معرف: با Entity Framework جدید خیلی راحت میتونید با دیتابیس های اراکل، Mysql،DB2،Sqllite و.. متصل شوید.
9- باز نویسی Asp: این فریمورک از ابتدا باز نویسی شده و بسیار ماژولار و سبک هست، مهندسی نویسی شده. شما همه جاها باید از Interface ها استفاده کنید که خیلی راحت میتونید Class خودتون رو داخل کانفیگ پروژه Impl و Inject کنید
@ArmanAbi
🔥 Rate Limiting در .NET
Rate Limiting مشخص میکند یک Client در یک بازه زمانی چند Request میتواند به API ارسال کند و از ارسال بیشازحد درخواستها جلوگیری میکند.
🟡 Fixed Window
زمان به بازههای ثابت تقسیم میشود. مثلاً حداکثر ۲۰ Request در ۳۰ ثانیه. با شروع Window جدید شمارنده Reset میشود.
مشکل این روش Boundary Burst است؛ Client میتواند تعداد زیادی Request در انتهای یک Window و دوباره در ابتدای Window بعدی ارسال کند.
🟣 Sliding Window
Window به چند Segment کوچکتر تقسیم میشود. ظرفیت بهجای Reset ناگهانی، بهتدریج آزاد میشود؛ بنابراین Traffic نرمتر کنترل شده و احتمال Burst در مرز Windowها کمتر میشود.
PermitLimit → تعداد Request مجاز
Window → طول بازه زمانی
SegmentsPerWindow → تعداد Segmentها
QueueLimit → ظرفیت صف انتظار
📌 Fixed Window → سادهتر
📌 Sliding Window → کنترل بهتر Burst
#dotnet #csharp #aspnetcore #backend #RateLimiting
@fullStackDevs
Rate Limiting مشخص میکند یک Client در یک بازه زمانی چند Request میتواند به API ارسال کند و از ارسال بیشازحد درخواستها جلوگیری میکند.
🟡 Fixed Window
زمان به بازههای ثابت تقسیم میشود. مثلاً حداکثر ۲۰ Request در ۳۰ ثانیه. با شروع Window جدید شمارنده Reset میشود.
مشکل این روش Boundary Burst است؛ Client میتواند تعداد زیادی Request در انتهای یک Window و دوباره در ابتدای Window بعدی ارسال کند.
🟣 Sliding Window
Window به چند Segment کوچکتر تقسیم میشود. ظرفیت بهجای Reset ناگهانی، بهتدریج آزاد میشود؛ بنابراین Traffic نرمتر کنترل شده و احتمال Burst در مرز Windowها کمتر میشود.
PermitLimit → تعداد Request مجاز
Window → طول بازه زمانی
SegmentsPerWindow → تعداد Segmentها
QueueLimit → ظرفیت صف انتظار
📌 Fixed Window → سادهتر
📌 Sliding Window → کنترل بهتر Burst
#dotnet #csharp #aspnetcore #backend #RateLimiting
@fullStackDevs
❤2👍1