.NET | دات نت – Telegram
.NET | دات نت
285 subscribers
121 photos
7 videos
26 files
165 links
دنیای شگفت انگیز و جذاب دات نت رو زیر ذره‌بین می‌بریم و تجربه ها رو به اشتراک میذاریم

به جمع توسعه دهندگان دات نت خوش اومدی 🥰❤️


گروه: https://news.1rj.ru/str/dndevelopchat
Download Telegram
Forwarded from InvestFund
This media is not supported in your browser
VIEW IN TELEGRAM
🎞 سم التمن: موفقیت ربطی به باهوش بودن نداره!

💡خیلی‌ها فکر می‌کنن بهترین فاندرها برنده می‌شن چون باهوش‌ترن، شبکه قوی‌تری دارن یا توی حوزه‌شون تخصص بالایی دارن. ولی سم التمن (باتجربه YC و OpenAI) میگه رمز اصلی این نیست.
اما سم التمن میگه رمز اصلی چیز دیگه‌ست: سرسختی و پافشاری بی‌وقفه. همون چیزی که پل گراهام بهش می‌گه «relentlessly resourceful».

📌 التمن می‌گه سه ویژگی حیاتی توی همه‌ی فاندرهای موفق مشترکه:

▫️تمرکز: حواس‌پرتی‌ها رو کنار بذارن و فقط کار اصلی رو جلو ببرن.
▫️باور به خود: چون اگه خودت باور نکنی، هیچ‌کس دیگه‌ای باور نمی‌کنه.
▫️ارتباطات شخصی: از جذب تیم و سرمایه تا فروش ویژن و ساختن اعتماد.

📍و یک عامل مهم دیگه که خیلی‌ها دست‌کم می‌گیرن: ارتباط شفاف و ساده. تقریباً همه‌ی استارتاپ‌های بزرگ فاندرهایی داشتن که می‌تونستن ایده‌شون رو در کمتر از ۲۵ کلمه توضیح بدن.

📌 فاندرهایی که این ویژگی‌ها رو داشته باشن، تیم قوی می‌سازن، اعتماد می‌گیرن و ایده‌شون رو به نتیجه می‌رسونن.

@Investingfund
2👏2👍1
سلام وقت بخیر.
من یه پروژه مایکروسرویسی با دات نت اسپایر کار کردم. که نکات و معماری و پترن های خوبی داخلش هست که میتونید ازش استفاده کنید.

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

https://github.com/YAS-SIIN/PlainBridge

<Yasin/>
7👍1
♨️مایکروسافت اعلام کرد: پشتیبانی ۲۴ ماهه برای نسخه‌های STS در NET 9. تا 2026



مایکروسافت مدت پشتیبانی نسخه‌های STS در NET. را از ۱۸ ماه به ۲۴ ماه افزایش داد. این تغییر از NET 9. آغاز می‌شود و تا نوامبر ۲۰۲۶ ادامه دارد. نسخه‌های LTS همچنان سه سال پشتیبانی خواهند داشت.


اطلاعات بیشتر 👇👇

https://bugeto.net/blog/dotnet-sts-releases-supported-for-24-months
👍42
🔍 تفاوت string و String در سی شارپ — نکته‌ای ساده ولی مهم

اگه تازه با سی شارپ شروع کرده باشی، احتمالاً دیدی که بعضی‌ها از string استفاده میکنن و بعضی‌ها از String.

شاید فکر کنی فرق دارن، ولی واقعیت اینه که:
🔹 string یه کلمه کلیدی توی زبان سی شارپ
🔹 String یه کلاس توی فضای نام System
در واقع، string فقط یه میانبر برای System.String ـ. یعنی این دو کاملاً معادلان:

string name = "Hamed";
String city = "Tehran";

هر دو متغیر از نوع System.String هستن و میتونی روی هر دو از متدهایی مثل .Length, .ToUpper(), .Contains() و غیره استفاده کنی.

📌 نکته‌ی مهم:
برای تعریف متغیرها، استفاده از string رایج‌تر و خواناتر هست.
ولی وقتی میخوای از متدهای کلاس String استفاده کنی (مثل String.IsNullOrEmpty())، باید از String استفاده کنی چون به کلاس اشاره داره.
این تفاوت کوچیک شاید توی اجرا تأثیری نداشته باشه، ولی توی سبک کدنویسی و خوانایی پروژه خیلی مهمه.
👍2👨‍💻21👏1
🧠 تفاوت Value Type و Reference Type در سی شارپ — پایه‌ای ولی حیاتی

اگه بخوای کدنویسی سی شارپ رو عمیق‌تر یاد بگیری، باید بدونی که داده‌ها به دو دسته ی اصلی تقسیم میشن:
🔹 Value Type
🔹 Reference Type
ولی فرقشون چیه؟

Value Type:
داده‌ها مستقیماً در حافظه ذخیره میشن.
وقتی یه متغیر رو به متغیر دیگه اختصاص میدی، یه کپی از مقدار ساخته میشه.
مثال ها: int, double, bool, struct

int a = 5;
int b = a;
b = 10;
// a هنوز 5 هست

Reference Type:
داده‌ها به صورت ارجاعی ذخیره میشن—یعنی متغیر فقط یه آدرس به حافظه داره.
وقتی یه متغیر رو به متغیر دیگه اختصاص میدی، هر دو به یه محل حافظه اشاره میکنن.
مثال ها: class, string, array, object

int[] arr1 = {1, 2, 3};
int[] arr2 = arr1;
arr2[0] = 99;
// arr1 هم تغییر کرده

📌 نکته ی مهم: درک تفاوت این دو نوع داده، توی طراحی کلاس ها، مدیریت حافظه، و جلوگیری از باگ های عجیب خیلی مهمه.
👍32🔥1
🔄 تفاوت بین ==, .Equals(), و .CompareTo() در سی شارپ — مقایسه‌ی حرفه‌ای

اگه بخوای دو مقدار رو توی سی شارپ مقایسه کنی، گزینه‌های مختلفی داری: ولی هرکدوم رفتار خاص خودش رو داره.

==
برای مقایسه‌ی مقدار استفاده میشه.
برای انواع پایه مثل int, string معمولاً خوب جواب میده.
ولی برای کلاس‌های سفارشی ممکنه فقط آدرس حافظه رو مقایسه کنه.

.Equals()
یه متد برای مقایسه‌ی مقدار منطقی بین دو شیء.
میتونه Override بشه تا رفتار سفارشی داشته باشه.

.CompareTo()
برای مقایسه‌ی ترتیبی استفاده میشه.
خروجی عددی میده:
0 یعنی برابر
< 0 یعنی شیء اول کوچکتره
> 0 یعنی شیء اول بزرگتره
مثال:

string a = "apple";
string b = "banana";

Console.WriteLine(a == b); // false
Console.WriteLine(a.Equals(b)); // false
Console.WriteLine(a.CompareTo(b)); // -1

📌 نکتهی حرفه‌ای: اگه میخوای فقط برابری رو بررسی کنی، == یا .Equals() کافیه. ولی اگه میخوای ترتیب یا مرتب‌سازی انجام بدی، .CompareTo() انتخاب درستیه.
2👍2🦄1
🧠 تفاوت بین readonly و const در سی شارپ — کنترل بهتر روی داده‌های ثابت

اگه بخوای یه مقدار رو توی برنامه ت ثابت نگه داری، احتمالاً بین const و readonly شک میکنی. ولی تفاوتشون فقط توی اسم نیست—توی زمان مقداردهی و نوع استفاده فرق های مهمی دارن.

const
مقدارش باید در زمان کامپایل مشخص باشه
فقط برای انواع پایه مثل int, string, double مناسبه
به صورت ضمنی static هست
نمیتونه مقدارش از بیرون کلاس یا در زمان اجرا تغییر کنه

const double Pi = 3.14;

readonly
مقدارش میتونه در زمان اجرا تعیین بشه
معمولاً توی سازندهی کلاس مقداردهی میشه
میتونه برای انواع پیچیده‌تر هم استفاده بشه
فقط یک بار مقداردهی میشه و بعدش قابل تغییر نیست

readonly DateTime createdAt;

public MyClass() {
createdAt = DateTime.Now;
}

📌 نکتهی حرفه‌ای: اگه مقدار از قبل مشخصه و هیچ وقت تغییر نمیکنه، const انتخاب خوبیه. اگه مقدار باید در زمان اجرا تعیین بشه ولی بعدش ثابت بمونه، از readonly استفاده کن.
3👍3💅1
🧱 تفاوت بین class و struct در سی شارپ — انتخاب درست برای طراحی بهتر

اگه بخوای یه نوع داده‌ی جدید بسازی، معمولاً بین class و struct باید انتخاب کنی. ولی این انتخاب فقط ظاهری نیست—تأثیر زیادی روی عملکرد و رفتار برنامه ت داره.

class
Reference Type
در حافظه‌ی Heap ذخیره میشه
وقتی به متغیر دیگه ای اختصاص داده بشه، فقط آدرسش منتقل میشه
میتونه دارای سازنده، وراثت، و رفتار پیچیده باشه

struct
Value Type
در حافظه‌ی Stack ذخیره میشه
وقتی به متغیر دیگه ای اختصاص داده بشه، یه کپی کامل ساخته میشه
سبک تره، ولی محدودتر: نمیتونه از کلاس دیگه ارث بری کنه
مثال:

struct Point {
public int X;
public int Y;
}

class Person {
public string Name;
public int Age;
}

📌 نکتهی حرفه‌ای: اگه نوع داده ت ساده، سبک، و بدون رفتار پیچیده ست (مثل مختصات یا رنگ)، از struct استفاده کن. اگه نیاز به انعطاف، وراثت، یا مدیریت حافظه داری، class انتخاب بهتریه.
3👍1👾1
🧩 تفاوت بین interface و abstract class در سی شارپ — طراحی منعطف تر، کدنویسی تمیزتر

اگه بخوای یه ساختار پایه برای کلاس هات تعریف کنی، معمولاً بین interface و abstract class باید انتخاب کنی. ولی این انتخاب فقط به ظاهر نیست—روی انعطاف پذیری، تست پذیری، و توسعه‌پذیری پروژه ت تأثیر مستقیم داره.

interface
فقط شامل تعریف متدها و پراپرتی ها هست
هیچ پیاده سازی نداره (تا قبل از C# 8)
یه کلاس میتونه چندین اینترفیس رو پیاده‌سازی کنه
مناسب برای تعریف قراردادهای رفتاری

public interface IShape {
double GetArea();
}

abstract class
میتونه هم تعریف داشته باشه، هم پیاده‌سازی
فقط یه کلاس پایه میتونه ازش ارث بری کنه
میتونه فیلد، سازنده، و متدهای کامل داشته باشه
مناسب برای اشتراک گذاری منطق پایه بین کلاس‌ها

public abstract class Animal {
public abstract void Speak();
public void Eat() {
Console.WriteLine("Eating...");
}
}

📌 نکتهی حرفه‌ای: اگه فقط یه قرارداد رفتاری میخوای، از interface استفاده کن. اگه نیاز به منطق پایه و اشتراک گذاری کد داری، abstract class انتخاب بهتریه.
2👍2
🔁 تفاوت بین override, new, و virtual در سی شارپ — کنترل دقیقتر روی وراثت

اگه با وراثت در سی شارپ کار کرده باشی، حتماً با کلمات کلیدی virtual, override, و new برخورد داشتی. ولی تفاوتشون فقط توی اسم نیست—هرکدوم رفتار متفاوتی در زمان اجرا دارن.

virtual
به متدی در کلاس پایه اجازه میده که قابل بازنویسی باشه
یعنی کلاس‌های فرزند میتونن اون متد رو با override تغییر بدن

public class Animal {
public virtual void Speak() {
Console.WriteLine("Animal sound");
}
}

override
برای بازنویسی متد virtual در کلاس فرزند استفاده میشه
رفتار متد پایه رو تغییر میده

public class Dog : Animal {
public override void Speak() {
Console.WriteLine("Bark");
}
}

new
برای مخفی کردن متد پایه استفاده میشه
یعنی متد جدیدی تعریف میکنی که مستقل از متد پایه عمل میکنه
در زمان اجرای شیء به صورت کلاس پایه، متد پایه اجرا میشه

public class Cat : Animal {
public new void Speak() {
Console.WriteLine("Meow");
}
}

📌 نکتهی حرفه‌ای: اگه میخوای رفتار متد پایه رو تغییر بدی، از override استفاده کن. اگه میخوای متد جدیدی تعریف کنی که مستقل باشه، از new استفاده کن. و برای اینکه متد پایه قابل بازنویسی باشه، باید virtual باشه.

🔗 LinkedIn Post
👍32
📝 String Interpolation در سی شارپ — نوشتن رشته‌ها ساده، خوانا و حرفه‌ای!

یکی از مشکلاتی که خیلی وقت‌ها تو کدنویسی پیش میاد، ترکیب متن و مقادیر متغیره. قبلاً مجبور بودیم با + یا String.Format همه چیزو کنار هم بذاریم، که هم طولانی میشد، هم گاهی کدمون شلوغ و سخت خوانا میشد.
اینجاست که String Interpolation تو سی شارپ به کمک ما میاد! کد رو هم کوتاه‌تر میکنه، هم خواناتر.

چرا String Interpolation جذابه؟
1️⃣خوانایی بیشتر کد: میتونی متغیرها رو مستقیم داخل {} بذاری.
2️⃣کد کوتاه‌تر: نیازی به concat طولانی یا String.Format پیچیده نیست.
3️⃣قابلیت گذاشتن محاسبه و متد داخل {}: یعنی میتونی کارای ساده یا محاسبات رو مستقیم تو رشته داشته باشی.
مثال ساده:

string name = "Hamed";
int age = 20;

Console.WriteLine($"Hi! My name is {name} and I am {age} years old.");
خروجی:
Hi! My name is Hamed and I am 20 years old.

مثال حرفه‌ای‌تر: محاسبه داخل Interpolation

int currentYear = 2025;
int birthYear = 2005;

Console.WriteLine($"Next year, I will be {currentYear - birthYear} years old.");
خروجی:
Next year, I will be 20 years old.
نکات کاربردی:
میتونی فرمت عدد و تاریخ رو هم تو {} مشخص کنی:

double price = 1234.567;
Console.WriteLine($"Product price: {price:C2}");
// C2 برای نمایش به صورت Currency

تو پروژه‌های بزرگ، String Interpolation باعث میشه کد خواناتر و کم خطاتر باشه.
جایگزین عالی برای String.Format هست، مخصوصاً وقتی readability اهمیت داره.

🔗 LinkedIn Post
4👍2
در این هفته قرار از دو پروژه جدید که یکی از اون ها تکمیل شده رونمایی کنیم 🔥

یکی مربوط به ترجمه کتاب هاست.😉
و دیگری هم، دوره های آموزشی رایگان دات نت.😍
👏31👍1
📘 کتاب "C# 12 in a Nutshell" – ترجمه فارسی

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

🔗 لینک دسترسی:

github.com/hheydarian/csharp-12-in-a-nutshell-persian

امیدوارم به درد علاقه‌مندان دات‌نت و برنامه‌نویس‌های فارسی‌زبان بخوره 💙
11🔥3👨‍💻1🆒1
دوره MCP مایکروسافت | زیرنویس فارسی

با لایک هاتون حمایت کنید❤️


🔗 یوتیوب

🔗 آپارات (نیم بها)
🔥82👍1
دوره گیت هاب کوپایلوت در ویژوال استودیو | زیرنویس فارسی

🔗 یوتیوب

🔗 آپارات (نیم بها)
3❤‍🔥1🔥1💯1🆒1
۱۵۰ نفر شدیم 🥳
خیلی ممنون بخاطر حمایتتون. ❤️🙌
7👏2
«ما لازم نیست از بقیه باهوشتر باشیم.
ما باید از بقیه منظم‌تر باشیم.»
— وارن بافت

این اصل، هم در سرمایه‌گذاری و هم در فلسفه رواقی‌گری بنیادین است.
موضوع نبوغ نیست؛ موضوع رفتار است.

چگونه میتوان هر روز انضباط رواقی را تمرین کرد:

🧘♂️ واکنش هایت را کنترل کن
همه‌چیز ارزش پاسخ دادن ندارد.

📆 ثبات بساز
روالهای منظم مهم‌تر از تلاشهای پراکنده‌اند.

📵 از حواس‌پرتی دوری کن
از زمانت مثل ارزشمندترین داراییات محافظت کن — چون همین است.

🧭 به هدفت پایبند بمان
دنبال نکن — انتخاب کن.

🛠 کار را انجام بده، حتی وقتی خسته‌کننده است
بیشتر مردم در این نقطه متوقف میشوند. این همان برتری توست.

ذهن، مانند یک عضله، با تکرار قویتر میشود.
و انضباط همان تمرین روزانه است.

(با سپاس از @Lara R در پینترست)
👍2
مایکروسافت از آیکون‌های جدید Office رونمایی کرد 😍
5