❇️ معرفی MagicOnion : یک فریمورک Realtime مبتنی بر gRPC و MessagePack
این فریمورک با استفاده از قابلیت HTTP/2 Streaming مبتنی بر gRPC و بهره گیری از MessagePack برای Serialization (همراه با LZ4 integration) بستری قدرتمند را برای ارتباطات Realtime فراهم میکند.
🔸یکی از مزایای این فریمورک عدم نیاز به فایلهای .proto مخصوص gRPC است چرا که از interface های سی شارپی برای به اشتراک گذاری امضای Endpointهای موجود بین Server و Client استفاده میکند.
🔹یکی از دیگر مزایای آن پشتیبانی از Swagger و داشتن Json Gateway توکار متبنی بر HTTP/1 است که به کمک آن میتوان به صورت Json/RESTful نیز APIها را فراخوانی کرد.
🔸همچنین این فریمورک از OpenTelemetry پشتیبانی کرده و میتوانید از برنامههای مانیتورینگ مانند Prometheus و StackDriver و Zipkin و... بر روی پروژه خود استفاده کنید و یا توسط Grafana یک داشبورد مانیتورینگ ویژوال و Realtime ایجاد کنید.
🔹این فریمورک ابزار مناسبی جهت ارتباطات بین Microserviceها میباشد.
🔸همچنین جایگزین مناسبی برای سرویسهای API based مانند ASP.NET Core WebAPI و WCF بوده و نیز جایگزین مناسبی برای SignalR و Socket.io جهت ارتباطات Realtime میباشد.
🔰ریپازیتوری MagicOnion
https://github.com/Cysharp/MagicOnion
اطلاعات بیشتر
https://medium.com/@neuecc/magiconion-unified-realtime-api-engine-for-net-core-and-unity-21e02a57a3ff
___________
این فریمورک با استفاده از قابلیت HTTP/2 Streaming مبتنی بر gRPC و بهره گیری از MessagePack برای Serialization (همراه با LZ4 integration) بستری قدرتمند را برای ارتباطات Realtime فراهم میکند.
🔸یکی از مزایای این فریمورک عدم نیاز به فایلهای .proto مخصوص gRPC است چرا که از interface های سی شارپی برای به اشتراک گذاری امضای Endpointهای موجود بین Server و Client استفاده میکند.
🔹یکی از دیگر مزایای آن پشتیبانی از Swagger و داشتن Json Gateway توکار متبنی بر HTTP/1 است که به کمک آن میتوان به صورت Json/RESTful نیز APIها را فراخوانی کرد.
🔸همچنین این فریمورک از OpenTelemetry پشتیبانی کرده و میتوانید از برنامههای مانیتورینگ مانند Prometheus و StackDriver و Zipkin و... بر روی پروژه خود استفاده کنید و یا توسط Grafana یک داشبورد مانیتورینگ ویژوال و Realtime ایجاد کنید.
🔹این فریمورک ابزار مناسبی جهت ارتباطات بین Microserviceها میباشد.
🔸همچنین جایگزین مناسبی برای سرویسهای API based مانند ASP.NET Core WebAPI و WCF بوده و نیز جایگزین مناسبی برای SignalR و Socket.io جهت ارتباطات Realtime میباشد.
🔰ریپازیتوری MagicOnion
https://github.com/Cysharp/MagicOnion
اطلاعات بیشتر
https://medium.com/@neuecc/magiconion-unified-realtime-api-engine-for-net-core-and-unity-21e02a57a3ff
___________
GitHub
GitHub - Cysharp/MagicOnion: Unified Realtime/API framework for .NET platform and Unity.
Unified Realtime/API framework for .NET platform and Unity. - Cysharp/MagicOnion
👍1
تا 8 آبان میتونید بازی های
Layers of Fear 2
30$
Costume Quest 2
15$
را به صورت رایگان دریافت و به اکانت Epic Game خود اضافه کنید .
https://www.epicgames.com/store/en-US/product/layers-of-fear-2/home
https://www.epicgames.com/store/en-US/product/costume-quest-2/home
Layers of Fear 2
30$
Costume Quest 2
15$
را به صورت رایگان دریافت و به اکانت Epic Game خود اضافه کنید .
https://www.epicgames.com/store/en-US/product/layers-of-fear-2/home
https://www.epicgames.com/store/en-US/product/costume-quest-2/home
Epic Games Store
Layers of Fear 2 | Download and Buy Today - Epic Games Store
Download and play Layers of Fear 2 at the Epic Games Store. Check for platform availability and price!
🔸سال 94 یه مجموعه کامپوننت از روی پلاگین های معروف جاوااسکریپتی برای ASP MVC نوشتم که در اون زمان به خاطر امکاناتش جز شاهکارام محسوب میشد و تو این سال ها هم خیلی کارمو راه انداخت
کامپوننت هاش از جمله:
- Select2
- CKEditor
- DataTables
- iCheck
- DateRangePicker (with jalaali support)
- SweetAlert
- Noty
- Toaster
- And ...
🔹چند روز پیش اون رو به NET Core 3.1 آپدیت کردم و گذاشتمش گیتهابم
https://github.com/mjebrahimi/DNZ.MvcComponents
🔰پ.ن:
1️⃣ الان دیگه قصد نگهداری و ریفکتورش رو ندارم، فقط گذاشتم بمونه به یادگار و شاید بررسی سورس کدش به درد کسی بخوره
2️⃣ اینو باید همون سالها اوپن سورسش میکردم، من اشتباه کردم، شما این اشتباهو تَکرار نکنین :)
________________
کامپوننت هاش از جمله:
- Select2
- CKEditor
- DataTables
- iCheck
- DateRangePicker (with jalaali support)
- SweetAlert
- Noty
- Toaster
- And ...
🔹چند روز پیش اون رو به NET Core 3.1 آپدیت کردم و گذاشتمش گیتهابم
https://github.com/mjebrahimi/DNZ.MvcComponents
🔰پ.ن:
1️⃣ الان دیگه قصد نگهداری و ریفکتورش رو ندارم، فقط گذاشتم بمونه به یادگار و شاید بررسی سورس کدش به درد کسی بخوره
2️⃣ اینو باید همون سالها اوپن سورسش میکردم، من اشتباه کردم، شما این اشتباهو تَکرار نکنین :)
________________
قابلیتهای کاربردی تلگرام در نسخه 7.2
🔸تلگرام بهروزرسانی جدید خود (نسخه 7.2 ) را با تغییرات جذاب و کاربردی برای کاربران عرضه کرده است.
🔹تلگرام در نسخه جدید خود پین کردن پیامها را عرضه کرده که بالاخره کاربران میتوانند در چتهای شخصی پیامهای مختلف را پین کنند.
🔸تلگرام همچنین قابلیت پین کردن چندین پیام به طور همزمان را اضافه کرده و کاربران میتوانند هم در چتهای شخصی و هم در گروهها و کانال با پین کردن چندین پیام با کلیک کردن روی پیام پینشده آنها را ببینند یا با کلیک کردن روی ایکون کنار پیام پینشده، لیست همه پیامهای پینشده را مشاهده کنند.
🔹تلگرام همچنین در کانالها، علاوه بر آمار کلی کانال، آمار هر پست به طور مجزا را هم ارائه میدهد که این بخش یک قسمت جذاب هم دارد که لیست کانالهای پابلیکی که پست خاصی از شما را فوروارد کردهاند به شما نشان میدهد.
🔸کاربران از حالا میتوانند موزیک و فایلها را هم به صورت البوم ارسال کنند. موزیکهایی که به صورت آلبوم ارسال میشوند به عنوان پلی لیست هم کاربردی هستند.
🔹تلگرام همچنین نسخه جدید لایو لوکیشن یا سرویس اشتراک گذاری همزمان موقعیت را عرضه کرده که کاربرا
🔸تلگرام بهروزرسانی جدید خود (نسخه 7.2 ) را با تغییرات جذاب و کاربردی برای کاربران عرضه کرده است.
🔹تلگرام در نسخه جدید خود پین کردن پیامها را عرضه کرده که بالاخره کاربران میتوانند در چتهای شخصی پیامهای مختلف را پین کنند.
🔸تلگرام همچنین قابلیت پین کردن چندین پیام به طور همزمان را اضافه کرده و کاربران میتوانند هم در چتهای شخصی و هم در گروهها و کانال با پین کردن چندین پیام با کلیک کردن روی پیام پینشده آنها را ببینند یا با کلیک کردن روی ایکون کنار پیام پینشده، لیست همه پیامهای پینشده را مشاهده کنند.
🔹تلگرام همچنین در کانالها، علاوه بر آمار کلی کانال، آمار هر پست به طور مجزا را هم ارائه میدهد که این بخش یک قسمت جذاب هم دارد که لیست کانالهای پابلیکی که پست خاصی از شما را فوروارد کردهاند به شما نشان میدهد.
🔸کاربران از حالا میتوانند موزیک و فایلها را هم به صورت البوم ارسال کنند. موزیکهایی که به صورت آلبوم ارسال میشوند به عنوان پلی لیست هم کاربردی هستند.
🔹تلگرام همچنین نسخه جدید لایو لوکیشن یا سرویس اشتراک گذاری همزمان موقعیت را عرضه کرده که کاربرا
✅ آخرت سرعت در عملیات Linq با کتابخانه LinqFaster !
این کتابخانه با استفاده از تکنولوژی SIMD (ساده بگم : پردازش برداری موازی و فوق سریع) و پردازش موازی با Multi-Threading اومده و متد های کمکی مشابه ایی نوشته که عملیات Linq رو با سرعت بالا و مصرف حافظه کمتر انجام میده.
فقط کافیه بنچمارک رو توی تصویر ببینین :)
LinqFaster
متدهای کمکی Linq با پرفرمنس بالا
https://www.nuget.org/packages/LinqFaster/
LinqFaster.SIMD
متدهای کمکی Linq با پرفرمنس بالا با استفاده از تکنولوژی SIMD
https://www.nuget.org/packages/LinqFaster.SIMD/
LinqFaster.Parallel
متدهای کمکی Linq با پرفرمنس بالا با استفاده از پردازش موازی/Multi-Threading
https://www.nuget.org/packages/LinqFaster.Parallel/
LinqFaster.SIMD.Parallel
متدهای کمکی Linq با پرفرمنس بالا با استفاده از تکنولوژی SIMD و پردازش موازی/Multi-Threading
https://www.nuget.org/packages/LinqFaster.SIMD.Parallel/
لینک ریپازیتوری :
https://github.com/jackmott/LinqFaster
#Linq #Performance
__________________
این کتابخانه با استفاده از تکنولوژی SIMD (ساده بگم : پردازش برداری موازی و فوق سریع) و پردازش موازی با Multi-Threading اومده و متد های کمکی مشابه ایی نوشته که عملیات Linq رو با سرعت بالا و مصرف حافظه کمتر انجام میده.
فقط کافیه بنچمارک رو توی تصویر ببینین :)
LinqFaster
متدهای کمکی Linq با پرفرمنس بالا
https://www.nuget.org/packages/LinqFaster/
LinqFaster.SIMD
متدهای کمکی Linq با پرفرمنس بالا با استفاده از تکنولوژی SIMD
https://www.nuget.org/packages/LinqFaster.SIMD/
LinqFaster.Parallel
متدهای کمکی Linq با پرفرمنس بالا با استفاده از پردازش موازی/Multi-Threading
https://www.nuget.org/packages/LinqFaster.Parallel/
LinqFaster.SIMD.Parallel
متدهای کمکی Linq با پرفرمنس بالا با استفاده از تکنولوژی SIMD و پردازش موازی/Multi-Threading
https://www.nuget.org/packages/LinqFaster.SIMD.Parallel/
لینک ریپازیتوری :
https://github.com/jackmott/LinqFaster
#Linq #Performance
__________________
❇️ کتابخانه ای جهت پیاده سازی Unobtrusive Ajax در ASP.NET Core
قبلا توی MVC5 میتونستیم توسط Ajax.BeginForm و Ajax.ActionLink براحتی فرم ها و لینک های Ajax ایی درست کنیم که بهش Unobtrusive Ajax هم میگفتند.
🔸متاسفانه این امکان (Ajax Helper ها) توی ASP.NET Core حذف شدند و قرار هم نیست اضافه بشند. البته همچنان میشه از Unobtrusive Ajax استفاده کرد ولی باید دستی بنویسیم و attribute هاش رو به تگ form اضافه کنیم.
مقاله زیر آموزش کاملش رو به همراه نکات خوبی ارائه داده.
https://www.dotnettips.info/post/2518
🔹اخیرا اما برای مهاجرت پروژه ای که با MVC5 نوشته شده بود و زیاد از Ajax.BeignForm استفاده کرده بود به ASP.NET Core، خیلی به این امکان نیاز داشتم و دیدم که کسی تا حالا کتابخونه ای برای این کار نزده.
پس دست به کار شدم و نتیجه اش شد یه کتابخونه خیلی کامل و با امکاناتی بیش از پیش از جمله:
1- اگر از قابلیت Ajax Helper ها استفاده کنین به صورت خودکار فایل جاوااسکریپت Unobtrusive Ajax رو توی Layout شما تزریق میکنه و در صورت عدم استفاده اون رو تزریق نمیکنه. پس هم فایل js اضافی تو صفحه لود نمیشه و هم نگرانی بابت فراموش کردنش نخواهید نداشت
2- به صورت پیشفرض از یک جاوااسکریپ Embed شده استفاده میکنه ولی میتونین تنظیم کنین که از CDN (وبسایت cdnjs) استفاده کنه
3- با Upload فایل ها سازگاره
4- به صورت خودکار ForgeryToken رو ارسال میکنه و با [AntiForgeryTokenValidation] سازگاره
5- دارای اتریبیوت [AjaxOnly] برای محدودیت گذاری روی اکشن ها هست
6- دارای اکسنشن متد httpRequest.IsAjaxRequest() هست تا بتونین براساس اون تصمیم بگیرین PartialView برگردونین یا Json
دارای چندین متد overload اضافی هست برای راحتی بیشتر
▪️تفاوت این کتابخونه با jQuery Ajax اینه که در عمل خود این کتابخونه هم از jQuery Ajax استفاده میکنه ولی برای جا هایی که سفارشی سازی خاصی لازم ندارید استفاده از ajax رو خیلی ساده تر میکنه.
▪️توی صفحه اصلی ریپازیتوریش طریقه استفادش رو کامل توضیح دادم اما اگه خواستین میتونین پروژه رو دانلود/clone کنین و پروژه demo رو اجرا کنین تا چندتا از sample هاش رو ببینین
https://github.com/mjebrahimi/AspNetCore.Unobtrusive.Ajax
__________________
قبلا توی MVC5 میتونستیم توسط Ajax.BeginForm و Ajax.ActionLink براحتی فرم ها و لینک های Ajax ایی درست کنیم که بهش Unobtrusive Ajax هم میگفتند.
🔸متاسفانه این امکان (Ajax Helper ها) توی ASP.NET Core حذف شدند و قرار هم نیست اضافه بشند. البته همچنان میشه از Unobtrusive Ajax استفاده کرد ولی باید دستی بنویسیم و attribute هاش رو به تگ form اضافه کنیم.
مقاله زیر آموزش کاملش رو به همراه نکات خوبی ارائه داده.
https://www.dotnettips.info/post/2518
🔹اخیرا اما برای مهاجرت پروژه ای که با MVC5 نوشته شده بود و زیاد از Ajax.BeignForm استفاده کرده بود به ASP.NET Core، خیلی به این امکان نیاز داشتم و دیدم که کسی تا حالا کتابخونه ای برای این کار نزده.
پس دست به کار شدم و نتیجه اش شد یه کتابخونه خیلی کامل و با امکاناتی بیش از پیش از جمله:
1- اگر از قابلیت Ajax Helper ها استفاده کنین به صورت خودکار فایل جاوااسکریپت Unobtrusive Ajax رو توی Layout شما تزریق میکنه و در صورت عدم استفاده اون رو تزریق نمیکنه. پس هم فایل js اضافی تو صفحه لود نمیشه و هم نگرانی بابت فراموش کردنش نخواهید نداشت
2- به صورت پیشفرض از یک جاوااسکریپ Embed شده استفاده میکنه ولی میتونین تنظیم کنین که از CDN (وبسایت cdnjs) استفاده کنه
3- با Upload فایل ها سازگاره
4- به صورت خودکار ForgeryToken رو ارسال میکنه و با [AntiForgeryTokenValidation] سازگاره
5- دارای اتریبیوت [AjaxOnly] برای محدودیت گذاری روی اکشن ها هست
6- دارای اکسنشن متد httpRequest.IsAjaxRequest() هست تا بتونین براساس اون تصمیم بگیرین PartialView برگردونین یا Json
دارای چندین متد overload اضافی هست برای راحتی بیشتر
▪️تفاوت این کتابخونه با jQuery Ajax اینه که در عمل خود این کتابخونه هم از jQuery Ajax استفاده میکنه ولی برای جا هایی که سفارشی سازی خاصی لازم ندارید استفاده از ajax رو خیلی ساده تر میکنه.
▪️توی صفحه اصلی ریپازیتوریش طریقه استفادش رو کامل توضیح دادم اما اگه خواستین میتونین پروژه رو دانلود/clone کنین و پروژه demo رو اجرا کنین تا چندتا از sample هاش رو ببینین
https://github.com/mjebrahimi/AspNetCore.Unobtrusive.Ajax
__________________
GitHub
GitHub - mjebrahimi/AspNetCore.Unobtrusive.Ajax: 💻 Unobtrusive Ajax Helpers (like MVC5 Ajax.BeignForm and Ajax.ActionLink) for…
💻 Unobtrusive Ajax Helpers (like MVC5 Ajax.BeignForm and Ajax.ActionLink) for ASP.NET Core - mjebrahimi/AspNetCore.Unobtrusive.Ajax
✅ بررسی اجمالی معماری ASP.NET Core
🔸توی این اسلاید خیلی زیبا، خلاصه و مفید معماری ASP.NET Core رو نشون میده و باعث میشه دید خوبی از اجزای مختلف این فریمورک و طرز کارکردشون پیدا کنید.
https://speakerdeck.com/davidfowl/asp-dot-net-core-architecture-overview
🔹این اسلاید توسط David Fowler، معمار تیم ASP.NET ماکروسافت تهیه شده. بقیه اسلاید های ایشون رو هم از لینک زیر میتونین ببینین که واقعا آموزنده هست.
https://speakerdeck.com/davidfowl
__________________
🔸توی این اسلاید خیلی زیبا، خلاصه و مفید معماری ASP.NET Core رو نشون میده و باعث میشه دید خوبی از اجزای مختلف این فریمورک و طرز کارکردشون پیدا کنید.
https://speakerdeck.com/davidfowl/asp-dot-net-core-architecture-overview
🔹این اسلاید توسط David Fowler، معمار تیم ASP.NET ماکروسافت تهیه شده. بقیه اسلاید های ایشون رو هم از لینک زیر میتونین ببینین که واقعا آموزنده هست.
https://speakerdeck.com/davidfowl
__________________
✅ تست کد های #C به صورت آنلاین
توی پست قبلی در مورد C# Interactive توضیح داده بودم الان میخوام روش آنلاینش رو بررسی کنیم.
واسه اینکار سایت های زیادی هست که امکان Syntax Highlighter و Run کردن کد رو بهتون میدن. با این ابزار ها میتونین کد سی شارپ تون رو انلاین و راحت تست کنین و یا کدتون رو با بقیه به اشتراک بگذارین
🔸اول از همه بهترینشون و با اختلاف فاحش، سایت SharpLab هست. امکانات فوق العاده ای داره، Intellisense خیلی قوی ایی داره که در نوع خودش واقعا بی نظیره، امکان Decompile کردن کد خروجی به IL و #C و حتی Jit Assembly رو بهتون میده. UX خوب و روون ایی داره و خیلی سریع، در لحظه کد رو اجرا میکنه.
https://sharplab.io/
🔹این سایت برای ویرایشگرش اش از پلاگین جاوااسکریپتی CodeMirror استفاده میکنه که یک Code Editor و Syntax Highlighter قوی هست و از تموم زبان ها پشتیبانی میکنه
مثلا اگه خواستین قابلیت اسکریپت نویسی و اجرای کد داینامیک رو برای پروژه تون اضافه کنین میتونین از این پلاگین استفاده کنین
https://github.com/codemirror/CodeMirror
[Demo] https://codemirror.net/
🔸 این سایت برای اجرای کد ها از Roslyn و برای Decompile کردنشون از ILSpy استاده میکنه که قوی ترین برنامه Decompiler دات نت هست و ابزار های حرفه دیگه از از جمله dnSpy از رو همین ساخته شدن
🔹سازنده این سایت اومده کل پکیج Code Editor سی شارپیش رو که بر روی CodeMirror و Roslyn ساخته شده رو به صورت سورس پاز تو گیتهاب گذاشته
بدین صورت مثلا میتونین یه ویرایشگر کامل سی شارپی به همراه Autocomplete واسه اسکریپت نویسی داینامیک به پروژه تون اضافه کنین
https://github.com/ashmind/mirrorsharp
🔰تنها ایرادی که سایت sharplab.io داره اینه که که امکان اضافه کردن Nuget Package به کد هاتون رو نداره
واسه همین یه سایت دیگه به نام NET Fiddle. هست (که البته به خوبی اون نیست ولی بعضی امکانات اضافه تر مثل همین nuget package داره)
https://dotnetfiddle.net/
____________________
توی پست قبلی در مورد C# Interactive توضیح داده بودم الان میخوام روش آنلاینش رو بررسی کنیم.
واسه اینکار سایت های زیادی هست که امکان Syntax Highlighter و Run کردن کد رو بهتون میدن. با این ابزار ها میتونین کد سی شارپ تون رو انلاین و راحت تست کنین و یا کدتون رو با بقیه به اشتراک بگذارین
🔸اول از همه بهترینشون و با اختلاف فاحش، سایت SharpLab هست. امکانات فوق العاده ای داره، Intellisense خیلی قوی ایی داره که در نوع خودش واقعا بی نظیره، امکان Decompile کردن کد خروجی به IL و #C و حتی Jit Assembly رو بهتون میده. UX خوب و روون ایی داره و خیلی سریع، در لحظه کد رو اجرا میکنه.
https://sharplab.io/
🔹این سایت برای ویرایشگرش اش از پلاگین جاوااسکریپتی CodeMirror استفاده میکنه که یک Code Editor و Syntax Highlighter قوی هست و از تموم زبان ها پشتیبانی میکنه
مثلا اگه خواستین قابلیت اسکریپت نویسی و اجرای کد داینامیک رو برای پروژه تون اضافه کنین میتونین از این پلاگین استفاده کنین
https://github.com/codemirror/CodeMirror
[Demo] https://codemirror.net/
🔸 این سایت برای اجرای کد ها از Roslyn و برای Decompile کردنشون از ILSpy استاده میکنه که قوی ترین برنامه Decompiler دات نت هست و ابزار های حرفه دیگه از از جمله dnSpy از رو همین ساخته شدن
🔹سازنده این سایت اومده کل پکیج Code Editor سی شارپیش رو که بر روی CodeMirror و Roslyn ساخته شده رو به صورت سورس پاز تو گیتهاب گذاشته
بدین صورت مثلا میتونین یه ویرایشگر کامل سی شارپی به همراه Autocomplete واسه اسکریپت نویسی داینامیک به پروژه تون اضافه کنین
https://github.com/ashmind/mirrorsharp
🔰تنها ایرادی که سایت sharplab.io داره اینه که که امکان اضافه کردن Nuget Package به کد هاتون رو نداره
واسه همین یه سایت دیگه به نام NET Fiddle. هست (که البته به خوبی اون نیست ولی بعضی امکانات اضافه تر مثل همین nuget package داره)
https://dotnetfiddle.net/
____________________
Telegram
Attach Files
❇️ اگه هنوز براتون سواله که MongoDb یا مثلا SqlServer ❓❗️
اگه نمیدونین تئوری CAP چیه اول اینجا رو مطالعه کنین
وقتی از نگاه تئوری CAP دیتابیس mongo رو بررسی کنیم
مونگو تو شرایط مختلف trade-off متفاوتی از C و A و P رو فراهم میکنه
🔶 از نگاه Consistency :
مثلا وقتی به صورت Distribute ازش استفاده نشه Strong Consistent هست پس Consistency رو داره
ولی وقتی به صورت Distribute ازش استفاده بشه (مثلا دیتا از replica ها خونده بشه) Eventual Consistent هست پس Consistency رو فدا میکنه
🔷 از نگاه Availability:
وقتی از مونگو به صورت توزیع شده (Replica-Sets) استفاده بشه، high availability خوبی رو فراهم و در صورت دان شدن Primary Node سریعا یک node دیگه جایگزین میشه ولی در این حالت Consistency فدای Availability میشه
🔶 از نگاه Partition Tolerance:
توسط قابلیت Replica-Sets عملا Partition Tolerance فراهم است منتها تا زمانی که "بیش از نیمی" از Node ها به یک دیگر متصل باشند. در این حالت سیستم Primary Node جدید رو انتخاب میکنه
ولی اگر Node های ثانویه به اندازه کافی نباشند همچنان امکان read وجود داره ولی دیگه امکان write وجود نداره. پس دراین حالت Availability برای Consistency فدا میشه
🔰 نتیجه گیری :
✔️ اگر توزیع نشده استفاده بشه : CA
✔️ اگر توزیع شده باشه ولی اکثریت node ها در دسترس باشند : AP
✔️ اگر توزیع شده باشه ولی کمتر از نصف node ها در دسترس باشند : CP
✅ در نهایت ویژگی های خوبی که باعث میشه Mongo انتخاب بهتری نسبت به دیتابیس SQL/Relational باشه ایناس :
1️⃣ شما نیاز به مقیاس پذیری بالا به صورت Horizontal Scaling دارید (توسط قابلیت Replica-Set و Sharding مونگو)
در این حالت معمولا Consistency فدا میشه پس باید دقت داشت که این روش برای دیتا های حساس که به یکپارچگی و ثبات بالا نیاز دارند مناسب نیست، مثل برنامه های حسابداری و بانکی
2️⃣ دیتای شما ساختار (Schema) مشخصی نداره و به انعطاف پذیری بالا نیاز دارید (به خاطر Schema-less بودن مونگو)
در این حالت باید توجه داشت که متفاوت بودن ساختار رکورد (داکیومنت) ها میتونه احتمال خطا توی سیستم رو افزایش بده پس باید در سطح کد نویسی حواسمون بهش باشه
3️⃣ دیتابیس Mongo برای ذخیره سازی و بازیابی دیتا های حجیم و "مرتبط" بسیار مناسبه و پرفرمنس بالایی داره، چون تمام دیتای مرتبط به یک سند داخل خودش ذخیره میشه و نیاز به Join خیلی کمتر احساس میشه
4️⃣ دیتابیس Mongo به خاطر ساختار و سادگی ایی که داره Performance Tuning و Optimization های حرفه ای که نیاز به DBA داشته باشه خیلی کمتر توش احساس میشه پس اگه میخواین خیلی درگیر کار های DBA ایی نشین Mongo گزینه مناسبیه
_______________
اگه نمیدونین تئوری CAP چیه اول اینجا رو مطالعه کنین
وقتی از نگاه تئوری CAP دیتابیس mongo رو بررسی کنیم
مونگو تو شرایط مختلف trade-off متفاوتی از C و A و P رو فراهم میکنه
🔶 از نگاه Consistency :
مثلا وقتی به صورت Distribute ازش استفاده نشه Strong Consistent هست پس Consistency رو داره
ولی وقتی به صورت Distribute ازش استفاده بشه (مثلا دیتا از replica ها خونده بشه) Eventual Consistent هست پس Consistency رو فدا میکنه
🔷 از نگاه Availability:
وقتی از مونگو به صورت توزیع شده (Replica-Sets) استفاده بشه، high availability خوبی رو فراهم و در صورت دان شدن Primary Node سریعا یک node دیگه جایگزین میشه ولی در این حالت Consistency فدای Availability میشه
🔶 از نگاه Partition Tolerance:
توسط قابلیت Replica-Sets عملا Partition Tolerance فراهم است منتها تا زمانی که "بیش از نیمی" از Node ها به یک دیگر متصل باشند. در این حالت سیستم Primary Node جدید رو انتخاب میکنه
ولی اگر Node های ثانویه به اندازه کافی نباشند همچنان امکان read وجود داره ولی دیگه امکان write وجود نداره. پس دراین حالت Availability برای Consistency فدا میشه
🔰 نتیجه گیری :
✔️ اگر توزیع نشده استفاده بشه : CA
✔️ اگر توزیع شده باشه ولی اکثریت node ها در دسترس باشند : AP
✔️ اگر توزیع شده باشه ولی کمتر از نصف node ها در دسترس باشند : CP
✅ در نهایت ویژگی های خوبی که باعث میشه Mongo انتخاب بهتری نسبت به دیتابیس SQL/Relational باشه ایناس :
1️⃣ شما نیاز به مقیاس پذیری بالا به صورت Horizontal Scaling دارید (توسط قابلیت Replica-Set و Sharding مونگو)
در این حالت معمولا Consistency فدا میشه پس باید دقت داشت که این روش برای دیتا های حساس که به یکپارچگی و ثبات بالا نیاز دارند مناسب نیست، مثل برنامه های حسابداری و بانکی
2️⃣ دیتای شما ساختار (Schema) مشخصی نداره و به انعطاف پذیری بالا نیاز دارید (به خاطر Schema-less بودن مونگو)
در این حالت باید توجه داشت که متفاوت بودن ساختار رکورد (داکیومنت) ها میتونه احتمال خطا توی سیستم رو افزایش بده پس باید در سطح کد نویسی حواسمون بهش باشه
3️⃣ دیتابیس Mongo برای ذخیره سازی و بازیابی دیتا های حجیم و "مرتبط" بسیار مناسبه و پرفرمنس بالایی داره، چون تمام دیتای مرتبط به یک سند داخل خودش ذخیره میشه و نیاز به Join خیلی کمتر احساس میشه
4️⃣ دیتابیس Mongo به خاطر ساختار و سادگی ایی که داره Performance Tuning و Optimization های حرفه ای که نیاز به DBA داشته باشه خیلی کمتر توش احساس میشه پس اگه میخواین خیلی درگیر کار های DBA ایی نشین Mongo گزینه مناسبیه
_______________
Forwarded from CodeCup
This media is not supported in your browser
VIEW IN TELEGRAM
🏆 تیزر رسمی پنجمین دوره مسابقات کشوری کدکاپ🏆
🗓 ۳۰ آبان تا ۲۸ آذر به صورت کاملا آنلاین
💎 Algorithm Contest:
🎁 همراه با ۵۰ میلیون تومان جایزه نقدی و استخدام در ویستا سامانه آسا
📝 اطلاعات بیشتر و ثبتنام رایگان:
🔗 codecup.ir
➖➖➖➖➖➖
#مسابقه_برنامه_نویسی_کشوری
#ویستا_سامانه_آسا #Quera
#دانشگاه_صنعتی_شریف
🗓 ۳۰ آبان تا ۲۸ آذر به صورت کاملا آنلاین
💎 Algorithm Contest:
C, C++, Java, Python, mono C#, Php, NodeJs, Perl, Go, Ruby, Obj-C, Swift, Javascript, Haskell, Pypy3
💎 Technology Contest:PHP/Laravel، Python/Django، Front-End/React، Data Science
👈مسابقات به صورت مستقل از هم هستند و شرکت در بیش از یک مسابقه هم امکان پذیر است.🎁 همراه با ۵۰ میلیون تومان جایزه نقدی و استخدام در ویستا سامانه آسا
📝 اطلاعات بیشتر و ثبتنام رایگان:
🔗 codecup.ir
➖➖➖➖➖➖
#مسابقه_برنامه_نویسی_کشوری
#ویستا_سامانه_آسا #Quera
#دانشگاه_صنعتی_شریف
.
تا ساعتی دیگر کنفرانس دات نت شروع خواهد شد.
در این رویداد هر سال تکنولوژیها و قابلیتهای جدید محصولات مایکروسافت معرفی می شوند.
- معرفی نسخه نهایی NET 5.0.
- ویژگیهای جدید C#.NET
- بررسی EF Core 5.0
- و...
https://www.dotnetconf.net
آپدیت شد [نسخه نهایی هم اکنون قابل دانلود است]
https://dotnet.microsoft.com/download/dotnet/5.0
تا ساعتی دیگر کنفرانس دات نت شروع خواهد شد.
در این رویداد هر سال تکنولوژیها و قابلیتهای جدید محصولات مایکروسافت معرفی می شوند.
- معرفی نسخه نهایی NET 5.0.
- ویژگیهای جدید C#.NET
- بررسی EF Core 5.0
- و...
https://www.dotnetconf.net
آپدیت شد [نسخه نهایی هم اکنون قابل دانلود است]
https://dotnet.microsoft.com/download/dotnet/5.0
❇️ معرفی Awesome های NET. و NET Core.
پیشنهاد میکنم یه چرخی توش بزنین ببینین چه کتابخونه هایی واسه چه کارایی هست، چیا رو بلد نیستین و... کلا دنیا دست کیه!
https://github.com/quozd/awesome-dotnet
https://github.com/thangchung/awesome-dotnet-core
__
پیشنهاد میکنم یه چرخی توش بزنین ببینین چه کتابخونه هایی واسه چه کارایی هست، چیا رو بلد نیستین و... کلا دنیا دست کیه!
https://github.com/quozd/awesome-dotnet
https://github.com/thangchung/awesome-dotnet-core
__
GitHub
GitHub - quozd/awesome-dotnet: A collection of awesome .NET libraries, tools, frameworks and software
A collection of awesome .NET libraries, tools, frameworks and software - quozd/awesome-dotnet
🔰 نمونه مثالی از ASP.NET Core و Entity Framework Core به همراه معماری DDD و CQRS و Event Sourcing
🔸تکنولوژی ها و کتابخانه های استفاده شده :
- ASP NET Core 2.2 (with .NET Core 2.2)
- ASP NET MVC Core
- ASP NET WebApi Core
- ASP NET #Identity Core
- Entity Framework Core 2.2
- .NET Core Native DI
- #AutoMapper
- #FluentValidator
- #MediatR
- #Swagger UI
🔹معماری و پترن های استفاده شده :
- Full architecture with responsibility separation concerns, #SOLID and #Clean_Code
- #DDD : Domain Driven Design (Layers and Domain Model Pattern)
- #Domain_Events
- #Domain_Notification
- #CQRS (Imediate Consistency)
- #Event_Sourcing
- #UnitofWork
- #Repository and Generic Repository
🔰ریپازیتوری پروژه :
https://github.com/EduardoPires/EquinoxProject
_______
🔸تکنولوژی ها و کتابخانه های استفاده شده :
- ASP NET Core 2.2 (with .NET Core 2.2)
- ASP NET MVC Core
- ASP NET WebApi Core
- ASP NET #Identity Core
- Entity Framework Core 2.2
- .NET Core Native DI
- #AutoMapper
- #FluentValidator
- #MediatR
- #Swagger UI
🔹معماری و پترن های استفاده شده :
- Full architecture with responsibility separation concerns, #SOLID and #Clean_Code
- #DDD : Domain Driven Design (Layers and Domain Model Pattern)
- #Domain_Events
- #Domain_Notification
- #CQRS (Imediate Consistency)
- #Event_Sourcing
- #UnitofWork
- #Repository and Generic Repository
🔰ریپازیتوری پروژه :
https://github.com/EduardoPires/EquinoxProject
_______
GitHub
GitHub - EduardoPires/EquinoxProject: Web Application ASP.NET 9 using Clean Architecture, DDD, CQRS, Event Sourcing and a lot of…
Web Application ASP.NET 9 using Clean Architecture, DDD, CQRS, Event Sourcing and a lot of good practices - EduardoPires/EquinoxProject
دات نت از نگاه آمار
حضور فعال 2 میلیون توسعه دهنده NET Core
محبوب ترین فریم ورک Stackoverflow
جزو 30 پروژه برتر متن باز در GitHub
سی شارپ جزو 5 زبان برتر GitHub
سریعرین فریم ورک در بنچمارک Techempower
دانشجویان و دانش آموزان 40 درصد توسعه دهندگان جدید را تشکیل می دهند.
5 میلیون توسعه دهنده دات نت
200 هزار نفر از توسعه دهندگان دسکتاپ به Core مهاجرت کرده اند
در ماه سپتامبر 230 هزار نفر برای اولین بار از NET Core استفاده کرده اند.
هر ماه 2 میلیون پابلیش از NET Core با هدف Linux انجام میشود.
حضور فعال 2 میلیون توسعه دهنده NET Core
محبوب ترین فریم ورک Stackoverflow
جزو 30 پروژه برتر متن باز در GitHub
سی شارپ جزو 5 زبان برتر GitHub
سریعرین فریم ورک در بنچمارک Techempower
دانشجویان و دانش آموزان 40 درصد توسعه دهندگان جدید را تشکیل می دهند.
5 میلیون توسعه دهنده دات نت
200 هزار نفر از توسعه دهندگان دسکتاپ به Core مهاجرت کرده اند
در ماه سپتامبر 230 هزار نفر برای اولین بار از NET Core استفاده کرده اند.
هر ماه 2 میلیون پابلیش از NET Core با هدف Linux انجام میشود.
خیدو فان روسوم خالق زبان برنامه نویسی پایتون به مایکروسافت پیوست.
فن روسوم 6 ما قبل با اعلام بازنشستگی از Dropbox استعفا کرد. اما امروز در یک پیام تویتری خبر داد در یک چالش جدید به مایکروسافت پیوسته تا روی زبان پایتون و استفاده بهتر از آن کار کند.
Guido van Rossum:
I decided that retirement was boring and have joined the Developer Division at Microsoft. To do what? Too many options to say! But it’ll make using Python better for sure (and not just on Windows :-). There’s lots of open source here. Watch this space.
فن روسوم 6 ما قبل با اعلام بازنشستگی از Dropbox استعفا کرد. اما امروز در یک پیام تویتری خبر داد در یک چالش جدید به مایکروسافت پیوسته تا روی زبان پایتون و استفاده بهتر از آن کار کند.
Guido van Rossum:
I decided that retirement was boring and have joined the Developer Division at Microsoft. To do what? Too many options to say! But it’ll make using Python better for sure (and not just on Windows :-). There’s lots of open source here. Watch this space.
✅ لیست مطالب مهم NET 5.0. و کنفرانس Net Conf.
ببینید دوستان حجم مطالب منتشر شده توی رویداد NET Conf. خیلی زیاده. قبلا هم بخشی از تغییرات رو دوستان به فارسی کار کردند و اگه پیگیر اخبار جدید دنیای دات نت تو این کانال یا کانالهای همکار بوده باشین احتمالا اون ها رو دیدن.
الان اما بهترین کار به نظرم اینه که این آخر هفته ایه رو بذارین و این مقالات رو مطالعه کنین، خودمم میخوام همین کارو بکنم.
واسه همین لیست کامل مطالب مهم دات نت 5.0 رو اماده کردم و امیدوارم براتون مفید واقع بشه (لیست رو هم آپدیت نگه اش میدارم)
انشالا اگه خودم یا بقیه دوستان مطلبی اماده کردیم حتما باهاتون به اشتراک میذارم. شاد و پیروز باشین 🌹
🔰 معرفی ها و Release های جدید
💎 Announcing .NET 5.0
https://devblogs.microsoft.com/dotnet/announcing-net-5-0/
💎 Announcing ASP.NET Core in .NET 5
https://devblogs.microsoft.com/aspnet/announcing-asp-net-core-in-net-5/
💎 Announcing the Release of EF Core 5.0
https://devblogs.microsoft.com/dotnet/announcing-the-release-of-ef-core-5-0/
💎 Visual Studio 2019 v16.8 and v16.9 Preview 1 Release Today
https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-8/
💎 Windows Terminal Preview 1.5 Release
https://devblogs.microsoft.com/commandline/windows-terminal-preview-1-5-release/
💎 C# 9.0 on the record
https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/
🔰 لیست تغییرات جدید
💎 What's new in .NET 5
https://docs.microsoft.com/en-us/dotnet/core/dotnet-five
💎 What's new in ASP.NET Core 5.0
https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-5.0?view=aspnetcore-5.0
💎 What's New in EF Core 5.0
https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-5.0/whatsnew
🔰 راهنمای مهاجرت و break change ها
💎 Migrate from ASP.NET Core 3.1 to 5.0
https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50
💎 Breaking changes for migration from version 3.1 to 5.0
https://docs.microsoft.com/en-us/dotnet/core/compatibility/3.1-5.0
🔰 ویدئو های رویداد NET Conf.
💎 .NET Conf 2020 - Day 1/3
https://www.youtube.com/watch?v=mS6ykjdOVRg
💎 .NET Conf 2020 - Day 2/3
https://www.youtube.com/watch?v=Uq4qyHi3sYM
💎برای سی شارپ 9.0 هم قبلا وحید نصیری یه آموزش خیلی کامل تهیه کرده که میتونه حسابی کمکتون کنه
https://www.dotnettips.info/learningpaths/details/101
______________
ببینید دوستان حجم مطالب منتشر شده توی رویداد NET Conf. خیلی زیاده. قبلا هم بخشی از تغییرات رو دوستان به فارسی کار کردند و اگه پیگیر اخبار جدید دنیای دات نت تو این کانال یا کانالهای همکار بوده باشین احتمالا اون ها رو دیدن.
الان اما بهترین کار به نظرم اینه که این آخر هفته ایه رو بذارین و این مقالات رو مطالعه کنین، خودمم میخوام همین کارو بکنم.
واسه همین لیست کامل مطالب مهم دات نت 5.0 رو اماده کردم و امیدوارم براتون مفید واقع بشه (لیست رو هم آپدیت نگه اش میدارم)
انشالا اگه خودم یا بقیه دوستان مطلبی اماده کردیم حتما باهاتون به اشتراک میذارم. شاد و پیروز باشین 🌹
🔰 معرفی ها و Release های جدید
💎 Announcing .NET 5.0
https://devblogs.microsoft.com/dotnet/announcing-net-5-0/
💎 Announcing ASP.NET Core in .NET 5
https://devblogs.microsoft.com/aspnet/announcing-asp-net-core-in-net-5/
💎 Announcing the Release of EF Core 5.0
https://devblogs.microsoft.com/dotnet/announcing-the-release-of-ef-core-5-0/
💎 Visual Studio 2019 v16.8 and v16.9 Preview 1 Release Today
https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-8/
💎 Windows Terminal Preview 1.5 Release
https://devblogs.microsoft.com/commandline/windows-terminal-preview-1-5-release/
💎 C# 9.0 on the record
https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/
🔰 لیست تغییرات جدید
💎 What's new in .NET 5
https://docs.microsoft.com/en-us/dotnet/core/dotnet-five
💎 What's new in ASP.NET Core 5.0
https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-5.0?view=aspnetcore-5.0
💎 What's New in EF Core 5.0
https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-5.0/whatsnew
🔰 راهنمای مهاجرت و break change ها
💎 Migrate from ASP.NET Core 3.1 to 5.0
https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50
💎 Breaking changes for migration from version 3.1 to 5.0
https://docs.microsoft.com/en-us/dotnet/core/compatibility/3.1-5.0
🔰 ویدئو های رویداد NET Conf.
💎 .NET Conf 2020 - Day 1/3
https://www.youtube.com/watch?v=mS6ykjdOVRg
💎 .NET Conf 2020 - Day 2/3
https://www.youtube.com/watch?v=Uq4qyHi3sYM
💎برای سی شارپ 9.0 هم قبلا وحید نصیری یه آموزش خیلی کامل تهیه کرده که میتونه حسابی کمکتون کنه
https://www.dotnettips.info/learningpaths/details/101
______________
.NET Blog
Announcing .NET 5.0 - .NET Blog
.NET 5.0 includes many enhancements, including single file applications, more capable JSON APIs, new versions of C