کدهک
1.95K subscribers
1.29K photos
7 videos
1 file
672 links
آموزشگاه تخصصی دات نت

https://codehaks.com

لینکدین :
https://www.linkedin.com/in/codehaks

یوتیوب:
https://www.youtube.com/@codehaksfa

ارتباط با مدیر :
Admin: @codehak
Email: ghods.hakim@hotmail.com
call: 09380146555
Download Telegram
کدهک

بعد از دو سال فعالیت امروز ویدیوی شماره 200 در آپارات کدهک آپلود شد.

ویدیوهای کدهک در آپارات تا به امروز بیش از 135000 بار بازدید شده است.
Forwarded from کدهک
در این ویدیو با استفاده از SignalR قابلیت بروز رسانی Real-time را به یک برنامه ی Blazor اضافه می کنیم.

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
فروش ویژه آخر سال با 50 درصد تخفیف

از امروز می توانید برای مدت محدود همه ی دوره های آموزشی کدهک را با 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
آشنایی با کتابخانه vue.js و نحوه ی استفاده از آن در ASP NET Core

در این ویدیو به textarea شمارنده ی کاراکتر اضافه می کنیم با vue devtools و افزونه vue در ویژوال استودیو آشنا می شویم.

https://codehaks.com/go/vue
از امروز میتوانید دوره آموزشی Domain Driven Design را با 50 درصد تخفیف از سایت کدهک تهیه کنید.

در این دوره الگوهای مختلف معماری در پروژه های بزرگ و پیچیده آموزش داده میشود.

مدت دوره : 707 دقیقه
سطح دوره: پیشرفته

کد تخفیف : eid99

https://codehaks.com/go/ddd
گیتهاب صاحب 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
آخرین فرصت فروش ویژه آخر سال با 50 درصد تخفیف

از امروز می توانید برای مدت محدود همه ی دوره های آموزشی کدهک را با 50 درصد تخفیف تهیه کنید.

علاوه بر درگاه بانکی امکان خرید به صورت کارت به کارت وجود دارد. می توانید با @codehak تماس بگیرید.



کد تخفیف : eid99

آدرس فروشگاه :

https://codehaks.com/shop
نگاهی دوباره به Razor Pages

در این ویدیو به بررسی قابلیت Razor Pages در ASP NET Core می پردازیم و آن را با روش قدیمی MVC مقایسه می کنیم. در انتها به این سوال پاسخ میدیم که چرا باید برای پروژه های جدید از این ابزار استفاده کنید.


https://codehaks.com/go/rpg
Forwarded from برنامه نویس
🔈🤑 تخفیف 35% کلیه پکیج های آموزش ویدئویی برنامه نویس تا پایان تعطیلات نوروز + کاهش قیمت پایه پکیج ها

کد تخفیف: Nowruz99
تاریخ انقضای کد تخفیف فوق: 13 فروردین 99، ساعت 12 شب

لازم به ذکر است قیمت پکیج های آموزشی نیز جهت رفاه حال شما عزیزان کاهش یافته است، بدین صورت که پس از اعمال کد تخفیف فوق، قیمت هر یک از پکیج های ASP.NET MVC و ASP.NET Core و Angular 8 مبلغ 97.500 تومان، قیمت پکیج سی شارپ سطح 1 مبلغ 65.000 تومان، و پکیج های آموزش مفاهیم وب مبلغ 32.500 تومان خواهد بود.

همچنین، آموزش های ارائه شده در پکیج های آموزش ASP.NET Core، بدون هیچ تغییری در ASP.NET Core 3.1 نیز قابل استفاده است.

با تقدیم احترام
#مهدی_کرامتی
@barnamenevis_net
@barnamenevis_org
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
This media is not supported in your browser
VIEW IN TELEGRAM
❇️ کدنویسی سریع تر و راحت تر در Visual Studio با این ترفند

🔶 توسط این قابلیت دیگه لازم نیس namespace مورد نظر رو اضافه کنین بلکه فقط کدتون رو بنویسید و خودش هم توی IntelliSense کلاس مورد نظر رو براتون میاره و هم اینکه خودش namespace لازم رو using میکنه (شبیه Resharper)

🔷 این قابلیت از قبل به Visual Studio 2019 اضافه شده ولی هنوز به صورت Experimental (آزمایشی) هست و به صورت پیشفرض فعال نیست

🔰 واسه فعال کردنش باید برین توی منوی Tools سپس گزینه Options رو انتخاب کنین و از قسمت زیر (یا سرچ کردن متن IntelliSense توی سرچ باکس)
▶️ TextEditor > C# > IntelliSense
و گزینه زیر رو "تیک کامل" بزنین.
Show items for unimported namespaces (experimental)
___________________
@DotNetZoom
استفاده از await در Task

چرا بهتر است در Task های دات نت از کلمه ی کلیدی await استفاده کنیم؟ در این ویدیو نگاهی به مکانیزم های async/await در دات نت می اندازیم و درباره ی کدهای ساخته شده در پس زمینه صحبت می کنیم.

https://codehaks.com/go/lxt
کار با ajax در Razor Pages

در Razor Page هدف نهایی نمایش View است که شامل محتوای HTML باشد. اما گاهی نیاز داریم داده های JSON یا فایل استفاده کنیم. در این ویدیو نحوه ی بارگذاری اطلاعات JSON در Razor Page از طریق AJAX آموزش داده میشود.

https://codehaks.com/go/ajx
استریم کردن فایل و نمایش درصد پیشرفت در gRPC

در این ویدیو یک فایل را به روش Streaming از کلاینت به سرور آپلود می کنیم و میزان پیشرفت آپلود را در هر مرحله بدست می آوریم.

https://codehaks.com/go/nbx
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
❇️ فعال سازی سطح دوم کش روی EF Core توسط EFCoreSecondLevelCacheInterceptor

قبلا کتابخانه EFSecondLevelCache.Core رو معرفی کرده بودیم
توسط این کتابخانه میتونین کش سطح دوم (second level caching) رو روی EF Core فعال کنین. در واقع میتونین نتیجه کوئری هاتون رو کش کنین تا دفعه بعد، به جای دیتابیس، از کش خونده بشه.
این کتابخانه توسط وحید نصیری عزیز، مدیر سایت dotnettips.info نوشته شده است.

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

🔰مزیت این کتابخونه نسبت به قبلی اینه که :
🔹کار باهاش ساده تره
🔸به دلیل استفاده از Interceptor پرفرمنس بالاتری داره
🔹یه سری از باگ ها و محدودیت هایی که قبلی داشت رو دیگه نداره
🔸و وابستگی به کتابخونه شخص ثالث برای Caching نداره و از Abstract های خود دات نت استفاده میکنه

🔰 نکته :
✔️اکیدا پیشنهاد میکنم اگه از قبلی استفاده میکردین، به پکیج جدید مهاجرت کنین (ضمن اینکه کتابخانه قلبی Archive شده و دیگر توسعه داده نمشه)
✔️کشینگ همیشه ازش به عنوان یه شمشیر "دو لبه" یاد میشه که اگه با علم کافی و به جا ازش استفاده نکنین و حواستون به Invalidate کردن ایتم های کش شده نباشه، سیستم رو دچاره مشکل میکنه
خوبی این کتابخونه اینه که بحث Invalidate کردن رو به صورت خودکار انجام میده و دیگه نگرانیی بابت اون نخواهید داشت، پس افرادی که توی این مبحث واقعا بزرگ (Caching) حرفه ای هم نیستن راحت تر میتونن تو پروژه هاشون ازش استفاده کنن

https://github.com/VahidN/EFCoreSecondLevelCacheInterceptor
___________________
@DotNetZoom
Forwarded from کدهک
آشنایی با الگوریتم Hi/Lo

معمولا کلید اصلی توسط دیتابیس ساخته میشود اما برای بدست آوردن آن اطلاعات رکورد ابتدا باید در دیتابیس ذخیره شود.

گاهی لازم است پیش از ذخیره سازی کلید اصلی در دسترس باشد در این موارد می توان از الگوریتم Hi/Lo استفاده کرد.

https://cutt.ly/4rwlwyq
کنترل عمر اپلیکیشن در ASP NET Core

در ASP NET Core می توان اپ را با استفاده از کد درون برنامه متوقف کرد و همچنین قبل از بسته شدن برنامه عملیات انجام داد. در این ویدیو اینترفیس IHostApplicationLifetime را بررسی می کنیم.

https://codehaks.com/go/apl
نمایش Spinner هنگام بارگذاری AJAX

خوب است هنگامی که دریافت اطلاعات از سرور طولانی میشود با نمایش یک اسپینر یا لودر کاربر را از اجرای عملیات در پس زمینه با خبر کنیم. در این ویدیو به آموزش پیاده سازی Spinner هنگام بارگذاری اطلاعات AJAX در ASP NET Core می پردازیم.

https://codehaks.com/go/spn