این جمعه وقت نکردم پروژه جدید بسازم ما را ببخشید انشاا... جمعه دیگر
ایجاد کنترلر کامل با ویو و
public class NameController : Controller
{
private readonly AppDbContext _context;
public NameController(AppDbContext context)
{
_context = context;
}
public IActionResult Index() =>
View(_context.Names.ToList());
public IActionResult Details(int id) =>
View(_context.Names.Find(id) ?? throw new Exception("NotFound"));
public IActionResult Create()=> View();
[HttpPost]
public IActionResult Create(Name name)
{
if (ModelState.IsValid)
{
_context.Add(name);
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(name);
}
public IActionResult Edit(int id)
{
var name = _context.Names.Find(id);
return name != null ? View(name) : NotFound();
}
[HttpPost]
public IActionResult Edit(Name name)
{
if (ModelState.IsValid)
{
_context.Update(name);
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(name);
}
[HttpPost]
public IActionResult Delete(int id)
{
var name = _context.Names.Find(id);
if (name == null) return NotFound();
_context.Remove(name);
_context.SaveChanges();
return RedirectToAction("Index");
}
}
من دو کنترلر متفاوت دارم
پروژه ASP.Net Core MVC (وب و سی شارپ)
ایجاد کنترلر کامل با ویو و public class NameController : Controller { private readonly AppDbCont
NameProject (5).zip
حجم:
24.9M
این پروژه دو نوع کنترلر دارد یکی تا حدی کوچک کردم کدها را تا تداخلی ایجاد نشود و دیگری کد ها خود ویژوال استودیو با ویو ساخته
پروژه ASP.Net Core MVC (وب و سی شارپ)
ایجاد کنترلر کامل با ویو و public class NameController : Controller { private readonly AppDbCont
بیایم با مثالهای واقعی و توضیح مرحلهبهمرحله بررسی کنیم که تفاوت بین context.Add(name) و context.Names.Add(name) دقیقاً چیه، چه زمانی استفاده میشن، و کدوم بهتره.
---
🧠 اول تعریف هر کدام
✅ 1. _context.Add(name)
- این یک متد عمومی از EF Core هست.
- شیء name رو به کل کانتکست اضافه میکنه.
- EF
خودش تشخیص میده که name مربوط به جدول Names هست.
- مناسب برای زمانی که نوع شیء مشخصه و نمیخوای مستقیم به جدول خاصی اشاره کنی.
✅ 2. _context.Names.Add(name)
- این متد مستقیماً شیء رو به جدول Names اضافه میکنه.
- یعنی به DbSet<Name> که در AppDbContext تعریف شده، اشاره مستقیم داری.
- واضحتره و کنترل بیشتری بهت میده.
---
🔍 مثال واقعی از تعریف DbContext
csharp
public class AppDbContext : DbContext
{
public DbSet<Name> Names { get; set; }
}
در اینجا Names یک جدول (یا مجموعه) از نوع Name هست.
---
🎯 مقایسه عملی
| ویژگی | context.Add(name) | context.Names.Add(name) |
|-------|-----------------------|-----------------------------|
| نوع | عمومی | مستقیم به جدول |
| خوانایی | کمتر | بیشتر |
| کنترل | کمتر | بیشتر |
| مناسب برای | پروژههای ساده یا سریع | پروژههای بزرگ یا دقیق |
| تشخیص جدول | خودکار توسط EF | مشخص توسط برنامهنویس |
---
✅ کدام بهتر است؟
- در پروژههای کوچک یا زمانی که فقط یک جدول داری، هر دو روش درست و قابل استفاده هستن.
- اما در پروژههای بزرگ یا زمانی که چندین جدول داری، استفاده از
csharp _context.Names.Add(name);بهتر و حرفهایتره چون: - خوانایی کد بیشتره - احتمال اشتباه کمتره - دیباگ راحتتره --- 🧠 نکته پیشرفته اگر از _context.Add(...) استفاده کنی برای شیءهایی که EF نمیتونه نوعشون رو تشخیص بده (مثلاً شیء پیچیده یا اشتباه)، ممکنه خطا بگیری یا داده درست ذخیره نشه.
DateRecord.zip
حجم:
24.7M
پروژه کوچک برای نمایش تاریخ شمسی و میلادی
1.5M حجم رسانه بالاست
مشاهده در ایتا
این پروژه که ساختم نوع تاریخ ربطی به سیستم کامپیوتر ندارد
داتنت ۱۰، ویژوال استودیو ۲۰۲۶ و سیشارپ ۱۴ با تمرکز بر هوش مصنوعی، عملکرد بالا و قابلیتهای مدرن عرضه شدهاند. این نسخهها جهشی بزرگ در تجربه توسعهدهندگان ایجاد کردهاند.
در ادامه، مهمترین ویژگیهای هر کدام را مرور میکنیم:
---
🚀 داتنت ۱۰ (.NET 10)
- نسخه LTS (پشتیبانی بلندمدت) تا نوامبر 2028.
- ادغام عمیق با هوش مصنوعی برای توسعه اپلیکیشنهای هوشمند.
- پشتیبانی از زبانهای C# 14 و F# 10 با قابلیتهای جدید.
- بهبود عملکرد و امنیت کوانتومی برای اپهای حساس و توزیعشده.
- پیشرفت در ASP.NET Core، .NET MAUI و EF Core برای توسعه وب، موبایل و دیتابیس.
---
🧠 ویژوال استودیو ۲۰۲۶ (Visual Studio 2026)
- بازطراحی رابط کاربری با Fluent UI و اضافه شدن 11 تم رنگی جدید.
- ادغام کامل GitHub Copilot بهعنوان دستیار هوشمند کدنویسی.
- کاهش بیش از 50٪ توقفهای رابط کاربری برای تجربه روانتر.
- بیش از 300 قابلیت جدید و رفع 5000 باگ در نسخه نهایی.
- افزایش سرعت و مدرنسازی محیط توسعه با تمرکز بر بهرهوری.
---
🧩 سیشارپ ۱۴ (C# 14)
- انتسابهای ترکیبی سفارشی (User-Defined Compound Assignments):
- امکان پیادهسازی بهینهتر عملگرهایی مثل += یا *=.
- کاهش ساخت اشیاء غیرضروری در حافظه.
- اعضای اکستنشن (Extension Members):
- افزودن مستقیم ویژگیها (Property)، اندیسگذارها (Indexer) و متدها به انواع موجود.
- ساختار تمیزتر و قابل نگهداریتر نسبت به متدهای اکستنشن کلاسیک.
از این به بعد پروژه ها با دات نت ۸ و ۱۰ نوشته میشود پروژه های کوچک و مقدماتی با دو نسخه نوشته می شود و در پروژه متوسط و پیشرفته با دات نت ۱۰ نوشته می شود
PriceProject.zip
حجم:
23.6M
من فکرم را کردم و دیدم چون هنوز دات نت 8 پشتیبانی می شود من پروژه ساده قیمت و مجموع و میانگین را با ویژوال اتودیو 2026 و دات نت 8 نوشتم
RandomItems.zip
حجم:
23.6M
پروژه تولید اعداد تصادف و ذخیره در دیتابیس دات نت 8
پروژه ASP.Net Core MVC (وب و سی شارپ)
پروژه تولید اعداد تصادف و ذخیره در دیتابیس دات نت 8
تا اینجا کدی که نوشتی فقط کاراکترهای منفرد رو از رشتهی
charsانتخاب میکنه. یعنی خروجی همیشه ترکیبی از حروف یا اعداد جداگانه است. اگر بخوای به جای کاراکتر، کلمات کامل به صورت تصادفی انتخاب بشن، باید منبع دادهات (
chars) رو تغییر بدی و به جای یک رشته، یک لیست یا آرایه از کلمات تعریف کنی. --- ## 🔹 نمونه کد برای انتخاب کلمات تصادفی
// مجموعهای از کلمات
string[] words = { "سلام", "علیرضا", "محمد", "طاهـا", "پروژه", "کد" };
// تعداد کلمات تصادفی که میخوای بسازی
int length = 5;
// انتخاب تصادفی کلمات
string result = string.Join(" ",
Enumerable.Range(0, length)
.Select(_ => words[_rnd.Next(words.Length)])
);
---
## 🔹 توضیح خط به خط
- string[] words →
آرایهای از کلمات تعریف میکنیم.
- Enumerable.Range(0, length) →
تعداد دفعات انتخاب (مثلاً ۵ بار).
- Select(_ => words[_rnd.Next(words.Length)]) →
هر بار یک کلمهی تصادفی از آرایه انتخاب میکنه.
- string.Join(" ", ...) →
همهی کلمات انتخابشده رو با فاصله به هم وصل میکنه و یک رشتهی کامل میسازه.
---
## 🎯 خروجی نمونه
اگر آرایهی بالا باشه، خروجی میتونه چیزی مثل این باشه:
"محمد پروژه سلام علیرضا کد"یا
"سلام طاهـا علیرضا پروژه محمد"--- ## 🔹 فرق با حالت کاراکتر - در حالت قبلی: خروجی مثل
"سملاب"(ترکیب کاراکترها). - در حالت جدید: خروجی مثل
"سلام علیرضا پروژه"(ترکیب کلمات کامل).