UserApp.zip
حجم:
28.4M
پروژه ایجاد شده individual accounts
سوال: آیا می توانید نقش اضافه کنید و کنترل مدیریت انجام دهید؟
UserProfile.zip
حجم:
28.5M
دوستان من به مشکل خوردم در مورد دو کد متفاوت در program.cs کد پیش فرض
builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>();
و کد جدید که نقش را نشان دهد
builder.Services.AddIdentity<IdentityUser, IdentityRole>(options =>
{
options.SignIn.RequireConfirmedAccount = true;
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
ولی رجیستر و لاگین از کار می افتد
اگر راهی پیدا کردید من درست کنم در ایتا به من پیام دهید
UserManagementProject.zip
حجم:
28.5M
مجبور شدم یک پروژه خالی mvc ایجاد کنم و نقش بدهم و دیتابیس individual accounts هست
ایمیل و رمز عبور ادمین در program.cs
// افزودن کاربر پیشفرض Admin
var adminEmail = "admin@gmail.com";
var adminPassword = "Admin@123";
ShopApp.zip
حجم:
26.2M
یک فروشگاه شخصی کوچک درست کردم
ShopHome.zip
حجم:
26.1M
پروژه ای که ساختم هدف من یک قالب تک صفحه ای فروشگاه است که موفق نشدم بهترش کنم و ظاهر نسبتا خوب است که شامل:
✅ صفحه اصلی: نمایش اسلایدشو، پیشنهادات ویژه، گروههای محصولات
✅ مدیریت محصولات: افزودن محصول همراه با تصویر، قیمت و دستهبندی
✅ آپلود تصویر: ذخیره تصاویر در wwwroot/images و نمایش مسیر آن
✅ ویرایش محصولات: امکان تغییر نام، قیمت، گروه و نمایش در اسلایدشو
✅ واکنشگرایی: بهینهسازی صفحات برای نمایش در موبایل و دسکتاپ که خوب در نیامده است
✅ پایگاه داده: ذخیره اطلاعات محصولات و دستهبندیها در SQL Server
ShopHome (2).zip
حجم:
26.1M
ادامه پروژه: قابلیت جستجو اضافه شد
ShopHome (3).zip
حجم:
26.2M
ادامه پروژه: نمودار اضافه شد
ASP_NET Core MVC_ معماری و عملکرد.wav
حجم:
20.8M
ASP.NET Core MVC: معماری و عملکرد
ساخته شده از هوش مصنوعی
پروژه ASP.Net Core MVC (وب و سی شارپ)
ASP.NET Core MVC: معماری و عملکرد ساخته شده از هوش مصنوعی
ASP.NET Core MVC
چیست و چگونه کار میکند؟
ASP.NET Core MVC
یک فریمورک قدرتمند برای توسعهی برنامههای وب بر پایهی معماری مدل-نما-کنترلر (MVC) است. این معماری با هدف تفکیک وظایف مختلف اپلیکیشن طراحی شده تا پروژهها مقیاسپذیر، قابل نگهداری و سازمانیافته باشند.
---
### 📌 اجزای اصلی ASP.NET Core MVC
ASP.NET Core MVC
بر سه بخش اصلی Model، View و Controller استوار است که هر کدام وظیفهای خاص دارند:
✅ مدل (Model)
🔹 مدل شامل دادهها و منطق کسبوکار است.
🔹 مسئول ذخیره و مدیریت دادهها، مانند محصولات یک فروشگاه آنلاین، کاربران سیستم، یا اطلاعات سفارشها میباشد.
🔹 معمولاً با یک پایگاه داده ارتباط دارد و اطلاعات را ذخیره، بازیابی و پردازش میکند.
✅ نما (View)
🔹 ویو مسئول نمایش دادهها به کاربر است.
🔹 شامل قالبهای HTML، CSS و جاوااسکریپت است که برای طراحی صفحات وب استفاده میشوند.
🔹 دادهها را از کنترلر دریافت کرده و آنها را در قالب رابط کاربری (UI) نمایش میدهد.
✅ کنترلر (Controller)
🔹 کنترلر مسئول مدیریت درخواستهای کاربران و اتصال بین مدل و ویو است.
🔹 وقتی کاربر صفحهای را باز میکند یا یک عملیات را انجام میدهد، کنترلر پردازش را انجام داده و پاسخ مناسب را ارسال میکند.
🔹 کنترلر تصمیم میگیرد که چه دادههایی باید به ویو ارسال شوند.
---
### 📌 فرآیند اجرای درخواست در ASP.NET Core MVC
وقتی کاربر به یک صفحه وب مراجعه میکند، چندین مرحله در پشتصحنه رخ میدهد:
✅ ۱. ارسال درخواست (Request):
🔹 کاربر آدرس وبسایت را در مرورگر وارد میکند، مثلاً: www.example.com/products/5.
🔹 مرورگر درخواست را به سرور ارسال میکند تا اطلاعات مربوط به محصول شماره ۵ را دریافت کند.
✅ ۲. مسیریابی (Routing) درخواست:
🔹 ASP.NET Core MVC
بررسی میکند که کدام کنترلر و اکشن باید اجرا شود.
🔹 بر اساس مسیر درخواست، سیستم تعیین میکند که درخواست باید به کنترلر محصولات منتقل شود.
✅ ۳. پردازش دادهها در مدل:
🔹 کنترلر اطلاعات محصول را از مدل دریافت میکند.
🔹 مدل معمولاً این دادهها را از پایگاه داده واکشی میکند.
✅ ۴. ارسال دادهها به نما (View):
🔹 کنترلر اطلاعات پردازششده را به ویو ارسال میکند.
🔹 ویو از این دادهها برای نمایش محصول در صفحه وب استفاده میکند.
✅ ۵. نمایش خروجی به کاربر:
🔹 مرورگر نتیجه را دریافت کرده و آن را در قالب HTML، CSS و جاوااسکریپت نمایش میدهد.
🔹 کاربر حالا محصول موردنظر را مشاهده میکند.
---
### 📌 مزایای استفاده از ASP.NET Core MVC
این فریمورک چندین مزیت مهم دارد که باعث میشود یکی از محبوبترین گزینهها برای توسعهی برنامههای تحت وب باشد:
✅ ۱. معماری تفکیکشده (Separation of Concerns):
🔹 مدل، ویو و کنترلر هر کدام وظیفهی مشخصی دارند که باعث خوانایی و مدیریت بهتر کدها میشود.
✅ ۲. امکان توسعهی سریعتر و تستپذیری بالا:
🔹 چون بخشهای مختلف از هم جدا هستند، میتوان هر بخش را بهصورت مستقل تست و توسعه داد.
✅ ۳. انعطافپذیری بالا در مسیریابی:
🔹 میتوان مسیرهای درخواستها را دقیقاً مطابق نیازهای پروژه تنظیم کرد.
✅ ۴. مدیریت قدرتمند دادهها و پایگاه داده:
🔹 قابلیت یکپارچهسازی با پایگاههای داده مختلف مانند SQL Server، MySQL، PostgreSQL و ...
✅ ۵. عملکرد بالا و پشتیبانی از کش (Caching):
🔹 با استفاده از ASP.NET Core میتوان عملکرد برنامه را بهینهسازی کرد و از کش برای افزایش سرعت بارگذاری استفاده کرد.
---
### 📌 جمعبندی
✔️ ASP.NET Core MVC
بر اساس معماری مدل-نما-کنترلر (MVC) کار میکند تا پروژههای تحت وب را سازمانیافته، مقیاسپذیر و قابل نگهداری کند.
✔️ مدل مسئول مدیریت دادهها، ویو مسئول نمایش اطلاعات، و کنترلر مسئول پردازش درخواستهای کاربران است.
✔️ درخواست کاربر پردازش میشود، دادهها از مدل دریافت شده، و خروجی در ویو نمایش داده میشود.
✔️ این معماری باعث خوانایی، تستپذیری بالا، انعطافپذیری در مسیریابی، و بهینهسازی عملکرد میشود.
📝 نکته مهم :
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options) { }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Server=.\\SQLEXPRESS;Database=TaskFlowDB;Trusted_Connection=True;TrustServerCertificate=True");
}
}
✅ اگر
ApplicationDbContextرا مانند کدی که در بالا تنظیم کرده باشی (با
OnConfiguring())، دیگر نیازی به appsettings.json و Program.cs برای تعیین رشته اتصال نداری**، زیرا اتصال به دیتابیس مستقیماً در
DbContextتنظیم شده است. 🚨 اما اگر پروژهی شما یک برنامه ASP.NET Core باشد، همچنان به Program.cs نیاز داری تا
ApplicationDbContextرا به **Dependency Injection (DI) اضافه کند. در غیر این صورت، برنامه نمیتواند
DbContextرا مدیریت کند و هنگام اجرا خطا دریافت خواهی کرد. 📌 اگر یک برنامه کنسولی ساده باشد (مثلاً
ConsoleApp)، میتوان بدون Program.cs کار کرد، اما در پروژههای وب و API (مثل ASP.NET Core)، باید Program.cs را داشته باشی تا
DbContextرا در services.AddDbContext<ApplicationDbContext>() ثبت کنی. 🔹 پس اگر فقط در
ApplicationDbContextاتصال را مشخص کرده باشی، نیازی به appsettings.json برای تعیین رشته اتصال نداری**، اما Program.cs برای مدیریت وابستگیها هنوز ضروری است**. اگر قصد داری پروژهای کاملاً بدون appsettings.json و Program.cs اجرا کنی، لطفاً نوع برنامهات را مشخص کن 😊
نکته مهم :
اگر ویژوال استودیو بروز رسانی کردی و خطاهای عجیب دریافت کردی و حتی نمیتوانید از لایه ها استفاده کنید میتوانید از روشهای زیر انجام دهید
برای نصب .NET 8 SDK روی سیستم، میتوانی از [صفحه رسمی دانلود .NET 8]
https://dotnet.microsoft.com/en-us/download/dotnet/8.0
استفاده کنی. در این صفحه، نسخههای مختلف SDK و Runtime برای ویندوز، لینوکس و macOS موجود هستند.
### ✅ مراحل نصب .NET 8 SDK در ویندوز
1️⃣ دانلود .NET 8 SDK
- به [صفحه دانلود .NET 8]
https://dotnet.microsoft.com/en-us/download/dotnet/8.0
برو.
- نسخه SDK 8.0.16 را برای ویندوز انتخاب کن.
- فایل نصبی (
.exe) را دانلود کن. 2️⃣ نصب .NET 8 SDK - فایل دانلودشده را اجرا کن و مراحل نصب را دنبال کن. - مطمئن شو که گزینه "Add to PATH" فعال باشد. 3️⃣ بررسی نصب موفق - پس از نصب، در Command Prompt این دستور را اجرا کن: sh dotnet --list-sdks - باید .NET 8.0.16 در لیست نمایش داده شود. 4️⃣ تنظیم نسخه پیشفرض - اگر همچنان
.NET 9بهصورت پیشفرض اجرا میشود، میتوانی نسخه .NET 8 را بهصورت دستی تنظیم کنی: sh dotnet build --framework net8.0 📌 اگر هنگام نصب مشکلی داشتی، بگو تا راهنمایی کنم! 😊 نصب .NET 8 SDK به درستی انجام شده است، چون در
dotnet --list-sdksدیده میشود (
8.0.410). اما مشکل اینجاست که **دستور
dotnet --versionهنوز
9.0.300را نشان میدهد**، یعنی نسخهی پیشفرض همچنان
.NET 9است. برای حل این مشکل، باید نسخهی .NET 8 را بهعنوان نسخهی پیشفرض تنظیم کنیم: --- ### ✅ ۱. استفاده از نسخهی صحیح هنگام اجرا 🔹 هنگام اجرای
dotnet buildو
dotnet run، بهصورت دستی نسخهی
.NET 8را مشخص کن: sh dotnet build --framework net8.0 dotnet run --framework net8.0 --- ### ✅ ۲. تنظیم نسخهی پیشفرض با global.json 🔹 اگر میخواهی نسخهی
.NET 8بهعنوان پیشفرض در پروژه تنظیم شود، باید یک فایل global.json بسازی: sh dotnet new globaljson --sdk-version 8.0.410 🔹 سپس بررسی کن که نسخهی تنظیمشده درست است: sh dotnet --version 🔹 حالا باید
.NET 8.0.410نمایش داده شود. --- ### ✅ **۳. حذف نسخهی
.NET 9(اختیاری)** 📌 اگر نمیخواهی
.NET 9پیشفرض باشد، میتوانی آن را حذف کنی: sh dotnet uninstall 9.0.300 🚨 این گزینه را فقط اجرا کن اگر نیازی به .NET 9 نداری. --- ### 📌 جمعبندی ✔ **از
dotnet build --framework net8.0برای اجرای پروژه با
.NET 8استفاده کن.** ✔ **یک global.json بساز تا
.NET 8.0.410بهعنوان نسخهی پیشفرض در پروژه تنظیم شود.** ✔ **در صورت نیاز، نسخهی
.NET 9را حذف کن.**