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

آیدی ادمین:
@ma_limbs
Download Telegram
💡 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏بهینه‌سازی فضای ذخیره‌سازی

نکته 1:
‏برای بهینه‌سازی، اول از همه باید از دستور VACUUM استفاده کنی! این دستور فضای خالی دیتابیس رو حذف می‌کنه و حجم فایل رو کم می‌کنه. 🧹

نکته 2:
‏از نوع داده‌ی BLOB برای ذخیره‌ی فایل‌های حجیم (مثل تصاویر) پرهیز کن! بهتره فایل رو تو سیستم فایل معمولی ذخیره کنی و فقط مسیرش رو تو SQLite بذاری. 📦💾

نکته 3:
‏اگه می‌خوای یه عدد کاملاً صحیح باشه و هیچ‌وقت Null نشه، ستون رو INTEGER PRIMARY KEY تعریف کن. این کار باعث می‌شه از فضای کمتری استفاده بشه. 🔢💡

نکته 4:
‏از ایندکس‌های زیادی پرهیز کن! هر ایندکس یه کپی اضافی از داده‌ها رو تو فایل ذخیره می‌کنه و حجم رو زیاد می‌کنه. فقط برای ستون‌های ضروری ایندکس بساز. 📉

نکته 5:
‏اگه می‌بینی تو یه ستون فقط عدد صفر و یک یا True و False ذخیره می‌کنی، حتماً نوع داده رو INTEGER بذار. چون فضای کمتری نسبت به TEXT می‌گیره. 🤏

نکته 6:
‏برای اینکه دیتابیس خودش کم‌کم تمیز بمونه، PRAGMA auto_vacuum = FULL; رو فعال کن. این باعث می‌شه فضای آزاد مدیریت بشه و دیگه لازم نباشه همیشه VACUUM بزنی. 🔄

نکته 7:
‏در صورت امکان، از نام‌های کوتاه‌تر برای جدول‌ها و ستون‌ها استفاده کن. چون این نام‌ها تو Schema و ایندکس‌ها ذخیره می‌شن و روی حجم نهایی تأثیر می‌ذارن. 📝

نکته 8:
‏به جای ذخیره کردن تاریخ و زمان به صورت رشته‌های طولانی (TEXT)، از فرمت‌های عددی INTEGER (مثلاً Unix Time) استفاده کن. حجم کمتری می‌گیره.

نکته 9:
‏اگه می‌خوای یه کپی تمیز و فشرده از دیتابیس بگیری، از VACUUM INTO 'backup.db'; استفاده کن. این هم بک‌آپه، هم بهینه‌سازی! 📦🔥

نکته 10:
‏برای ستون‌های متنی، سعی کن فقط مقداری که واقعاً لازمه رو ذخیره کنی. حذف فاصله‌های اضافه یا متون تکراری، به طور غیرمستقیم فضای ذخیره‌سازی رو بهینه می‌کنه. 😎


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

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

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

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

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

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
Media is too big
VIEW IN TELEGRAM
🔵 آموزش مبانی برنامه نویسی - بخش پنجم

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

🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.

🟣 مبانی برنامه نویسی

🟢 زبان آموزش: فارسی


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

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

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

آدرس وبسایت:
https://Tutorial24.ir
‏در C#، ترکیب (Composition) روشی قدرتمند برای طراحی سیستم‌هاست. به جای اینکه کلاس‌ها از کلاس‌های دیگر ارث‌بری کنند، اشیاء یک کلاس، اشیاء دیگری از کلاس‌های دیگر را در خود نگه می‌دارند و از قابلیت‌های آن‌ها استفاده می‌کنند. این رویکرد به جای وراثت، "یک رابطه داشتن" (has-a) را ایجاد می‌کند که وابستگی‌ها را به شدت کاهش داده و انعطاف‌پذیری کد را برای تغییرات و توسعه‌های آینده افزایش می‌دهد. 🧩💡 #Csharp #DesignPatterns

https://t.me/csharp7
‏در WPF، اعتبارسنجی داده‌ها در اتصال داده (Data Binding) به صورت داخلی پشتیبانی می‌شود. این امکان به شما اجازه می‌دهد تا قبل از اینکه داده‌های نامعتبر به منبع داده برسند، آن‌ها را شناسایی و اصلاح کنید.

‏یکی از راه‌های اصلی پیاده‌سازی اعتبارسنجی، استفاده از قابلیت ValidationRules در اتصال داده است. شما می‌توانید کلاس‌های سفارشی خود را بسازید که از ValidationRule ارث‌بری می‌کنند و منطق اعتبارسنجی خود را در متد Validate پیاده‌سازی کنند.

‏مثال ساده‌ای از یک ValidationRule برای اطمینان از اینکه یک فیلد عددی، خالی نباشد:

public class NotEmptyValidationRule : ValidationRule
{
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
if (value == null || string.IsNullOrWhiteSpace(value.ToString()))
{
‏ return new ValidationResult(false, "این فیلد نمی‌تواند خالی باشد.");
}
return ValidationResult.ValidResult;
}
}


‏برای استفاده از این ValidationRule در XAML، آن را به صورت زیر به Binding اضافه می‌کنید:

<TextBox>
<Binding Path="MyNumericProperty" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:NotEmptyValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox>


‏هنگامی که کاربر مقداری را وارد می‌کند و UpdateSourceTrigger روی PropertyChanged تنظیم شده باشد، ValidationRule اجرا می‌شود. اگر اعتبارسنجی ناموفق باشد، ValidationResult با IsValid برابر false برگردانده می‌شود و پیام خطا نمایش داده خواهد شد.

‏WPF همچنین از IDataErrorInfo و INotifyDataErrorInfo برای پیاده‌سازی اعتبارسنجی پشتیبانی می‌کند که امکانات بیشتری برای مدیریت خطاها و نمایش آن‌ها فراهم می‌کنند.

‏اعتبارسنجی در سمت کلاینت (WPF) به بهبود تجربه کاربری و کاهش بار روی سرور کمک شایانی می‌کند. 🚀

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
‏C#‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‎ 12: قابلیت‌های Chunk، Take و Skip برای کار با لیست‌ها:

‏`Chunk`: لیست را به بخش‌های کوچک‌تر تقسیم می‌کند. ✂️
‏`Take`: تعداد مشخصی از آیتم‌های ابتدایی لیست را برمی‌گرداند.
‏`Skip`: تعداد مشخصی از آیتم‌های ابتدایی لیست را رد می‌کند و باقی را برمی‌گرداند. ➡️

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

🟣 موضوع : ‏Stored Procedures و نحوه ایجاد آن‌ها

نکته :

‏وقتی Stored Procedureت رو ساختی، فقط با یه اسم صداش کن و کار رو ازش بخواه. 🗣️


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

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

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

آدرس وبسایت:
https://Tutorial24.ir
💠 عضو جامع ترین کانال های توسعه فردی، روانشناسی و موفقیت شوید:

➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0

➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0

شامل موضوعات آموزشی زیر:

توسعه و رشد فردی
افزایش ثروت
هدف گذاری و مدیریت زمان
مهارت های اجتماعی، ارتباطی و فن بیان
روانشناسی و خودیاری
موفقیت
عادات موثر
سلامت و تغذیه سالم
موفقیت شغلی
عبارات تاکیدی
مدیریت اضطراب و خشم
روان درمانی CBT و ACT
شخصیت شناسی و تحلیل روانشناسی
انگیزشی
کودک درون
تکنیک های NLP
یوگا
افزایش حافظه
مدیتیشن
موفقیت تحصیلی
مطالعه موثر
افزایش اعتماد به نفس
افزایش تمرکز
تفکر مثبت
افزایش خلاقیت
نقل قول های انگیزشی

با کلیک بر روی لینک زیر عضو تمامی این کانال ها شوید:

➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0

➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
‏ویژگی `with` در رکوردها (Records) در سی‌شارپ، یک کپی جدید از رکورد موجود ایجاد می‌کنه، با این تفاوت که بعضی از پراپرتی‌هاش تغییر داده شدن.

```csharp
‏var person1 = new Person("علی", "رضایی");
‏var person2 = person1 with { LastName = "محمدی" };
‏// person2 یک رکورد جدید با FirstName یکسان و LastName متفاوت است.
```

‏این ویژگی برای ایجاد اشیاء immutable بسیار کاربردیه. 🛠️💾

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

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

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
🔵 کوییز #سی_شارپ

🟣 موضوع : ‏تعریف متغیرها و انواع داده‌های پایه (int, double, char, bool)

🟢 سوال :

‏کدام یک از موارد زیر نوع داده‌ای برای کاراکترها در C# است؟

گزینه ۱:
int

گزینه ۲:
double

گزینه ۳:
bool

گزینه ۴:
char

🔵 گزینه صحیح: 4

🟢 توضیح :

‏char نوع داده‌ای برای کاراکترها است.

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

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

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

آدرس وبسایت:
https://Tutorial24.ir
‏C# 12 نوع داده‌ای جدید به نام `Utf8String` معرفی کرده است. 🔤 این نوع، رشته‌ها را به صورت UTF-8 در حافظه ذخیره می‌کند که باعث صرفه‌جویی در فضا و بهبود عملکرد در برخی موارد می‌شود. 🚀

‏`Utf8String` برای مواردی که با داده‌های متنی UTF-8 سر و کار دارید، انتخاب مناسبی است. 💡

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

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

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
‏اپراتور `?.=` در C# برای جلوگیری از خطای NullReferenceException استفاده میشه. 🛡️

‏این اپراتور، مقدار سمت راست رو فقط وقتی به متغیر سمت چپ اختصاص میده که اون متغیر Null نباشه. در غیر این صورت، هیچ اتفاقی نمیفته.

‏مثال:

`string? name = null;`
`name ?= "Default Name";`

‏در این مثال، چون `name` مقدار Null داره، "Default Name" بهش اختصاص داده نمیشه و همچنان Null باقی میمونه. 💡

https://t.me/csharp7
🔵 کوییز #سی_شارپ

🟣 موضوع : ‏معرفی ابزارهای تست: NUnit، MSTest و xUnit

🟢 سوال :

‏کدام یک از ابزارهای زیر از ویژگی‌های Parallel Test Execution پشتیبانی می‌کند؟

گزینه ۱:
NUnit

گزینه ۲:
xUnit

گزینه ۳:
MSTest

گزینه ۴:
Moq

🔵 گزینه صحیح: 1

🟢 توضیح :

‏NUnit از ویژگی‌های Parallel Test Execution پشتیبانی می‌کند.

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

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

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

آدرس وبسایت:
https://Tutorial24.ir
‏در C# می‌دانستید می‌توانید Analyzer Rules سفارشی برای مدیریت Nullable Reference Types بسازید؟ ⚙️ با این کار، خطاهای رایج مربوط به NullReferenceException را قبل از اجرا شناسایی و از بروز آن‌ها جلوگیری می‌کنید. 💪 این Analyzer Rules می‌توانند بررسی کنند که آیا یک متغیر nullable قبل از استفاده مقداردهی شده است یا خیر.

https://t.me/csharp7
💠 عضو جامع ترین کانال های توسعه فردی، روانشناسی و موفقیت شوید:

➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0

➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0

شامل موضوعات آموزشی زیر:

توسعه و رشد فردی
افزایش ثروت
هدف گذاری و مدیریت زمان
مهارت های اجتماعی، ارتباطی و فن بیان
روانشناسی و خودیاری
موفقیت
عادات موثر
سلامت و تغذیه سالم
موفقیت شغلی
عبارات تاکیدی
مدیریت اضطراب و خشم
روان درمانی CBT و ACT
شخصیت شناسی و تحلیل روانشناسی
انگیزشی
کودک درون
تکنیک های NLP
یوگا
افزایش حافظه
مدیتیشن
موفقیت تحصیلی
مطالعه موثر
افزایش اعتماد به نفس
افزایش تمرکز
تفکر مثبت
افزایش خلاقیت
نقل قول های انگیزشی

با کلیک بر روی لینک زیر عضو تمامی این کانال ها شوید:

➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0

➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
‏در C#، متدهای استاتیک به کلاس تعلق دارند و برای فراخوانی آن‌ها نیازی به ایجاد نمونه (object) از کلاس نیست. این متدها زمانی مفید هستند که عملیات مورد نظر به وضعیت خاصی از یک نمونه وابسته نباشد. به عنوان مثال، متدهای کمکی عمومی یا متدهایی که صرفاً با پارامترهای ورودی کار می‌کنند، کاندیدای خوبی برای متدهای استاتیک هستند.

‏در مقابل، متدهای نمونه (غیر استاتیک) به یک نمونه خاص از کلاس تعلق دارند. برای فراخوانی آن‌ها، ابتدا باید یک نمونه از کلاس ساخته شود. این متدها برای دسترسی و تغییر فیلدها (members) مربوط به یک نمونه خاص از کلاس استفاده می‌شوند. اگر عملیات شما نیاز به دسترسی به داده‌های یک شیء دارد، از متد نمونه استفاده کنید. 💡

‏استفاده صحیح از متدهای استاتیک و نمونه، خوانایی و کارایی کد را بهبود می‌بخشد. 🚀

https://t.me/csharp7
🔵 کوییز #سی_شارپ

🟣 موضوع : ‏کپسوله‌سازی (Encapsulation) و حفاظت از داده‌ها

🟢 سوال :

‏کدام یک از موارد زیر یک روش برای پیاده‌سازی کپسوله‌سازی در C# است؟

گزینه ۱:
‏استفاده از متغیرهای سراسری

گزینه ۲:
‏استفاده از سطوح دسترسی (access modifiers)

گزینه ۳:
‏استفاده از توابع بازگشتی

گزینه ۴:
‏استفاده از کلاس‌های استاتیک

🔵 گزینه صحیح: 2

🟢 توضیح :

‏سطوح دسترسی (public, private, protected) برای پیاده‌سازی کپسوله‌سازی استفاده می‌شوند.

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

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

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

آدرس وبسایت:
https://Tutorial24.ir
‏در C#، کلاس System.Console ابزارهای ساده‌ای برای تعامل با کنسول ارائه می‌دهد.

‏با استفاده از Console.WriteLine() می‌توانید متن را در خط جدید نمایش دهید و با Console.Write() بدون رفتن به خط جدید.

‏برای خواندن ورودی از کاربر، از Console.ReadLine() استفاده می‌شود که همیشه یک مقدار string برمی‌گرداند. اگر نیاز به انواع دیگر داده دارید، باید آن را تبدیل کنید.

‏مثال:
‏Console.WriteLine("سلام دنیا!");
‏Console.Write("این یک خط است ");
‏Console.Write("و این ادامه آن.");

string userInput = Console.ReadLine();
‏Console.WriteLine("شما وارد کردید: " + userInput);


‏با این کلاس می‌توانید به راحتی اطلاعات را از کنسول بخوانید و در آن نمایش دهید. 💻⌨️

https://t.me/csharp7