Notice: file_put_contents(): Write of 3083 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 20480 of 23563 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
DotNet | دات نت@dotnetcode P.3073
DOTNETCODE Telegram 3073
قسمت شماره ۱: خداحافظی با کدهای تکراری در C# 14!

سلام به همه برنامه‌نویس‌های خفن دات‌نتی! 👋

خبرهای داغ داریم! 🔥 .NET 10 و C# 14 با یه سری ویژگی‌های فوق‌العاده از راه رسیدن که کدنویسی رو خیلی شیرین‌تر می‌کنه. بیاید چندتا از باحال‌ترین‌هاش رو با هم ببینیم:

۱. اپراتور `??=` (انتساب شرطی Null)

یادتونه چقدر if می‌نوشتیم تا چک کنیم یه متغیر null هست یا نه و بعد بهش مقدار بدیم؟ خب، اون دوران تموم شد!

// ----------------
// قبلاً اینجوری بود:
// ----------------
List<string> myStrings = null;
if (myStrings == null)
{
myStrings = new List<string>();
}

// ----------------
// حالا در C# 14:
// ----------------
List<string> myStrings = null;
myStrings ??= new List<string>(); // به همین راحتی!
// اگه null بود، یکی جدید بساز.


۲. کلمه‌ی کلیدی `field` (خداحافظی با Backing Fields!)

یکی از بهترین امکانات جدید! دیگه لازم نیست برای یه Property ساده، یه فیلد private جدا تعریف کنیم. خود C# این کار رو با کلمه field برامون انجام میده:

// ----------------
// قبلاً برای ولیدیشن:
// ----------------
private string _name;
public string Name
{
get => _name;
set
{
if (string.IsNullOrWhiteSpace(value))
throw new ArgumentException("Name cannot be empty");
_name = value;
}
}

// ----------------
// حالا در C# 14:
// ----------------
public string Name
{
get => field; // 'field' همون backing field مخفی ماست
set
{
if (string.IsNullOrWhiteSpace(value))
throw new ArgumentException("Name cannot be empty");
field = value; // مستقیم بهش مقدار می‌دیم 🤯
}
}


۳. اپلیکیشن‌های تک‌فایلی (File-Based Apps)

برای یه تست ساده یا یه اسکریپت کوچیک دیگه نیازی به ساختن پروژه (.csproj) و سلوشن (.sln) نیست! فقط یه فایل .cs بسازید و اجراش کنید:

// یه فایل بساز به اسم Program.cs
Console.WriteLine("سلام دنیا، بدون پروژه!");

// توی ترمینال اجرا کن:
// dotnet run Program.cs

قسمت شماره ۲: .NET 10 برای وب‌کارهای حرفه‌ای!

خب، برگشتیم با قسمت دوم معرفی .NET 10! 💻 این بار می‌خوایم ببینیم تو دنیای وب (ASP.NET)، دیتابیس (EF Core) و بلیزور (Blazor) چه خبره.

۱. ولیدیشن اتوماتیک در Minimal APIs (ASP.NET Core)

قبلاً اعتبارسنجی (Validation) تو Minimal API ها یه کم دردسر داشت. حالا خیلی شیک و اتوماتیک شده. فقط کافیه مدل‌هاتون Data Annotation داشته باشن:
// فقط کافیه این سرویس رو اضافه کنی:
builder.Services.AddValidation();

// و تمام!
app.MapPost("/users", (CreateUserRequest user) =>
{
// اگه 'user' معتبر نباشه (مثلاً ایمیل خالی باشه)
// .NET خودکار خطای 400 Bad Request برمی‌گردونه.
// اصلاً به این خط کد نمی‌رسه!
return Results.Ok(user);
});

// مدل ما:
public class CreateUserRequest
{
[Required]
[EmailAddress]
public string Email { get; set; }

[MinLength(6)]
public string Password { get; set; }
}


۲. آپدیت ستون‌های JSON در EF Core

کار کردن با ستون‌های JSON تو EF Core 10 خیلی قوی‌تر شده. مثلاً حالا می‌تونیم یه تیکه از JSON رو مستقیم آپدیت کنیم، بدون اینکه کل آبجکت رو از دیتابیس بخونیم و برگردونیم!

// فرض کنید یه ستون JSON به اسم 'Profile' داریم
await db.Users
.Where(u => u.Id == 123)
.ExecuteUpdateAsync(s => s
// مستقیم آدرس توی پروفایل رو آپدیت کن
.SetProperty(u => u.Profile["Address"]["City"], "Tehran")
);
// این یعنی پرفورمنس بالاتر! 🔥


۳. هات ریلود (Hot Reload) برای Blazor WebAssembly

اینم خبری که همه‌ی بچه‌های Blazor منتظرش بودن! 🥳 از .NET 10 به بعد، Hot Reload برای Blazor WebAssembly (Wasm) هم به خوبی کار می‌کنه.

یعنی هم کد C# و هم فایل‌های Razor. رو تغییر می‌دید، سیو می‌کنید و *بدون رفرش کردن مرورگر*، تغییرات رو تو صفحه می‌بینید. این یعنی سرعت توسعه فوق‌العاده! ⚡️

-----

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
20👍7🔥1



tgoop.com/dotnetcode/3073
Create:
Last Update:

قسمت شماره ۱: خداحافظی با کدهای تکراری در C# 14!

سلام به همه برنامه‌نویس‌های خفن دات‌نتی! 👋

خبرهای داغ داریم! 🔥 .NET 10 و C# 14 با یه سری ویژگی‌های فوق‌العاده از راه رسیدن که کدنویسی رو خیلی شیرین‌تر می‌کنه. بیاید چندتا از باحال‌ترین‌هاش رو با هم ببینیم:

۱. اپراتور `??=` (انتساب شرطی Null)

یادتونه چقدر if می‌نوشتیم تا چک کنیم یه متغیر null هست یا نه و بعد بهش مقدار بدیم؟ خب، اون دوران تموم شد!

// ----------------
// قبلاً اینجوری بود:
// ----------------
List<string> myStrings = null;
if (myStrings == null)
{
myStrings = new List<string>();
}

// ----------------
// حالا در C# 14:
// ----------------
List<string> myStrings = null;
myStrings ??= new List<string>(); // به همین راحتی!
// اگه null بود، یکی جدید بساز.


۲. کلمه‌ی کلیدی `field` (خداحافظی با Backing Fields!)

یکی از بهترین امکانات جدید! دیگه لازم نیست برای یه Property ساده، یه فیلد private جدا تعریف کنیم. خود C# این کار رو با کلمه field برامون انجام میده:

// ----------------
// قبلاً برای ولیدیشن:
// ----------------
private string _name;
public string Name
{
get => _name;
set
{
if (string.IsNullOrWhiteSpace(value))
throw new ArgumentException("Name cannot be empty");
_name = value;
}
}

// ----------------
// حالا در C# 14:
// ----------------
public string Name
{
get => field; // 'field' همون backing field مخفی ماست
set
{
if (string.IsNullOrWhiteSpace(value))
throw new ArgumentException("Name cannot be empty");
field = value; // مستقیم بهش مقدار می‌دیم 🤯
}
}


۳. اپلیکیشن‌های تک‌فایلی (File-Based Apps)

برای یه تست ساده یا یه اسکریپت کوچیک دیگه نیازی به ساختن پروژه (.csproj) و سلوشن (.sln) نیست! فقط یه فایل .cs بسازید و اجراش کنید:

// یه فایل بساز به اسم Program.cs
Console.WriteLine("سلام دنیا، بدون پروژه!");

// توی ترمینال اجرا کن:
// dotnet run Program.cs

قسمت شماره ۲: .NET 10 برای وب‌کارهای حرفه‌ای!

خب، برگشتیم با قسمت دوم معرفی .NET 10! 💻 این بار می‌خوایم ببینیم تو دنیای وب (ASP.NET)، دیتابیس (EF Core) و بلیزور (Blazor) چه خبره.

۱. ولیدیشن اتوماتیک در Minimal APIs (ASP.NET Core)

قبلاً اعتبارسنجی (Validation) تو Minimal API ها یه کم دردسر داشت. حالا خیلی شیک و اتوماتیک شده. فقط کافیه مدل‌هاتون Data Annotation داشته باشن:
// فقط کافیه این سرویس رو اضافه کنی:
builder.Services.AddValidation();

// و تمام!
app.MapPost("/users", (CreateUserRequest user) =>
{
// اگه 'user' معتبر نباشه (مثلاً ایمیل خالی باشه)
// .NET خودکار خطای 400 Bad Request برمی‌گردونه.
// اصلاً به این خط کد نمی‌رسه!
return Results.Ok(user);
});

// مدل ما:
public class CreateUserRequest
{
[Required]
[EmailAddress]
public string Email { get; set; }

[MinLength(6)]
public string Password { get; set; }
}


۲. آپدیت ستون‌های JSON در EF Core

کار کردن با ستون‌های JSON تو EF Core 10 خیلی قوی‌تر شده. مثلاً حالا می‌تونیم یه تیکه از JSON رو مستقیم آپدیت کنیم، بدون اینکه کل آبجکت رو از دیتابیس بخونیم و برگردونیم!

// فرض کنید یه ستون JSON به اسم 'Profile' داریم
await db.Users
.Where(u => u.Id == 123)
.ExecuteUpdateAsync(s => s
// مستقیم آدرس توی پروفایل رو آپدیت کن
.SetProperty(u => u.Profile["Address"]["City"], "Tehran")
);
// این یعنی پرفورمنس بالاتر! 🔥


۳. هات ریلود (Hot Reload) برای Blazor WebAssembly

اینم خبری که همه‌ی بچه‌های Blazor منتظرش بودن! 🥳 از .NET 10 به بعد، Hot Reload برای Blazor WebAssembly (Wasm) هم به خوبی کار می‌کنه.

یعنی هم کد C# و هم فایل‌های Razor. رو تغییر می‌دید، سیو می‌کنید و *بدون رفرش کردن مرورگر*، تغییرات رو تو صفحه می‌بینید. این یعنی سرعت توسعه فوق‌العاده! ⚡️

-----

🎺برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامه‌نویسی، به کانال ما بپیوندید!

📚💻 @dotnetcode 🖥👨‍💻

BY DotNet | دات نت




Share with your friend now:
tgoop.com/dotnetcode/3073

View MORE
Open in Telegram


Telegram News

Date: |

How to Create a Private or Public Channel on Telegram? Telegram has announced a number of measures aiming to tackle the spread of disinformation through its platform in Brazil. These features are part of an agreement between the platform and the country's authorities ahead of the elections in October. The optimal dimension of the avatar on Telegram is 512px by 512px, and it’s recommended to use PNG format to deliver an unpixelated avatar. Just at this time, Bitcoin and the broader crypto market have dropped to new 2022 lows. The Bitcoin price has tanked 10 percent dropping to $20,000. On the other hand, the altcoin space is witnessing even more brutal correction. Bitcoin has dropped nearly 60 percent year-to-date and more than 70 percent since its all-time high in November 2021. Earlier, crypto enthusiasts had created a self-described “meme app” dubbed “gm” app wherein users would greet each other with “gm” or “good morning” messages. However, in September 2021, the gm app was down after a hacker reportedly gained access to the user data.
from us


Telegram DotNet | دات نت
FROM American