آشنایی با gRPC
در چند سال گذشته استفاده از gRPC در رشد قابل توجهی داشته که نشان میدهد این تکنولوژی توانسته بسیاری از چالش های برقراری ارتباط بین شبکه ای حل کند.
در این ویدیو به معرفی این ابزار می پردازیم و آن را در محیط ASP NET Core پیاده می کنیم.
https://tinyurl.com/cdhk-grpc-intro
در چند سال گذشته استفاده از gRPC در رشد قابل توجهی داشته که نشان میدهد این تکنولوژی توانسته بسیاری از چالش های برقراری ارتباط بین شبکه ای حل کند.
در این ویدیو به معرفی این ابزار می پردازیم و آن را در محیط ASP NET Core پیاده می کنیم.
https://tinyurl.com/cdhk-grpc-intro
Forwarded from کدهک
دیزاین پترنها روشهایی از قبل طراحی شده برای حل مسائل عمومی نرم افزار هستند. در حالی که اهمیت و کاربرد این مفاهیم در برنامه نویسی انکار ناپذیر است اما به نظر میرسد تاکید بیش از حدی روی آن وجود دارد. بر خلاف باور عمومی استفاده از آنها همیشه به سود شما نیست.
https://tinyurl.com/y5xrwer8
https://tinyurl.com/y5xrwer8
آشنایی با LSP
پروتکل Language Server روشی است برای ارتباط بین IDE و زبان برنامه نویسی که توسط مایکروسافت ابداع شده و به صورت متن باز توسعه داده میشود.
هنگام برنامه نویسی درون IDE یا ادیتور مانند VSCode یا Atom لازم است اطلاعاتی درباره کدی که وارد می کنید داشته باشید. مثلا تکمیل شدن دستور یا توضیحات درباره دستور و اینکه چه متدهایی در محدوده ی جاری کد در دسترس است کمک زیادی به تجربه ی بهتر برنامه نویسی می کند.
ابزار LSP یک دستورالعمل برای برقرار کردن گفتگو بین زبان برنامه نویسی و محیط Editor معرفی کرده است که دو طرف می توانند از طریق JSON با هم صحبت کنند.
هر کاراکتری که وارد می کنید از طریق JSON به سرور زبان برنامه نویسی ارسال میشود و اطلاعات آن برگشت داده میشود و در ادیتور نمایش داده میشود.
این سرور توسط افزونه روی IDE نصب میشود و به صورت محلی به درخواستها پاسخ میدهد. به این ترتیب می توان به راحتی یک زبان را در انواع ادیتور و IDE قابل پیاده سازی کرد.
پروژه OmniSharp برای سی شارپ LSP توسعه داده است که در VSCode و VIM و ... استفاده میشود. همچنین سایت Try.dot.net هم از این تکنیک استفاده میکند.
پروتکل Language Server روشی است برای ارتباط بین IDE و زبان برنامه نویسی که توسط مایکروسافت ابداع شده و به صورت متن باز توسعه داده میشود.
هنگام برنامه نویسی درون IDE یا ادیتور مانند VSCode یا Atom لازم است اطلاعاتی درباره کدی که وارد می کنید داشته باشید. مثلا تکمیل شدن دستور یا توضیحات درباره دستور و اینکه چه متدهایی در محدوده ی جاری کد در دسترس است کمک زیادی به تجربه ی بهتر برنامه نویسی می کند.
ابزار LSP یک دستورالعمل برای برقرار کردن گفتگو بین زبان برنامه نویسی و محیط Editor معرفی کرده است که دو طرف می توانند از طریق JSON با هم صحبت کنند.
هر کاراکتری که وارد می کنید از طریق JSON به سرور زبان برنامه نویسی ارسال میشود و اطلاعات آن برگشت داده میشود و در ادیتور نمایش داده میشود.
این سرور توسط افزونه روی IDE نصب میشود و به صورت محلی به درخواستها پاسخ میدهد. به این ترتیب می توان به راحتی یک زبان را در انواع ادیتور و IDE قابل پیاده سازی کرد.
پروژه OmniSharp برای سی شارپ LSP توسعه داده است که در VSCode و VIM و ... استفاده میشود. همچنین سایت Try.dot.net هم از این تکنیک استفاده میکند.
Forwarded from کدهک
اگر در ایران زندگی می کنید و کارمند هستید میزان حقوق دریافتی شما چقدر است؟
Anonymous Poll
43%
کمتر از 5 میلیون تومان
19%
بین 5 تا 10 میلیون تومان
7%
بیشتر از 10 میلیون تومان
30%
دیدن نتایج
استریم کردن دیتابیس از سرور به کلاینت
در این ویدیو با نحوه ی استریم کردن داده از سرور به کلاینت در SignalR آشنا می شویم. قرار است ردیف های یک جدول دیتابیس SQL Server را از استریم کنیم و یک به یک به کلاینت کنسول دات نت منتقل کنیم.
https://codehaks.com/go/sgh
در این ویدیو با نحوه ی استریم کردن داده از سرور به کلاینت در SignalR آشنا می شویم. قرار است ردیف های یک جدول دیتابیس SQL Server را از استریم کنیم و یک به یک به کلاینت کنسول دات نت منتقل کنیم.
https://codehaks.com/go/sgh
Forwarded from کدهک
در این ویدیو با کارکرد IAsyncEnumerable آشنا می شویم. این ابزار در NET Core 3.0 و #C 8.0 اضافه شده است و به شما امکان میدهد داده های Enumerable را به صورت async پردازش کنید. با استفاده از این تکنیک یک فایل متنی را پردازش می کنیم سپس اطلاعات بینکوین را به صورت زنده از سرور به کلاینت استریم می کنیم.
https://tinyurl.com/cdhk-asyncenum
https://tinyurl.com/cdhk-asyncenum
استریم کردن دو طرفه در gRPC
استریم دو طرفه به ما امکان میده داده هایی رو از کلاینت به سرور و از سرور به کلایت به صورت موازی ارسال کنیم.
در این ویدیو قابلیت Bidirectional Streaming رو در gRPC بررسی می کنیم سپس به مقایسه SignalR و gRPC می پردازیم.
https://codehaks.com/go/kjf
استریم دو طرفه به ما امکان میده داده هایی رو از کلاینت به سرور و از سرور به کلایت به صورت موازی ارسال کنیم.
در این ویدیو قابلیت Bidirectional Streaming رو در gRPC بررسی می کنیم سپس به مقایسه SignalR و gRPC می پردازیم.
https://codehaks.com/go/kjf
کتابخانه Rx حدود 10 سال پیش در آزمایشگاه مایکروسافت تهیه شده و حالا به صورت یک کتابخانه متن باز در بسیاری از زبانهای برنامه نویسی برای پیاده سازی الگوی Observer استفاده میشود.
در این ویدیو به معرفی این کتابخانه می پردازیم و یک نمونه ی از کاربردهای آن را مشاهده می کنیم.
https://codehaks.com/go/rxr
در این ویدیو به معرفی این کتابخانه می پردازیم و یک نمونه ی از کاربردهای آن را مشاهده می کنیم.
https://codehaks.com/go/rxr
Forwarded from کدهک
در این ویدیو با استفاده از SignalR قابلیت بروز رسانی Real-time را به یک برنامه ی Blazor اضافه می کنیم.
https://youtu.be/oX-ksIDtqhM
https://youtu.be/oX-ksIDtqhM
الگوی Property Injection در ASP NET Core با AutoFac
استفاده از الگوی Property Injection چندان توصیه نمیشود اما گاهی لازم است از آن استفاده کنید. در IoC Container پیش فرض ASP NET Core امکان Property Injection وجود ندارد. در این ویدیو سیستم تزریق وابستگی پیش فرض ASP NET Core را با AutoFac جایگزین می کنیم سپس الگوی Property Injection راپیاده میکنیم.
https://codehaks.com/go/LRK
استفاده از الگوی Property Injection چندان توصیه نمیشود اما گاهی لازم است از آن استفاده کنید. در IoC Container پیش فرض ASP NET Core امکان Property Injection وجود ندارد. در این ویدیو سیستم تزریق وابستگی پیش فرض ASP NET Core را با AutoFac جایگزین می کنیم سپس الگوی Property Injection راپیاده میکنیم.
https://codehaks.com/go/LRK
فروش ویژه آخر سال با 50 درصد تخفیف
از امروز می توانید برای مدت محدود همه ی دوره های آموزشی کدهک را با 50 درصد تخفیف تهیه کنید.
علاوه بر درگاه بانکی امکان خرید به صورت کارت به کارت وجود دارد. می توانید با @codehak تماس بگیرید.
کد تخفیف : eid99
آدرس فروشگاه :
https://codehaks.com/shop
همچنین کلیه دوستانی که قبلا اشتراک ویژه تهیه کردن اشتراک آنها به مدت یک سال تمدید شده است. لینک دانلود قسمتهای جدید از طریق سایت قابل دریافت است.
از امروز می توانید برای مدت محدود همه ی دوره های آموزشی کدهک را با 50 درصد تخفیف تهیه کنید.
علاوه بر درگاه بانکی امکان خرید به صورت کارت به کارت وجود دارد. می توانید با @codehak تماس بگیرید.
کد تخفیف : eid99
آدرس فروشگاه :
https://codehaks.com/shop
همچنین کلیه دوستانی که قبلا اشتراک ویژه تهیه کردن اشتراک آنها به مدت یک سال تمدید شده است. لینک دانلود قسمتهای جدید از طریق سایت قابل دریافت است.
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
❇️ اگه هنوز براتون سواله که 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 گزینه مناسبیه
___________________
@DotNetZoom
اگه نمیدونین تئوری 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 گزینه مناسبیه
___________________
@DotNetZoom
آشنایی با کتابخانه vue.js و نحوه ی استفاده از آن در ASP NET Core
در این ویدیو به textarea شمارنده ی کاراکتر اضافه می کنیم با vue devtools و افزونه vue در ویژوال استودیو آشنا می شویم.
https://codehaks.com/go/vue
در این ویدیو به textarea شمارنده ی کاراکتر اضافه می کنیم با vue devtools و افزونه vue در ویژوال استودیو آشنا می شویم.
https://codehaks.com/go/vue
از امروز میتوانید دوره آموزشی Domain Driven Design را با 50 درصد تخفیف از سایت کدهک تهیه کنید.
در این دوره الگوهای مختلف معماری در پروژه های بزرگ و پیچیده آموزش داده میشود.
مدت دوره : 707 دقیقه
سطح دوره: پیشرفته
کد تخفیف : eid99
https://codehaks.com/go/ddd
در این دوره الگوهای مختلف معماری در پروژه های بزرگ و پیچیده آموزش داده میشود.
مدت دوره : 707 دقیقه
سطح دوره: پیشرفته
کد تخفیف : eid99
https://codehaks.com/go/ddd
گیتهاب صاحب NPM میشود.
آقای Nate Friedman مدیرعامل GitHub در پست وبلاگی خود خبر داد که توافق نامه ای با NPM جهت خریداری آن به امضا رسیده است.
به این ترتیب حالا مایکروسافت صاحب بزرگترین سرویس دهنده ی جاوا اسکریپت می شود که در فریم ورکهایی مانند Nodejs بسیار مورد استفاده قرار میگیرد.
طبق اعلام گیتهاب سرویس NPM همچنان رایگان و بدون محدودیت باقی خواهد ماند.
https://codehaks.com/go/npm
آقای Nate Friedman مدیرعامل GitHub در پست وبلاگی خود خبر داد که توافق نامه ای با NPM جهت خریداری آن به امضا رسیده است.
به این ترتیب حالا مایکروسافت صاحب بزرگترین سرویس دهنده ی جاوا اسکریپت می شود که در فریم ورکهایی مانند Nodejs بسیار مورد استفاده قرار میگیرد.
طبق اعلام گیتهاب سرویس NPM همچنان رایگان و بدون محدودیت باقی خواهد ماند.
https://codehaks.com/go/npm
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
❇️ منتشر شد ASP.NET Core 5.0 preview 1 🎉🎉✌️
https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-preview-1/
❇️ منتشر شد Entity Framework Core 5.0 preview 1
https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-5-0-preview-1/
❇️ منتشر شد NET 5.0 preview 1.
https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-1/
❇️ منتشر شد NET Core 3.1.200 SDK.
https://github.com/dotnet/core/blob/master/release-notes/3.1/3.1.2/3.1.200-sdk.md
🔸امروز برای برنامه نویسای دات نت یه جورایی عید محسوب میشد چرا که تیم دات نت خبرای داغی منتشر کرد.
🔹به شخصه که خیلی خوشحالم از این اتفاق و این قطعا آغازی برای یه حرکت بزرگ و امیدوارانه برای آینده دات نت و ما دات نت کار ها هست.
🔸مهمترین این انتشار ها مربوط به EF Core 5.0 هست چون کلی بهبود و امکان جدید معرفی کرده که انشالا به زودی در موردش پست میذارم
🔹نکته : برای اینکه از این نسخه جدید استفاده توی ویژوال استودیو 2019 استفاده کنین باید آخرین نسخه پیش نمایش v16.6 رو نصب داشته باشین ولی اگه از Rider یا VSCode استفاده میکنین نیازی نیست
________________
@DotNetZoom
https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-preview-1/
❇️ منتشر شد Entity Framework Core 5.0 preview 1
https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-5-0-preview-1/
❇️ منتشر شد NET 5.0 preview 1.
https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-1/
❇️ منتشر شد NET Core 3.1.200 SDK.
https://github.com/dotnet/core/blob/master/release-notes/3.1/3.1.2/3.1.200-sdk.md
🔸امروز برای برنامه نویسای دات نت یه جورایی عید محسوب میشد چرا که تیم دات نت خبرای داغی منتشر کرد.
🔹به شخصه که خیلی خوشحالم از این اتفاق و این قطعا آغازی برای یه حرکت بزرگ و امیدوارانه برای آینده دات نت و ما دات نت کار ها هست.
🔸مهمترین این انتشار ها مربوط به EF Core 5.0 هست چون کلی بهبود و امکان جدید معرفی کرده که انشالا به زودی در موردش پست میذارم
🔹نکته : برای اینکه از این نسخه جدید استفاده توی ویژوال استودیو 2019 استفاده کنین باید آخرین نسخه پیش نمایش v16.6 رو نصب داشته باشین ولی اگه از Rider یا VSCode استفاده میکنین نیازی نیست
________________
@DotNetZoom
Microsoft News
ASP.NET Core updates in .NET 5 Preview 1
ASP.NET Core updates in .NET 5 Preview 1
آخرین فرصت فروش ویژه آخر سال با 50 درصد تخفیف
از امروز می توانید برای مدت محدود همه ی دوره های آموزشی کدهک را با 50 درصد تخفیف تهیه کنید.
علاوه بر درگاه بانکی امکان خرید به صورت کارت به کارت وجود دارد. می توانید با @codehak تماس بگیرید.
کد تخفیف : eid99
آدرس فروشگاه :
https://codehaks.com/shop
از امروز می توانید برای مدت محدود همه ی دوره های آموزشی کدهک را با 50 درصد تخفیف تهیه کنید.
علاوه بر درگاه بانکی امکان خرید به صورت کارت به کارت وجود دارد. می توانید با @codehak تماس بگیرید.
کد تخفیف : eid99
آدرس فروشگاه :
https://codehaks.com/shop