eitaa logo
پروژه ASP.Net Core MVC (وب و سی شارپ)
120 دنبال‌کننده
168 عکس
38 ویدیو
376 فایل
❁﷽❁ آموزش 📖 برنامه نویسی ASP.Net Core MVC (وب و سی شارپ) Admin: @alialirezapanahi برنامه نویسی برنامه نویسی سی شارپ eitaa.com/sisharpapp برنامه نویسی وب eitaa.com/aspdatnet ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapanahi
مشاهده در ایتا
دانلود
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) کار می‌کند تا پروژه‌های تحت وب را سازمان‌یافته، مقیاس‌پذیر و قابل نگهداری کند. ✔️ مدل مسئول مدیریت داده‌ها، ویو مسئول نمایش اطلاعات، و کنترلر مسئول پردازش درخواست‌های کاربران است. ✔️ درخواست کاربر پردازش می‌شود، داده‌ها از مدل دریافت شده، و خروجی در ویو نمایش داده می‌شود. ✔️ این معماری باعث خوانایی، تست‌پذیری بالا، انعطاف‌پذیری در مسیریابی، و بهینه‌سازی عملکرد می‌شود.
Meeting.zip
حجم: 26M
پروژه: سامانه مدیریت جلسات
📝 نکته مهم : 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
را حذف کن.**
بیا با هم با حوصله بررسی کنیم که SDK 8.0.16، 8.0.410، و global.json دقیقاً چه هستند و چه تفاوتی دارند: --- ### 🧩‌ ۱. فرق بین
8.0.16
و
8.0.410
| نسخه SDK | معنی و کاربرد اصلی | |--------------|--------------------------------------------------| |
8.0.16
| نسخه معمولی پایدار از .NET 8 – مخصوص سیستم‌هایی که فقط نسخه SDK را نصب می‌کنند. این نسخه بیشتر برای توسعه شخصی و عمومی استفاده می‌شود. | |
8.0.410
| نسخه بلندمدت (LTS) برای Visual Studio 2022 – سری 17.10. Microsoft این نسخه را برای هماهنگی با نسخه‌های مشخصی از ویژوال استودیو منتشر می‌کند. این SDK دقیقاً همان محتوای
8.0.16
را دارد، فقط شماره نگارش بر اساس تقویم تعیین شده است. | 🔹 یعنی **
8.0.410
و
8.0.16
کاملاً معادل هستند از لحاظ هسته فنی** – فقط شماره نسخه متفاوت است! --- ### 🔧 ۲. دستور
dotnet new globaljson --sdk-version ...
چه‌کار می‌کند؟ وقتی چند نسخه از .NET روی سیستم نصب باشد، پروژه‌ها ممکن است به نسخه اشتباه اجرا شوند. با دستور
globaljson
می‌توانی تعیین کنی که پروژه دقیقاً از چه نسخه‌ای از SDK استفاده کند. #### 📘 مثال اول: bash dotnet new globaljson --sdk-version 8.0.410 🔹 این دستور یک فایل global.json در پوشه فعلی می‌سازد با محتوای: json { "sdk": { "version": "8.0.410" } } 🔸 این یعنی: **این پوشه و تمام زیرفولدرهایش از .NET SDK نسخه
8.0.410
استفاده می‌کنند.** #### 📙 مثال دوم: bash dotnet new globaljson --sdk-version 8.0.16 🔹 دقیقاً مثل بالا، فقط عدد نسخه متفاوت است. اگر هر دو نسخه روی سیستم نصب باشند، پروژه با همین نسخه اجرا می‌شود. ✅ وقتی فایل global.json وجود دارد: - دستور
dotnet build
یا
dotnet run
دیگر دنبال نسخه جدیدتر نمی‌گردد. - پروژه دقیقاً با نسخه مشخص‌شده اجرا می‌شود. --- ### 📌‌ ۳. جمع‌بندی شیرین: | مورد | توضیح | |---------------------------|-------| |
8.0.16
و
8.0.410
| هسته مشابه دارند، فقط برای نسخه‌های متفاوت ویژوال استودیو ارائه شده‌اند. انتخاب هرکدام مشکلی ایجاد نمی‌کند. | |
dotnet new globaljson
| برای قفل کردن نسخه SDK پروژه در مسیر خاصی استفاده می‌شود. | | وجود global.json | جلوی استفاده ناخواسته از نسخه‌های جدیدتر یا ناسازگار SDK را می‌گیرد. | | اگر نسخه مشخص‌شده نصب نشده باشد | خطا می‌گیری:
The specified SDK version could not be found
. | --- اگر دوست داشتی من می‌تونم برات فایل global.json بسازم، پروژه‌تو تنظیم کنم، یا از اینجا مستقیم یه ساختار پروژه حرفه‌ای راه بندازم ✨ فقط بگو! 😊
MyShop (9).zip
حجم: 40.5M
پروژه ادامه درس باگتو است تا جایی که میشود بخص هایی که درس نداده به پروژه آوردم یک فروشگاه کامل که سبد خرید و تست بانک ندارد چند ماه در روز تعطیلی وقتم را گذراندم در ادامه درس باگتو همه موارد درس سبد خرید توضیح داده و تست بانک هم در پروژه Test_Store دارم
gallery.zip
حجم: 13.4M
گالری چند تصویر برای فروشگاه که از پروژه جدا کردم
Lang.zip
حجم: 18.5M
پروژه دو زبان فارسی و انگلیسی که زبان از طریق کوکی ذخیره می شود