eitaa logo
پروژه ASP.Net Core MVC (وب و سی شارپ)
120 دنبال‌کننده
168 عکس
38 ویدیو
377 فایل
❁﷽❁ آموزش 📖 برنامه نویسی ASP.Net Core MVC (وب و سی شارپ) Admin: @alialirezapanahi برنامه نویسی برنامه نویسی سی شارپ eitaa.com/sisharpapp برنامه نویسی وب eitaa.com/aspdatnet ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapanahi
مشاهده در ایتا
دانلود
پروژه ASP.Net Core MVC (وب و سی شارپ)
پکیج برای پروژه های قبلی نسخه 8.0.24
سلام! 🌹 بله حتماً، این یک روش عالی برای نصب پکیج‌ها بدون نیاز به اینترنت است. 👇 برای کانال ایتای خودتون می‌تونید از متن زیر استفاده کنید: *** 👋 سلام دوستان! آموزش نصب پکیج‌ها به صورت آفلاین (Local Nuget) 🚀 اگر پکیج مورد نظرتون رو دانلود کردید و می‌خواید بدون اینترنت تو پروژه استفاده کنید، این مراحل ساده رو دنبال کنید: 👇 ۱. اول یک پروژه جدید ASP.NET Core MVC با هر اسمی که دوست دارید بسازید. 🆔 ۲. روی نام پروژه در Solution Explorer راست‌کلیک کنید و گزینه Edit Project File رو بزنید. 📝 ۳. کدهای زیر رو توی فایل پروژه کپی کنید و ذخیره کنید: 💾
<ItemGroup>
  <PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.24" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.24" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.24">
    <PrivateAssets>all</PrivateAssets>
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
  </PackageReference>
</ItemGroup>
نکته مهم: وقتی این کدها رو اضافه می‌کنید و پروژه رو Restore می‌کنید، ویژوال استودیو خودش میره توی پوشه‌ی لوکال ناگت (همون پوشه‌ای که پکیج‌ها توش هستن) و پکیج‌ها رو پیدا کرده و نصب می‌کنه! 🎁 آدرس پکیج که قرار می دهید در پنجره ویندوز یا دکمه ویندوز + R را بزنید %userprofile%/.nuget ➖ مزیت: دیگه نیازی به اینترنت پرسرعت نیست و همه چیز رو از روی سیستم خودتون لود می‌کنه. ⚡️ موفق باشید! 🌹
پروژه ASP.Net Core MVC (وب و سی شارپ)
:::writing 📦 آشنایی با Areas و Identity در ASP.NET Core وقتی یک پروژه ASP.NET Core بزرگ‌تر می‌شود، مدیریت صفحه‌ها، کنترلرها و بخش‌های مختلف سخت‌تر می‌شود. برای همین مایکروسافت دو مفهوم مهم را ارائه کرده است: Areas و Identity. بیایید خیلی ساده و کاربردی با آن‌ها آشنا شویم. 👇 --- ## 🧭 Areas چیست؟ Areas راهی برای تقسیم یک پروژه بزرگ به چند بخش منطقی است. فرض کنید یک سایت دارید که شامل این قسمت‌هاست: 👤 بخش کاربران 🛒 بخش فروشگاه 🛠 بخش مدیریت (Admin) اگر همه این‌ها در یک پوشه قرار بگیرند، پروژه خیلی شلوغ می‌شود. اینجاست که Areas کمک می‌کند. با Areas می‌توانید پروژه را به چند ناحیه (Area) تقسیم کنید. مثلاً: 📁 Admin 📁 Customer 📁 Identity هر کدام از این Areas می‌توانند کنترلر، ویو و مدل‌های مخصوص خودشان را داشته باشند. به زبان ساده: 👉 Areas مثل یک پروژه کوچک داخل پروژه اصلی هستند. مزایا: ✅ سازماندهی بهتر پروژه ✅ مناسب برای پروژه‌های بزرگ ✅ جدا کردن بخش‌های مختلف سایت --- ## 🔐 Identity چیست؟ ASP.NET Core Identity یک سیستم آماده برای مدیریت کاربران است. با Identity می‌توانید خیلی راحت این قابلیت‌ها را به سایت اضافه کنید: 👤 ثبت‌نام کاربران (Register) 🔑 ورود به سیستم (Login) 🚪 خروج از حساب (Logout) 🔒 تغییر رمز عبور 📧 تأیید ایمیل 🛡 مدیریت نقش‌ها (Roles) ⛔️ جلوگیری از دسترسی غیرمجاز به عبارت ساده: Identity یک سیستم کامل احراز هویت و مدیریت کاربران است. --- ## 📁 چرا Identity داخل Areas قرار می‌گیرد؟ در ASP.NET Core معمولاً Identity داخل یک Area به نام Identity قرار می‌گیرد. مثلاً ساختار پروژه ممکن است این‌طور باشد: 📁 Areas   📁 Identity     📁 Account     📁 Manage این کار چند مزیت دارد: ✅ جدا شدن صفحات احراز هویت از بقیه سایت ✅ مرتب‌تر شدن ساختار پروژه ✅ امکان شخصی‌سازی صفحات ورود و ثبت‌نام --- ## 🧠 تفاوت Identity با Authorization خیلی‌ها این دو را اشتباه می‌گیرند. 🔐 Authentication (Identity) یعنی: کاربر چه کسی است؟ مثال: Login 🛡 Authorization یعنی: کاربر چه اجازه‌ای دارد؟ مثال: دسترسی فقط برای Admin --- ## 🎯 جمع‌بندی ✅ Areas برای تقسیم پروژه به بخش‌های مختلف استفاده می‌شود. ✅ Identity سیستم مدیریت کاربران در ASP.NET Core است. ✅ معمولاً Identity در یک Area جداگانه قرار می‌گیرد تا پروژه مرتب‌تر باشد. --- اگر دوست دارید درباره این موضوعات بیشتر بدانید: 🔥 Role Based Authorization 🔥 ساخت Admin Panel 🔥 مدیریت کاربران 🔥 امنیت در ASP.NET Core حتماً دنبال کنید. 🚀 :::
پروژه ASP.Net Core MVC (وب و سی شارپ)
من کاری کردم که همه را خودتون فارسی کنید
Areas.zip
حجم: 22.3K
تکمیل کردم و خودتون به پروژه اضافه کنید
فرض کنیم یک محصول در فروشگاه فقط ۱ عدد موجودی دارد. دو کاربر تقریباً همزمان می‌خواهند آن را بخرند. --- ## سناریو ساده موجودی محصول: 1 👤 کاربر A وارد صفحه محصول می‌شود 👤 کاربر B هم همان لحظه وارد همان صفحه می‌شود هر دو صفحه نشان می‌دهد: 📦 موجودی: 1 حالا هر دو تقریباً همزمان روی خرید کلیک می‌کنند. --- # اگر سیستم کنترل همزمانی نداشته باشد اتفاقی که می‌افتد: 1️⃣ درخواست کاربر A به سرور می‌رسد سیستم می‌بیند موجودی = 1 ✅ خرید انجام می‌شود 📦 موجودی می‌شود 0 2️⃣ تقریباً همزمان درخواست کاربر B هم می‌رسد سیستم هنوز فکر می‌کند موجودی = 1 (چون همزمان خوانده شده) ✅ خرید او هم انجام می‌شود نتیجه: 🧾 دو سفارش ثبت شده 📦 ولی در واقع فقط ۱ محصول وجود داشته این مشکل را می‌گویند: ⚠️ Race Condition (رقابت بین درخواست‌ها) --- # در سیستم درست چه باید اتفاق بیفتد سیستم باید اجازه بدهد: ✅ فقط یک نفر خرید موفق داشته باشد ❌ نفر دوم پیام بگیرد مثلاً: 👤 کاربر A → خرید موفق ✅ 👤 کاربر B → پیام: 🚫 "متأسفانه موجودی محصول تمام شده است" --- # مثال واقعی فروشگاه موجودی کفش: 1 👤 علی → خرید می‌کند ✅ 👤 رضا → همزمان خرید می‌کند ❌ سیستم باید بگوید: 📢 "این کالا لحظاتی قبل توسط کاربر دیگری خریداری شد." --- # چرا این مشکل رخ می‌دهد؟ چون در برنامه‌ها معمولاً این اتفاق می‌افتد: 1️⃣ موجودی از دیتابیس خوانده می‌شود 2️⃣ بررسی می‌شود آیا > 0 است 3️⃣ بعد سفارش ثبت می‌شود اگر دو درخواست خیلی نزدیک به هم بیایند، هر دو مرحله 1 را با همان مقدار انجام می‌دهند. --- # نتیجه نهایی اگر کنترل همزمانی نباشد: ⚠️ ممکن است چند نفر یک کالای آخر را بخرند. اگر سیستم درست طراحی شده باشد: ✅ فقط یک نفر موفق می‌شود ❌ بقیه پیام اتمام موجودی می‌گیرند.