کدهک
1.91K subscribers
1.31K photos
7 videos
1 file
683 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
قابلیت Collection Literals در سی شارپ 12

برای پر کردن ورودی کالکشن ها می توانید بجای استفاده از تایپ اصلی مانند:

new List<int> {1,5,7}

از عبارت [1,5,7] استفاده کنید.

در نسخه های قبلی #C می توانستید از نوشتن تایپ صرف نظر کنید مثلا بنویسید:

new() {1,5,7}

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

با قابلیت جدیدتر Collection Literals کد خوانا تر می شود و دیگر حتی نیاز به نوشتن عبارت new نیست.

#Build2023
29👍12
ویژگی deconstruct در #C می‌تواند زمانی استفاده شود که می‌خواهید اجزا یا پراپرتی های یک شی را درون متغیرهای جداگانه استخراج کنید.

https://youtu.be/wk8z4TvL5ns

https://www.aparat.com/v/hZ1Ia
8👍2
زبان های مورد تحسین و مطلوب

در نظر سنجی جدید بجای Wanted & Dreaded از مفهوم Admired و Desired استفاده شده است.

میزان علاقه افراد به استفاده از یک تکنولوژی پرسیده میشود(Desired) و با افرادی که از آن تکنولوژی در سال گذشته کار کرده اند و مایل هستند سال بعد هم با آن کار کنند (Admired)مقایسه میشود.

هر چقدر طول این خط کوتاهتر باشد نشان میدهد افرادی که با آن تکونولوژی کار کرده اند علاقه زیادی به استفاده از تکنولوژی در آینده ندارند. در واقع بیشتر Hype بوده تا اینکه در عمل مطلوب باشد.

تکنولوژی هایی که خط بلندتری دارند مانند Rust و #C نشان می دهد که افراد پس از استفاده از آنها همچنان علاقمند به ادامه کار با آنها هستند و انتظارات آنها را برآورده کرده است.

#stackoverflow2023
👍15
با Task.FromResult می توانید عملیاتی که همزمان (Sync) انجام میشود به صورت Async جا بزنید!

تصور کنید که یک جعبه جادو دارید که می‌تواند به سرعت یک عدد تولید کند، (مثلا 42). شما می‌خواهید از این جعبه جادو در یک برنامه استفاده کنید و می‌خواهید به نظر بیاید که دارید کاری ناهمگام انجام می‌دهید (مثل انتظار برای مدت طولانی)، حتی اگر نتیجه را فوراً دریافت می‌کنید. برای اینکار می توانید از Task.FromResult استفاده کنید.

بنابراین، به زبان ساده‌تر، Task.FromResult روشی است برای تظاهر به اینکه چیزی ناهمگام است در حالی که در واقعیت به سرعت و همزمان اتفاق می‌افتد.

این روش برای حفظ ساختار کد هنگام کار با عملیات‌های Sync و Async در#C مفید است.

ممکن است کدی داشته باشید که در صورت درستی شرط عملیات Sync و در حالت دیگر از Async استفاده می کند ولی برای همه متد باید از خروجی Task استفاده کنید.
👍92
کنفرانس سالانه دات نت روز سه شنبه ساعت 19:30 به وقت ایران آغاز میشود.

این رویداد به مدت سه روز برگزار میشود و قرار است از آخرین نسخه دات نت رو نمایی شود.

دات نت 8 به همراه 12.0 #C و ASP.NET Core 8.0 عرضه میشود و نسخه نهایی ابزاری مثل Blazor و MAUI و Entity Framework هم در این بسته قرار دارد.

دات نت 8 پشتیبانی 3 ساله (LTS) دارد و مایکروسافت از همه توسعه دهندگان دات نت درخواست میکند از نسخه قبلی به 8 آپدیت کنند.

https://www.dotnetconf.net
👍18🔥9
دات نت از کامپایل just-in-time استفاده می‌کند، جایی که کدهای #C به زبان میانی (IL) کامپایل شده و سپس با JIT-compiler به کد ماشینی در زمان اجرا تبدیل می‌شوند. به این ترتیب کد برنامه به ماشین نهایی مستقیم وابسته نیست و JIT می تواند بر اساس نوع ماشین خروجی را بهینه کند.

اما موارد زیادی است که استفاده از AOT یک نیاز است چون حجم نهایی برنامه را کاهش داده و پرفورمنس برنامه در زمان اجرا افزایش می یابد. برنامه های موبایل و سرور می توانند از AOT بهره ببرند.

در نسخه 8 دات نت با به کار گیری AOT حجم کانتینر های دات نت تا 8 مگابایت کم شده و حافظه و زمان بارگذاری نیز کاهش یافته است.

#dotnetconf2023
👍26🔥6
آموزش Delegates، Func و Action در #C

▶️ https://youtu.be/vN7ntZ7zQSM

#csharp #dotnet
👍241
آشنایی با Stream ها در #C - کار با FileStream و روش‌های خواندن فایل

▶️https://youtu.be/C7dCtW-juew

#dotnet #csharp #FileStream
6🔥1
‏CSnakes یک کدساز و ران‌تایم برای دات نت است که به شما امکان می‌دهد کدهای پایتون را با پرفورمنس بالا در پروژه‌های دات‌نت اجرا کنید، بدون نیاز به REST، HTTP یا میکروسرویس‌ها.

این ابزار می‌تواند از روی پایتون کد#C تمیز و خوانا تولید کند که در هر پروژه دات‌نت قابل استفاده است.

با کمک این ابزار دسترسی به کتابخانه های پایتون به خصوص در بخش هوش مصنوعی در سی شارپ ساده میشود.

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


▶️https://youtu.be/LLN4YgjSwyE
👍86🔥4
در این ویدیو به معرفی زبان برنامه‌نویسی Zig پرداختم و یک برنامه‌ی ساده برای تبدیل تصاویر رنگی در فرمت BMP به سیاه و سفید نوشتم. این پروژه رو هم با Zig و هم با #C پیاده‌سازی کردم تا تفاوت‌ها و امکانات هر زبان رو بررسی کنیم.

▶️https://youtu.be/iuzczBpmy7A

#dotnet #csharp #ziglang
👍6🔥2
Forwarded from Code With HSN
ویدئو جدید منتشر شد 🚀
موشکافی dotnet و بررسی 10 ترفند برای مصرف کمتر یا بهتر حافظه؛ از مشکلات خطرناک MemoryStream بگیر تا ترفندهای مخفی LINQ و اسرار ValueTask، همه‌چیز رو براتون شکافتم! هدف اینه که دست خطی داشته باشید که از مموری کمتر استفاده کنه و آگاهانه از خیلی چیز ها استفاده کنید

🎯 مواردی که یاد میگیرید:

1. بهینه‌سازی حافظه در #C 🚀
مشکلات MemoryStream و راه‌حل با RecyclableMemoryStream
جلوگیری از Memory Leak و مدیریت حافظه

2.دو کلاس ValueTask vs Task ⚡️
چه زمانی از ValueTask استفاده کنیم؟
مزایا و معایب هرکدام برای Performance

3. پشت‌پرده async/await 🔍
نحوه عملکرد IAsyncStateMachine
کلاس Delegateها چه مشکلاتی ایجاد می‌کنند؟

4. مشکلات Boxing 📦
چه زمانی Structها Boxing می‌شوند؟
تأثیر آن روی Performance و راه‌های جلوگیری

5. بهینه‌سازی LINQ و List 💡
مصرف حافظه در LINQ و راه‌های کاهش آن
ترفندهای افزایش سرعت در Listها

6. بررسی ObjectPool و Generic 🛠
پیاده‌سازی ObjectPool برای کاهش تخصیص حافظه
مزایای استفاده از INumber و Genericها

از اینجا مشاهده کنید: https://youtu.be/YM86MO0ohYg?si=qX5ZbHXWQ-6_oqhR
🔥9👍51