آموزش C# و .Net
1.55K subscribers
429 photos
325 videos
19 files
2.8K links
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk

آیدی ادمین:
@ma_limbs
Download Telegram
‏Immutable Collections و Record در C# چه فرقی دارند؟ 🤔

‏Immutable Collections یک نوع داده‌ای هستند که پس از ایجاد، نمی‌توان آنها را تغییر داد. Recordها هم نوعی کلاس هستند که به طور پیش‌فرض Immutable هستند، اما قابلیت تغییر هم دارند.

‏تفاوت اصلی اینجاست که Immutable Collections برای مدیریت مجموعه‌ای از داده‌ها طراحی شده‌اند، در حالی که Recordها برای تعریف یک نوع داده‌ای با مجموعه‌ای از ویژگی‌ها استفاده می‌شوند.
‏به زبان ساده، اگر مجموعه‌ای از داده‌ها دارید که نباید تغییر کنند، از Immutable Collections استفاده کنید. اگر یک نوع داده‌ای دارید که می‌خواهید Immutable باشد، از Record استفاده کنید.
🗂️✔️

https://t.me/csharp7
💡 نکته #NoSQL

🟣 موضوع : ‏مثال‌های معروف Graph (Neo4j، JanusGraph)

نکته :

‏پایگاه داده‌های گراف برای چی خوبن؟ برای هر چیزی که رابطه‌های بین داده‌ها مهمن! 🤝 مثل شبکه‌های اجتماعی یا مسیریابی.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین‌ و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:

🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
‏تفاوت `Task.WhenAll` و `Parallel.ForEachAsync` 🤔

‏`Task.WhenAll` برای اجرای موازی تسک‌های از پیش تعریف شده است. یعنی ابتدا لیست تسک‌ها را می‌سازید، سپس منتظر اتمام همه‌ی آن‌ها می‌مانید.

‏`Parallel.ForEachAsync` برای اجرای موازی یک حلقه (loop) است. در هر تکرار حلقه، یک تسک به صورت خودکار ایجاد و اجرا می‌شود.

‏انتخاب بین این دو، بستگی به نوع مسئله دارد. اگر لیست تسک‌ها را از قبل دارید، `Task.WhenAll` مناسب‌تر است. اگر می‌خواهید یک حلقه را به صورت موازی اجرا کنید، `Parallel.ForEachAsync` را انتخاب کنید. ⚙️ 🚀

https://t.me/csharp7
‏استفاده از Hardware Intrinsics در C# می‌تونه سرعت اجرای بعضی از محاسبات رو به شکل چشمگیری بالا ببره. 🚀

‏این قابلیت به شما اجازه می‌ده تا مستقیماً از دستورالعمل‌های پردازنده (مثل SIMD) استفاده کنید. 💻

‏توی بنچمارک‌ها، دیده‌ شده که این روش تا چند برابر سریع‌تر از کد C# معمول عمل می‌کنه.

https://t.me/csharp7
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین‌ و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:

🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
💡 نکته #MySQL

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏سینتکس RIGHT JOIN با کلمه‌کلیدی ON

‏سلام! اگه میخوای از RIGHT JOIN توی MySQL استفاده کنی، یادت باشه که بعدش باید حتماً کلمه کلیدی ON رو بیاری و شرطت رو بنویسی. مثل این: RIGHT JOIN table2 ON table1.id = table2.table1_id 😉

‏اگه توی RIGHT JOIN یه جدول سمت راستت هست و یه جدول سمت چپت، همه ردیف‌های جدول سمت راست (right table) رو نشون میده، حتی اگه توی جدول سمت چپ (left table) هیچ تطابقی نداشته باشه! 🤯

‏وقتی از RIGHT JOIN استفاده میکنی، ترتیب جداول خیلی مهمه! جدول سمت راستت (right table) مهمه و اطلاعاتش کامل میاد. 🔄

‏می‌خوای بفهمی RIGHT JOIN چه‌جوری کار میکنه؟ یه دایره بکش، بعدش یه فلش از جدول سمت راست به سمت چپ بکش! اینجوری تجسمش آسون‌تره. 🎯

‏اگه داری چند تا جدول رو JOIN میکنی، و میخوای از RIGHT JOIN استفاده کنی، حواست باشه که ترتیب جداول رو درست تنظیم کنی! 🤓

‏یه راه خوب برای تست RIGHT JOIN اینه که یه جدول کوچیک بسازی، بعدش با یه جدول بزرگتر JOIN ش کنی. اینطوری نتیجه‌اش رو راحت‌تر می‌بینی. 🧪

‏تو شرط ON توی RIGHT JOIN، حتماً از فیلدهایی استفاده کن که توی جداولت مشترک هستن و به هم ربط دارن (مثل کلیدهای خارجی). 🔗

‏اگه توی RIGHT JOIN شرط ON رو یادت بره، MySQL بهت ارور میده! پس حواست باشه! ⚠️

‏برای اینکه بفهمی نتیجه RIGHT JOIN چطوریه، میتونی بعدش از دستور ORDER BY استفاده کنی و اطلاعات رو مرتب کنی. 👌

‏RIGHT JOIN یه ابزار خیلی قویه! فقط کافیه یه کم تمرین کنی تا قلقش دستت بیاد! 🔥💡


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
‏خبر خوب برای C#‎ کارها! 🎉

‏ویژگی Interceptors رسماً Stable شد. این قابلیت به شما اجازه می‌ده تا فراخوانی یک متد رو در زمان کامپایل، به متد دیگه‌ای Redirect کنید. 🔄

‏به زبان ساده، قبل از اجرا شدن کد، کامپایلر می‌تونه تصمیم بگیره که یک تیکه از کدتون، به جای اصلیش، یه جای دیگه اجرا بشه. این یعنی انعطاف‌پذیری بیشتر و امکانات جدید برای AOP و تست‌زنی. 🧪

https://t.me/csharp7
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین‌ و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:

🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
💡 نکته #SQL

🟣 موضوع : ‏استفاده از ALIAS برای جدول‌ها و ستون‌ها

نکته :

‏وقتی چند تا جدول رو JOIN می‌کنی، اسم ستون‌ها رو هم با ALIAS خوشگل کن. مثلا c.first_name AS CustomerName . اینجوری نتیجه کوئری خیلی خوانا میشه.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
‏در C#، دستورات break و continue ابزارهای قدرتمندی برای کنترل جریان اجرای حلقه‌ها هستند.

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

‏دستور continue اجرای تکرار فعلی حلقه را متوقف کرده و به ابتدای حلقه برای تکرار بعدی می‌رود. این دستور زمانی کاربرد دارد که بخواهیم از اجرای بخشی از کد در یک تکرار خاص صرف نظر کنیم.

‏مثال:

for (int i = 0; i < 10; i++)
{
if (i == 5)
{
‏ break; // حلقه در اینجا متوقف می‌شود
}
if (i % 2 == 0)
{
‏ continue; // اگر عدد زوج بود، از چاپ آن صرف نظر کن
}
Console.WriteLine(i);
}


‏در این مثال، حلقه تا زمانی که i برابر با 5 شود اجرا می‌شود و سپس با break متوقف می‌گردد. اعداد زوج نیز با continue چاپ نمی‌شوند. 🚀💡

https://t.me/csharp7
‏الگوریتم‌ها رو تو پایتون پیاده‌سازی کنیم؟ 🤔

‏یه عالمه الگوریتم خفن داریم که می‌تونیم با پایتون کدشون بزنیم! از مرتب‌سازی حبابی 🫧 بگیر تا جستجوی دودویی 🔎.

‏اینطوری هم منطق الگوریتم‌ها رو بهتر می‌فهمیم، هم مهارت برنامه‌نویسی‌مون تقویت میشه 💪.

‏تو پست‌های بعدی چندتا الگوریتم ساده رو با هم پیاده‌سازی می‌کنیم. با ما همراه باشید! 😉

https://t.me/python7ir
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین‌ و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:

🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
🔵 کوییز T-SQL - مبانی SELECT #پایگاه_داده #sql_server #t_sql

🟣 سوال: تفاوت بین اپراتور = و != در T-SQL چیست؟

🟢 پاسخ: اپراتور = برای مقایسه تساوی و اپراتور != برای مقایسه نابرابری استفاده می‌شود. مثال: SELECT * FROM Employees WHERE Department = 'HR'; و SELECT * FROM Employees WHERE Department != 'HR';
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
‏کامپایل کد C# در زمان اجرا ⚙️ با DynamicCodeCompilation، قابلیتی برای حذف (suppress) فایل‌های DLL تولید شده وجود دارد. این کار برای جلوگیری از بهم ریختگی پوشه‌ها و حفظ امنیت بیشتر در محیط‌های حساس کاربرد دارد.

‏به این صورت:
```csharp
var compilation = CSharpCompilation.Create(...).WithOptions(new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary, emitDebugInformation: false, deterministic: true, concurrentBuild: false, optimizationLevel: OptimizationLevel.Release, DynamicCodeCompilation = false));
```

‏با `DynamicCodeCompilation = false` دیگر DLL تولید نمی‌شود. 👌

https://t.me/csharp7
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین‌ و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:

🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 MySQL UNIONS are easy

🟢 کیفیت : متوسط

🔴 توجه کنید با تنظیمات خود تلگرام می توانید حجم و کیفیت ویدیو را بر اساس سرعت اینترنت خود تنظیم نمایید.

🟣 MySQL tutorial for beginners 🐬

🟢 زبان آموزش: انگلیسی

🟣 دوره MySQL برای مبتدیان


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین‌ و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:

🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
‏Kestrel یک وب سرور متن‌باز و کراس پلتفرم است که به طور پیش‌فرض در ASP.NET Core استفاده می‌شود. این وب سرور برای میزبانی برنامه‌های ASP.NET Core در محیط‌های مختلف، از جمله توسعه محلی و استقرار در تولید، طراحی شده است.

‏Kestrel به دلیل سبک بودن، سرعت بالا و انعطاف‌پذیری، انتخاب مناسبی برای اجرای برنامه‌های ASP.NET Core است. این وب سرور می‌تواند مستقیماً برنامه‌های شما را اجرا کند یا به عنوان یک پروکسی معکوس (Reverse Proxy) در پشت یک وب سرور دیگر مانند IIS یا Nginx عمل کند.

‏هنگام توسعه یک برنامه ASP.NET Core، Kestrel به طور خودکار راه‌اندازی می‌شود و برنامه شما را روی یک پورت مشخص (معمولاً 5000 یا 5001) در دسترس قرار می‌دهد. این امکان توسعه سریع و تست برنامه‌ها را بدون نیاز به پیکربندی پیچیده فراهم می‌کند. 🚀

‏برای پیکربندی Kestrel، می‌توانید از فایل Program.cs یا Startup.cs (در نسخه‌های قدیمی‌تر ASP.NET Core) استفاده کنید. به عنوان مثال، برای تنظیم پورت‌های گوش دادن:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

‏// تنظیم پورت‌های گوش دادن
app.Run("http://localhost:8080");


‏همچنین می‌توانید Kestrel را برای گوش دادن به چندین آدرس و پورت به طور همزمان پیکربندی کنید:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.Run(new[] { "http://localhost:5000", "https://localhost:5001" });


‏Kestrel همچنین از ویژگی‌هایی مانند HTTPS، HTTP/2 و مدیریت اتصالات پشتیبانی می‌کند که به بهبود عملکرد و امنیت برنامه‌های وب کمک می‌کند. 🌐⚡️

https://t.me/csharp7
🔵 دوست داری برنامه نویس حرفه ای بشی یا مهارت های کامپیوتری خودت رو افزایش بدی؟ با عضویت در لیست تلگرامی زیر در بی نظیر ترین کانال های برنامه نویسی ما عضو شوید:

🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...

عضو لیست جامع شوید:

https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
‏کلاس‌های انتزاعی (Abstract Classes) در C# امکان تعریف متدهایی بدون بدنه را فراهم می‌کنند که باید توسط کلاس‌های مشتق شده پیاده‌سازی شوند. این ویژگی به ایجاد ساختارهای سلسله مراتبی قوی و اجبار به پیاده‌سازی متدهای کلیدی کمک می‌کند.

‏نکته مهم این است که شما نمی‌توانید مستقیماً از یک کلاس انتزاعی نمونه‌سازی (instantiate) کنید. هدف کلاس انتزاعی، ارائه یک الگوی کلی است که توسط کلاس‌های ملموس‌تر (Concrete Classes) به ارث برده و تکمیل شود.

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

‏// مثال کلاس انتزاعی
abstract class Shape
{
‏ public abstract void Draw(); // متد انتزاعی بدون بدنه
}

‏// کلاس مشتق شده که باید متد انتزاعی را پیاده‌سازی کند
class Circle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a circle.");
}
}

‏// تلاش برای نمونه‌سازی از کلاس انتزاعی خطا می‌دهد