کدهک
1.97K subscribers
1.29K photos
7 videos
1 file
671 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
آشنایی با xUnit و نحوه پیاده سازی تست واحد در دات نت

https://tinyurl.com/cdhks-xunt
Forwarded from DotNetZoom (Ali)
🔰 #آیا_میدانستید
توی کنسول مروگر میتونین با دستور console.table، آرایه ها و لیست ها تون رو به صورت جدولی نشون بدین؟

var exampleArray = [
"First item in the array",
"I'm the second item in this array",
"Obviously i'm the last item"
];
console.table(exampleArray);

مثال های بیشتر:
https://www.telerik.com/blogs/better-visualization-of-console-data-with-tables
__________
@DotNetZoom
Forwarded from کدهک
منظور از Availability در یک سیستم در دسترس بودن آن است.

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

وقتی یک سیستم پیچیده میشود و اجزای زیادی دارد رفع باگ و بروز رسانی آن کند صورت میگیرد. بدهی فنی در این سیستم زیاد است و در نهایت دیر یا زود به مشکل برخورد میکند.

تعداد 9 ها یا The Nines اصطلاحی است که جهت نشان دادن درصد دسترسی به یک سیستم استفاده میشود.

برای بدست آوردن تعداد 9 های یک سیستم ابتدا باید با پیاده سازی سیستم مونیتورینگ مناسب میزان Down-Time را اندازه گرفت و با تقسیم آن در بازه زمانی درصد Availability را بدست آورد.

بسته به اینکه چه سرویسی ارائه می کنید میزان دسترسی مورد نیاز تغییر میکند.

سرویس شما به چه میزان Availability نیاز دارد؟
تعداد 9 های سرویس شما چندتاست؟
Forwarded from کدهک
با استفاده از اینترفیس IActionResult میتوان در ASP NET Core نوع بازگشتی اختصاصی ایجاد کرد. در این ویدیو می بنیم که چطور یک کاکشن را به صورت فایل CSV در خروجی اکشن تولید کنیم.

https://codehaks.com/go/dyk
نگاهی به آخرین آپدیت dotNet 5.0

در این ویدیو نگاهی به بعضی از قابلیت های جدید دات نت 5 و سی شارپ 9 می اندازیم و سپس در باره امکانات جدید ASP NET Core و EF Core صحبت می کنیم.


https://codehaks.com/go/lkh
آموزش مهاجرت از دات نت 3 به دات نت 5 در ASP

در این ویدیو به آموزش نحوه مهاجرت از یک پروژه NET Core 3.1 به نسخه NET 5.0 می پردازیم و درباره تکنیک استفاده از برنچ در گیت همچنین نحوه استفاده از global json صحبت می کنیم. همچنین به موضوع نسخه LTS دات نت و زمان آپدیت های بعدی می پردازیم.

https://codehaks.com/go/vdt
در این ویدیو یک پروژه خالی دات نت 5.0 ایجاد می کنیم و سپس به آن EF Core اضافه می کنیم. DbContext تعریف می کنیم و سپس رابطه ی چند به چند پیاده می کنیم.

https://codehaks.com/go/tlw
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
❇️ مقایسه کارآیی روش‌های مختلف جایگزین کردن حروف در یک رشته در برنامه‌های NET.

چند وقت با وحید نصیری dotnettips.info واسه یکی از ریپازیتوری هاش در مورد یه موضوع performance ایی بحث میکردیم و من یه Sample زدم براش
https://github.com/mjebrahimi/Micro-Optimization-Samples/tree/master/Replace-CharArray-Benchmark

🔸حالا وحید عزیز زحمت کشیدند و یه مقاله آموزشی کامل درباره این موضوع تهیه کرده
هرچند که این موضوع micro optimization ایی هست و به درد جونیور یا میدل ها نمیخوره ولی به سنیور ها خوندنشو پیشنهاد میکنم
https://www.dotnettips.info/post/3242

🔹در اینجا از Span برای افزایش سرعت و همچنین کاهش میزان memory allocation استفاده کردم
از این تکنیک جهت کار با رشته ها توی وب سرور Kesterl به شدت استفاده شده و میزان زیادی از پرفرمنسش رو مدیون این تکنیک هست

توی این ریپو برخی نکات micro optimization ایی که بهش برمیخورم و بنچمارک میگیرم رو نگهداری میکنم
دیدن خالی از لطف نیست و نکات جالب و advance ایی توش هست
https://github.com/mjebrahimi/Micro-Optimization-Samples
_______________
@DotNetZoom
Forwarded from کدهک
کتابخانه Polly دارای قابلیت Circuit Breaker است که در صورت وجود خطا در سرویس از اجرای آن صرف نظر میکند. این قابلیت کمک می کند کدهایی با پایداری بالا داشته باشیم و در برابر خطاهای احتمالی پیش بینی های لازم را انجام دهیم.

https://codehaks.com/go/hwo
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
🔶 لب هم به رومون بسته شد + راهکار ها

مشابه اتفاقی که قبلا واسه GitHub افتاده بود الان متاسفانه واسه GitLab داره میافته
چند روز پیش گیتلب IP های ایران رو تحریم کرد و از دیروز داره اکانت های ایرانی ها رو مسدود میکنه و در این صورت دیگه دسترسی به کد هاتون نخواهید داشت

🔷 و اما حالا باید چیکار کنیم؟

اگه هنوز اکانتتون مسدود نشده عجله کنید و حتما هرچه سریعتر از Repository هاتون Backup بگیرید. دقت داشته باشین که به هیچ عنوان با IP ایران به گیتلب ریکوئست نزنید (هرچند بزنید هم جواب نمیده ولی احتمال مسدود شدن اکانتتون احتمالا بیشتر میشه)

🔰 راهکار های جایگزین

1️⃣ مهاجرت به Azure DevOps :
اگه به دنبال یه سرور گیت با امکانات خوب واسه پروژه های private تون هستید Azure DevOps یکی از بهترین گزینه هاست (هرچند احتمال تحریم در آینده برای این هم وجود داره ولی فعلا ازاده و مشکلی نداره). تنها محدودیت 5 یوزر به ازای هر پروژه داره

2️⃣ گیت سرور شخصی:
اگه به دنبال راه اندازی self-host روی سرور خودتون هستید هم Azure DevOps (تحت عنوان Azure DevOps Server و اینجا) نسخه قابل نصب داره. همچنین GitLab هم نسخه رایگان Community Edition (یا Gitlab CE) داره و این امکان رو به شما میده که سایت گیت لب رو (با یه سری امکانات محدود) روی سرور خودتون نصب کنین.

3️⃣ گزینه های دیگر:
برنامه های دیگری هم وجود داره که امکان راه اندازی git service به صورت self-hosted رو میدن و بهترینشون Gitea و Gogs هستند.
___________________
@DotNetZoom
برگزاری کارگاه آموزشی EF Core 5.0

در این دوره مباحث مقدماتی تا پیشرفته در EF Core آموزش داده میشود. دوره به صورت غیر حضوری برگزار میشود و همه قسمتها از پیش ضبط و قابل دانلود می باشد.

سرفصلها :
معرفی قابلیت های جدید
آموزش SQL Server و T-SQL
َشروع به کار با Code First
آموزش Fluent API
طراحی دیتابیس و ایجاد رابطه
خواندن و گزارش گیری از دیتابیس
کار با LINQ به صورت حرفه ای
ایجاد تغییرات در داده ها
کار با تراکنشها
رهگیری تغییرات
لوگ کردن و تست
پیاده سازی الگوی ریپوزیتوری و Unit Of Work
قابلیت های پیشرفته در EF Core
آموزش Dapper

شروع دوره : 1 آبان 99
مدت دوره : 20 ساعت
هزینه دوره : 400 هزارتومان

جهت ثبت نام با آی دی @codehak یا شماره 09380146555 تماس بگیرید.
Forwarded from Software Philosophy
سی شارپ 9 و بهبود pattern matching:

یکی از برتری های ویژوال بیسک نسبت به سی شارپ, موضوع pattern matching بود (البته قبل از سی شارپ 8).
از سی شارپ 8 به بعد ماکروسافت تمهیدات خاصی در جهت بهبود pattern matching در سی شارپ در نظر گرفت.👇👇

یکی از جالب ترین (و جذاب ترین) این موارد, بهبود در جملات شرطی است که در سی شارپ 9 به آن پرداخته شده است.

if(s is not string)
// is way more easier to read than
if(!(s is string))

خواندن عبارت ابتدایی بسیار آسان تر از عبارت دوم است.

Person p = new Person();
var a = p.Weight switch
{
< 150 => "light"
>= 150 and < 200 => "normal"
not null => "unknown"
null => "error"
};

و هچنین نوشتن این عبارات باعث زیباتر و خواناتر شدن کد می‌شود.

برای اطلاع از دیگر ویژگی های سی شارپ 9 می توانید از این لینک استفاده کنید.

جزئیات بیشتر را می‌توانید در لینک زیر مطالعه کنید:

https://blog.miguelbernard.com/c-9-0-improved-pattern-matching/

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.

#حامد_حاجیلو (http://bit.ly/2IVjfYD)

کانال تلگرام:
@SoftwarePhilosophy

___