کدهک
1.93K subscribers
1.3K photos
7 videos
1 file
675 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
Forwarded from کدهک
تخفیف 50 درصدی ویژه

به مناسبت ولادت با سعادت رسول اکرم (ص) می توانید همه دوره های آموزشی کدهک را با تخفیف 50 درصد تهیه کنید.

کد تخفیف : rasul

https://codehaks.com/shop
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
❇️ کتابخانه ای جهت پیاده سازی 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
__________________
@DotNetZoom
در این ویدیو به بررسی داکیومنت های مختلف چند کتابخانه و فریم ورک می پردازم و به این سوال پاسخ میدم که چرا به طور کلی داکیومنت ابزار مناسبی برای یاد گرفتن برنامه نویسی نیست.

https://codehaks.com/go/docs
Forwarded from کدهک
ایرادهای زیادی از بنچمارک تک امپاور گرفته میشود. در این ویدیو به این ایرادات پاسخ میدهیم و بررسی می کنیم چرا تست هایی مثل Plaintext باعث بالارفتن پرفورمنس وب شده است. درباره اسب بخار صحبت می کنیم و میگوییم چرا زبانهایی مثل Erlang یا Nodejs در ابتدای لیست قرار ندارند.

https://codehaks.com/go/tec
آموزش ایجاد تگ هلپر اختصاصی در ASP NET Core

در این دوره کوتاه و رایگان یک تگ هلپر برای نمایش راحت تر Alert های بوت استریپ ایجاد می کنیم.

https://codehaks.com/go/ftz
رویداد NET Conf تا کمتر از 24 ساعت دیگر برگزار میشود.

قرار است در این رویداد نسخه نهایی دات نت 5 به همراه EF Core 5.0 عرضه شود.

این رویداد به مدت سه روز برگزار میشود و به معرفی آخرین قابلیت های Visual Studio و دات نت ، زبان سی شارپ و ... می پردازد.

https://www.dotnetconf.net
در این ویدوی به معرفی قابلیت Nullable Reference Types در سی شارپ 8 می پردازیم و اثر استفاده از آن را در یک پروژه ASP NET Core بررسی می کنیم. همچنین با چند Syntax جدید در سی شارپ 9 آشنا می شویم.


https://youtu.be/3rYCPlN227k
نسخه نهایی NET 5.0 منتشر شد

نسخه پنجم NET Core با هدف یکپارچه کردن محیط های مختلف توسعه نرم افزار در دات نت تهیه شده است.

این نسخه در ادامه نسخه 3 منتشر شده است اما دیگر عبارت Core را یدک نمیکشد. از شماره گذاری 4 استفاده نشده چون با نسخه های قدیمی تر دات نت (پیش از Core) تداخل ایجاد میکرد.

به همراه ویرایش پنجم دات نت زبان سی شارپ نسخه 9 و اف شارپ نسخه 5 نیز منتشر شده است.
دات نت از نگاه آمار

حضور فعال 2 میلیون توسعه دهنده NET Core
محبوب ترین فریم ورک Stackoverflow
جزو 30 پروژه برتر متن باز در GitHub
سی شارپ جزو 5 زبان برتر GitHub
سریعرین فریم ورک در بنچمارک Techempower
دانشجویان و دانش آموزان 40 درصد توسعه دهندگان جدید را تشکیل می دهند.

5 میلیون توسعه دهنده دات نت
200 هزار نفر از توسعه دهندگان دسکتاپ به Core مهاجرت کرده اند
در ماه سپتامبر 230 هزار نفر برای اولین بار از NET Core استفاده کرده اند.
هر ماه 2 میلیون پابلیش از NET Core با هدف Linux انجام میشود.
وضعیت جاری دات نت

نسخه 4.8 فقط باگ فیکس خواهد داشت و دیگر قابلیت جدید به آن اضافه نمیشود. این نسخه برای سالهای آینده همچنان پشتیبانی میشود.

نسخه نهایی 5.0 امروز منتشر شد. این نسخه پشتبانی موقت(یک ساله) داره و بعد از ارائه نسخه 6 دیگر پشتیبانی نخواهد شد. نسخه 6 پشتیبانی بلند مدت (LTS) خواهد داشت.

قرار بود Mono/Xamarin در نسخه 5.0 یکپارچه سازی شود ولی با توجه به کرنا انتقال آن ممکن نشده و به نسخه 6.0 دات نت موکول شده است.

قرار نیست Web Formو Workflowو WCF به دات نت جدید منتقل شوند.
آیا یک توسعه دهنده باید عناوینی مثل Senior یا Junior را در رزومه یا پروفایلش درج کند؟
Anonymous Poll
39%
بله
61%
خیر
خیدو فان روسوم خالق زبان برنامه نویسی پایتون به مایکروسافت پیوست.

فن روسوم 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.
Forwarded from کدهک
در این ویدیو درباره HttpClient و اینترفیس IHttpClientFactory صحبت می کنیم ، یک برنامه ی مونیتور پورت TCP میسازیم و به این سوال پاسخ میدیم که چرا باید از HttpClientFactory استفاده کنید.

https://codehaks.com/go/tuw
در این ویدیو با نحوه کار Computed Columns در SQL Server آشنا میشویم و روش پیاده سازی آن را در EF Core 5.0 بررسی می کنیم.


https://youtu.be/lJwl4kSEX8Q
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
❇️ بلوغ System.Text.Json در دات نت 5.0

کتابخانه Json Serializer داخلی دات نت تحت عنوان System.Text.Json در NET Core 3.0 معرفی شد و به منظور پرفرمنس و یکپارچگی بیشتر، به عنوان سریالایزر پیشفرض ASP.NET Core 3.0 قرار گرفت و نیز برای استفاده از Json.NET که تا قبل از اون، سریالایزر پیشفرض ASP.NET Core بود، یک پکیج جداگانه اضافه شد تا بشه اون رو توی ASP.NET Core تنظیمش کرد.

🔸کتابخونه System.Text.Json اما، یک سری نواقص و مشکلات اساسی داشت که باعث میشد خیلی برای استفاده در محیط Production مناسب نباشه مثلا:

1️⃣ اگه 2تا شی داشته باشین که به هم دیگه دارن رفرنس میدن، موقع سریالایز با خطا مواجه میشدین (که اصطلاحا بهش Reference Loop یا Circular References میگن)
این یک امکان مهم و اساسی لازم برای سریالایز ها هست و متاسفانه نه تنها پشتیبانی نمیکرد بلکه راه حل workaround ایی هم نداشت!

2️⃣ مشکل بعدی اینکه مثلا اگه شما یه پروپرتی عددی به نام Age داشته باشین و سمت کلاینت مقدار json اش رو به صورت رشته ای (string) ارسال کنین به سرور (دقت کنید مقدار عددی داخل "" (Quote) محصور شده.)
{
Age: "27"
}
تا قبل از این با Exception مواجه میشدین چرا که به صورت پیشفرض مقادیر عددی رو فقط میتونست به صورت عددی Serialize و Deserialize کنه. یعنی به این صورت
{
Age: 27
}
البته این مشکل، راه حل workaround داشت که اینجا میتونین ببینین ولی به صورت پیشفرض این امکان رو نداشت

3️⃣ مشکل بعدی اینکه اگه کلاس شما سازنده پیشفرض یا بدون پارامتر نداشت موقع Deserialize به خطا میخوردین؛ همچنین از Field ها و non-public Property ها هم پشتیبانی نمیکرد.

🔸خوشبختانه اما، در دات نت 5.0 تمامی این مشکل ها برطرف شده و به سطحی از پختگی و بلوغ رسیده که بشه بدون نگرانی ازش استفاده کرد. همچنین کلی بهبود پرفرمنسی و تعدادی فیچر جدید هم اضافه کرده از جمله:

لیست بهبود ها و فیچر های جدید

✔️ بهبود پرفرمنسی 2.4 برابری در Serialize و 1.5 برابری در Deserialize (بنچمارک ها اینجا و اینجا)

✔️ برطرف شدن مشکل ReferenceLoopHandling (یا همون Circular References) به واسطه اضافه شدن تنظیم جدید ReferenceHandler.Preserve (مشابه PreserveReferencesHandling.Ignore در Json.Net) (نمونه مثال)

✔️ اضافه شدن پشتیبانی از Serialize و Deserialize مقادیر عددی به صورت string ایی توسط تنظیم جدید NumberHandling

✔️ پشتیبانی از Serialize و Desersialize مقادیر Field ها و non-public Properties توسط تنظیم جدید IncludeFields (نمونه مثال)

✔️ پشتیبانی از Serialize و Desersialize نوع record معرفی شده در سی شارپ 9.0 (نمونه مثال)

✔️ پشتیبانی از immutable struct و اضافه شدن اتریبیوت [JsonConstructor] برای مشخص کردن سازنده پیشفرض جهت نمونه سازی به هنگام Deserializing (نمونه مثال)

✔️ بهبود پشتیبانی از نوع Dictionary<K,V> l برای کلید های غیر string ایی (نمونه مثال)


🔰اطلاعات بیشتر
اگر دنبال مقاله فارسی هستین برای System.Text.Json که اکثر موارد مهم رو پوشش داده باشه، این مقاله رو پیشنهاد میکنم
و نهایتا اگه میخواین به زیر و بم System.Text.Json مسلط بشین بدون شک این 2تا لینک بهترین هستند
داکیومنت مهاجرت از Newtonsoft.Json به System.Text.Json
داکیومنت کامل استفاده از System.Text.Json
_______________
@DotNetZoom
ایجاد تم برای Bootstrap در ویژوال استودیو

گاهی نیاز دارید استایل بوت استرپ را تغییر دهید. استفاده از فایل های SASS و ابزاری مثل Web Compiler اینکار را بسیار ساده می کند.

https://youtu.be/OmjiBCOhr0o
پوش کردن سریع در ویژوال استودیو

https://youtu.be/TF13_X4GTH8
Forwarded from کدهک
در این ویدیو یک Select با جستجوی افزایشی از طریق AJAX پیاده می کنیم که اطلاعات بیش از 4 میلیون ردیف را فیلتر میکند و سپس پرفورمنس SQL و Redis را مقایسه می کنیم.

https://codehaks.com/go/rds
لوگ کردن رویدادها در EF Core 5.0

https://youtu.be/Oe4qN43mk90
Forwarded from کدهک
استریم کردن فایل و نمایش درصد پیشرفت در gRPC

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

https://codehaks.com/go/nbx