کدهک
1.95K subscribers
1.29K photos
7 videos
1 file
673 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
در این ویدیو با نحوه کار 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
Forwarded from اِسکیلی Skilly
🔈🤑 تخفیف 40% کلیه پکیج های آموزش ویدئویی برنامه نویس - ویژه جمعه سیاه

کد تخفیف: BlackFriday99
تاریخ انقضای کد تخفیف فوق: جمعه، 7 آذر 99، ساعت 12 شب

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

با تقدیم احترام
#مهدی_کرامتی
#تخفیف
@barnamenevis_net
@barnamenevis_org
استفاده از dotnet watch در ویژوال استودیو

https://youtu.be/zNtHPdABDQI
Forwarded from کدهک
هنگام روی دادن خطا می توان صفحات مشخصی را به کاربر نمایش داد و او را از وضعیت پیش آمده با خبر کرد. در این ویدیو یک صفحه ی کاستوم برای خطای 404 ایجاد می کنیم و با نحوه ی تنظیم محیط پروژه جهت تست حالت Production آشنا می شویم.

https://codehaks.com/go/jnj
آموزش پیاده سازی Typed Client در ASP NET Core
https://youtu.be/ivbsY_6Rvac
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
سلام دوستان

دوست خوبم @ysmoradi قصد داره به کمک جمعی از دوستان با تجربه، و بر اساس طراحی های استاندارد ارائه شده مثل Fluent و Material و ...
یک سری کامپوننت متداول مانند Combo Box و File Uploader و Grid و DateTime Picker و ... رو برای Blazor ایجاد کنه

این پروژه اوپن سورس هست و روی گیتهاب قرار میگیره (پس میتونه اکتیویتی خوبی تو گیتهاب براتون ایجاد کنه) و البته که پرداختی هم داره
برای همکاری تو این پروژه شرایط زیر لازمه:

۱- قبلا تجربه کامپوننت نویسی توی وب داشته باشه فرد، البته طبیعتا الزامی به این که با Blazor باشه نیست، با انگولار و... هم کاملا قبوله

۲- کار به صورت ریموت هست و مستندات، طراحی ها و... روی GitHub شکل می‌گیرن با زبان انگلیسی و افراد توانایی کار این مدلی رو داشته باشن

۳- تمام وقت که نه، ولی یه تایم معقول و مشخصی در هفته باید تایم آزاد باشه که کار پیش بره

برای اعلام آمادگی یا گفتگو در این رابطه به یاسر مرادی (@ysmoradi) پیام بدین
آشنایی با Project Tye

https://youtu.be/PECLYxbPblQ
Forwarded from اِسکیلی Skilly
🔈 🎓 آماده شدن سطح 2 پکیج آموزش سی شارپ

به اطلاع کلیه علاقه مندان یادگیری کامل زبان سی شارپ می رسانیم، آموزش سی شارپ سطح 2، شامل مفاهیم پیشرفته سی شارپ آماده شده است.

مطالب این دوره بر اساس آخرین ورژن منتشر شده از سی شارپ تا کنون طراحی شده است.

🤑 تا ساعت 24:00 روز سه شنبه، 25 آذرماه 99 با استفاده از کد تخفیف CS2 می توانید پکیج فوق را با 25% تخفیف تهیه کنید. هزینه خرید پکیج فوق در حالت عادی 200.000 تومان است، اما با کد تخفیف فوق می توانید آن را با 150.000 تومان تهیه کنید.

همچنین از کد تخفیف فوق برای خرید بقیه پکیج های ارائه شده بر روی سایت نیز با همان میزان تخفیف می توانید استفاده کنید.

برخی از مطالب تدریس شده در این پکیج آموزشی عبارتند از:

• آشنایی عمقی با کلاس ها و اجزای آنها

• کلمه کلیدی Static و کاربردهای مختلف آن

• بررسی کامل Property ها و روش های مختلف کپسوله سازی

• آشنایی با مفاهیم ارث بری

• آشنایی با پلی مرفیسم (Polymorphysm) و مفاهیم مرتب با آن

• ایجاد و استفاده از Interface ها

• بررسی کالکشن های پرکاربرد Generic

• ایجاد متدها، کلاس ها و ساختارهای Generic سفارشی

جزئیات کامل سرفصل های تدریس شده در این پکیج آموزشی را می توانید در صفحه مربوط به آن، در بخش سرفصل ها مشاهده کنید:
لینک صفحه ویژه دوره سطح 2 سی شارپ

@barnamenevis_org
@barnamenevis_net
Forwarded from کدهک
آموزش ایجاد Global Tools در دات نت

یک Global Tool در اصل یک برنامه کنسول است که میتوانید آن را از هر جایی در سیستم اجرا کنید. این ابزار شباهت زیادی به پکیج های گلوبال در NPM دارند و می توانید برای پیاده سازی ابزارهای برنامه نویسی و کارهای عمومی از آنها استفاده کنید.

https://codehaks.com/go/glb
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
رایگان کردن مقالات سایت Medium با افزونه Medium Unlimited

مقالات خوبی تو سایت مدیوم وجود داره ولی بعضا این رایگان نبودن و قفل شدن مقالاتش رو مخه
هرچند که میشه با یه پنجره Incognito تو کروم (یا InPrivate تو مرورگر Edge) اون رو باز کرد و به رایگان استفاده کرد ولی بازم رو مخه

خلاصه اینکه اگه این قضیه رو مخ شما هم هست، راه حلش خیلی سادس؛ استفاده از فزونه Medium Unlimited
این افزونه به مدت نامحدود، مقالات سایت مدیوم رو واستون رایگان میکنه.

🔹برای مروگر FireFox میتونین توسط این لینک نصبش کنین

🔸ولی برای مروگر های Chrome و Edge جدید (که بر پایه موتور کروم هست) از طریق Web Store کروم قابل نصب نیست و باید دستی نصبش کنین.
برای این کار ابتدا:
1-فایل افزونه رو از مخزن گیتهاب پروژه دانلود کنید و فایل zip اش رو تو یه مسیری extract کنین
2- از قسمت منو گزینه Extensions رو انتخاب کنین و سپس توی صفحه ای که میاد، تیک گزینه Developer Mode رو فعال کنین
3- روی دکمه Load Unpacked کلیک کنین و مسیر پوشه افزونه که قبلا extract کردین رو بهش بدین
4- تمام، لذتشو ببرین

🔰ریپازیتوری پروژه:
https://github.com/manojVivek/medium-unlimited
____________________
@DotNetZoom
Forwarded from کدهک
با استفاده از تگ هلپر Cache می توانید محتوای صفحات وب را در حافظه کش ذخیره کنید.

https://codehaks.com/go/xrt
آشنایی با Dapper و مقایسه آن با EF Core

https://youtu.be/U7Z7qKn_gkM
نصب سرور مجازی لینوکس در ویندوز

https://youtu.be/bPrj3BlY0iE
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
پیاده‌سازی Logging حرفه ای در ASP .NET Core توسط Serilog و ElasticSearch و Kibana

معمولا در معماری میکروسرویس ها، مانیتور کردن و ثبت لاگ های هر میکرو سرویس یک چالش بزرگ محسوب میشه. اینکه ممکنه هر میکروسرویس لاگ مربوط به خودش رو نتونه ثبت کنه و یا خطای مربوط به یک ریکوئست چند میکروسرویس دخیلش باشن و نشه سورس خطا رو پیدا کرد. و در صورت ثبت لاگ ها، چگونه بتونیم از اون ها گزارش بگیریم و یا در صورت نیاز نمودار و چارت براشون درست کنیم.

نوشتن چنین سیستمی چالش های خاص خودش رو داره و موارد بسیار زیادی هست که باید براشون درنظر گرفت مثل ثبت لاگ ها و index کردن اون ها،فیلتر کردن لاگ ها بر حسب سطح یا زمان، قابلیت جستجو بین رکورد های مختلف و همچنین ردیابی یک لاگ که ممکنه چند میکروسرویس در ایجاد اون دخیل باشن
خوشبختانه برای اینکار ابزار های بسیار خوبی وجود داره که کار ما رو به عنوان برنامه نویس بسیار آسون میکنه

یکی از این ابزارهاElasticSearch هست که کار رو برای پیاده سازی Centerlized Logging بسیار آسون میکنه چون در کنار اون میشه از Kibana هم به عنوان داشبورد استفاده کرد که برای فیلتر کردن لاگ ها و همچنین Formatting مناسب لاگ ها ابزار های خیلی خوبی رو در اختیارمون میذاره.

همچنین Trace کردن لاگ ها با استفاده از یک TraceId کاستوم بسیار ساده تر میشه که خود Asp Net Core Logger این امکانات رو به صورت پیش فرض در اختیارمون قرار میده.

در این مقاله به بررسی و پیاده سازی چنین سیستمی در Asp Net Core میپردازیم. همچنین با نصب و تنظیمات ElasticSearch و Kibana در محیط ويندوز و داکر آشنا میشیم

🔰لینک مقاله:
https://vrgl.ir/pcnWp
#بابک_طارمی
________________
@DotNetZoom
نصب رابط گرافیکی روی سرور لینوکس سرور Ubuntu

https://youtu.be/GW2pE7zxuAk