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
مشاهده در ایتا
دانلود
Filter App (8).zip
حجم: 23.6M
ببخشید این دفعه همه کد های جاوااسکریپت را دیدم و خلاصه کردم کد جاوااسکریپت در صفحه اصلی کنترلر ProductController کوتاه تر شده
RAST.zip
حجم: 16M
پروژه راست که با کمک هوش مصنوعی نوشتم
پروژه ASP.Net Core MVC (وب و سی شارپ)
پروژه راست که با کمک هوش مصنوعی نوشتم
پروژه شما با نام "راست" (RAST)، یک سامانه مدیریت وظایف و پروژه‌هاست که با استفاده از تکنولوژی‌های مدرن دنیای دات‌نت طراحی شده است. این پروژه برای انتشار و ارائه به عنوان یک نمونه کار یا محصول کاربردی، دارای ویژگی‌های فنی و ظاهری بسیار ارزشمندی است. در ادامه، توضیحات کامل پروژه را در ۴ بخش اصلی برای شما تدوین کرده‌ام: ۱. معماری و تکنولوژی‌های استفاده شده این پروژه بر پایه الگوی محبوب MVC (Model-View-Controller) بنا شده که باعث جداسازی دقیق منطق برنامه از ظاهر آن می‌شود: Backend: * استفاده از ASP.NET Core (جدیدترین نسخه) برای مدیریت درخواست‌ها. Database: * بهره‌گیری از Entity Framework Core به همراه پایگاه‌داده SQL Server. لایه داده (Fluent API):* تنظیمات دیتابیس به صورت کدنویسی شده (کلاس
AppDbContext
) انجام شده که دقت کار با مقادیر مالی (Decimal) را تضمین می‌کند. Frontend: * استفاده از Bootstrap برای واکنش‌گرایی (Responsive) و نمایش صحیح در موبایل و دسکتاپ. ۲. ویژگی‌های کلیدی هوشمند پروژه "راست" صرفاً یک CRUD ساده (ساختن، خواندن، ویرایش، حذف) نیست، بلکه دارای قابلیت‌های هوشمندی است: تشخیص خودکار زبان (RTL/LTR):* سیستم به صورت هوشمند تشخیص می‌دهد که نام پروژه فارسی است یا انگلیسی و جهت متن را برای خوانایی بهتر تغییر می‌دهد. مرتب‌سازی پیشرفته (Sorting Helper):* قابلیت مرتب‌سازی لیست بر اساس جدیدترین‌ها، پربازدیدترین‌ها، میزان بودجه و حتی ترتیب الفبای هوشمند. سیستم ردیابی بازدید:* با هر بار مشاهده جزئیات یک پروژه، سیستم به صورت خودکار تعداد بازدید را افزایش داده و در دیتابیس ذخیره می‌کند. جستجوی آنی:* امکان فیلتر کردن پروژه‌ها بر اساس بخشی از نام آن‌ها. ۳. تجربه کاربری (UI/UX) در طراحی این سامانه، سادگی و زیبایی در اولویت بوده است: ظاهر مدرن:* استفاده از کارت‌های (Cards) جداگانه برای نمایش اطلاعات و فرم‌ها. آیکون‌های سیستمی:* برای جلوگیری از مشکلات بارگذاری در سیستم‌های مختلف، از اموجی‌های استاندارد و زیبا به جای فونت‌های سنگین استفاده شده است. رنگ‌بندی هدفمند:* استفاده از رنگ سبز برای "افزودن"، زرد برای "ویرایش" و قرمز برای "حذف" جهت راهنمایی بهتر چشم کاربر. ۴. امنیت و پایداری کدنویسی این پروژه با رعایت اصول امنیتی انجام شده است: Anti-Forgery Tokens: * جلوگیری از حملات مخرب وب (CSRF). Input Validation: * اعتبارسنجی دقیق داده‌های ورودی کاربر (نام و بودجه) هم در سمت سرور و هم در سمت کاربر. Concurrency Handling: * مدیریت خطاهای احتمالی در صورتی که دو کاربر همزمان بخواهند یک پروژه را تغییر دهند. --- خلاصه نهایی برای معرفی: > "پروژه راست، یک راهکار سبک و سریع برای مدیریت تسک‌هاست که تمرکز ویژه‌ای بر نمایش صحیح متون دو زبانه (فارسی/انگلیسی) و مدیریت دقیق بودجه دارد. این سامانه با رعایت استانداردهای Clean Code، پتانسیل بالایی برای توسعه و تبدیل شدن به یک پلتفرم مدیریتی جامع را داراست." این توضیحات به خوبی تخصص شما را در کدنویسی و توجه به جزئیات (مثل جهت متن و امنیت) به نمایش می‌گذارد. 🚀✨
AjaxApp.zip
حجم: 2.5M
کد ساده که با حداقل جاوااسکریپت داده های صفحه اصلی با عوض کردن لیست باکس بدونه رفرش عوض می شود
پروژه ASP.Net Core MVC (وب و سی شارپ)
کد ساده که با حداقل جاوااسکریپت داده های صفحه اصلی با عوض کردن لیست باکس بدونه رفرش عوض می شود
🚀 پروژه مدیریت هوشمند جداول با AJAX و Partial View* 🚀 سلام دوستان! امروز می‌خوایم بررسی کنیم که چطور می‌شه یک صفحه وب رو بدون حتی یک بار رفرش شدن، کاملاً زنده و پویا کرد! 💻✨ 🎯 هدف پروژه چیه؟ دیگه گذشت اون زمان که برای دیدن داده‌های جدید باید کل صفحه سایت از اول لود می‌شد! 🐢 در این پروژه، ما یاد می‌گیریم چطور با انتخاب یک گزینه، فقط و فقط "قلب جدول" رو آپدیت کنیم. یعنی سرعت موشکی و تجربه کاربری عالی! ⚡️🤩 --- 🛠 تکنولوژی‌های به‌کار رفته: Back-End: 🧠 ASP.NET Core (C#) Front-End:* 🎨 Razor Views & HTML5 Library:* ⚡️ jQuery (AJAX) Style:* 👗 Bootstrap --- 🏗 بخش‌های اصلی معماری پروژه: 1️⃣ لایه مدل (Model): 📦 یک کلاس شسته-رفته به نام `Person` که هویت داده‌های ما رو می‌سازه (مثلاً کی هستی و چه زمانی ثبت‌نام کردی؟). 2️⃣ کنترلر (Controller): 🎮 بخش هوشمند ماجرا! ما یک اکشن داریم که به جای لود کردن یک صفحه سنگین، فقط یک "تکه کد HTML" (همون Partial View) رو مثل یک پازل آماده می‌کنه و می‌فرسته. 3️⃣ پارت‌شال ویو (Partial View): 🧩 این فایل مثل یک قطعه پازله! فقط ردیف‌های جدول رو می‌سازه و منتظره تا جاوااسکریپت اون رو در جای درستش قرار بده. 4️⃣ جادوی ای‌جکس (AJAX - jQuery): 🪄 پل ارتباطی ما! وقتی کاربر گزینه‌ای رو انتخاب می‌کنه، ای‌جکس سریع می‌پره سمت سرور، ردیف‌های جدید رو می‌گیره و بدون اینکه کاربر بفهمه، جایگزین قبلی‌ها می‌کنه! 🏃‍♂️️💨 --- ✅ چرا این روش خیلی خفنه؟ کد تمیز (Clean Code):* هر بخش وظیفه خودشو داره و کدها توی هم گره نمی‌خورن. 🫧 سرعت فرازمینی:* چون فقط چند خط کد جابجا می‌شه، نه کل صفحه! 🛸 رضایت کاربر (UX):* صفحه پرش نداره و همه چیز خیلی نرم و روان اتفاق می‌فته. 😊👌 --- 🔄 فرآیند اجرا در یک نگاه:** 1️⃣ انتخاب: کاربر یک گروه رو از لیست انتخاب می‌کنه. 🖱 2️⃣ درخواست: جاوااسکریپت سیگنال می‌فرسته به سرور. 📡 3️⃣ پردازش: سرور داده‌ها رو فیلتر می‌کنه. ⚙️ 4️⃣ تزریق: کدهای جدید در بدنه جدول میشینن. 💉💉 نتیجه: یک پنل مدیریتی حرفه‌ای و مدرن که کار کردن باهاش لذت‌بخشه! 💎🔥 --- امیدوارم از این پروژه لذت برده باشید! مسیر حرفه‌ای شدن از همین پروژه‌های هوشمند می‌گذره. 🚀🌟
# پروژه مدیریت محصولات با فیلترهای پیشرفته و Ajax ## 📋 معرفی پروژه یک سیستم مدیریت محصولات با قابلیت‌های پیشرفته فیلتر، صفحه‌بندی و جستجو که به صورت Single Page Application (SPA) پیاده‌سازی شده است. ## 🚀 ویژگی‌های اصلی ### 1. فیلترهای هوشمند - 🔍 جستجوی متنی: جستجو در نام محصولات - 🏷 فیلتر وضعیت: Pending، Registered، Cancelled - ✅ فیلتر فعال/غیرفعال: نمایش محصولات فعال یا غیرفعال - 💰 فیلتر قیمت: اسلایدر برای محدود کردن قیمت - 📅 فیلتر تاریخ: انتخاب بازه تاریخ شمسی با استفاده از datepicker فارسی - 🔄 فیلتر آنی: اعمال فیلترها بلافاصله با تغییر هر فیلد ### 2. صفحه‌بندی پیشرفته - 📄 صفحه‌بندی Ajax: بدون رفرش صفحه - 🔗 حفظ فیلترها: حفظ فیلترها هنگام تغییر صفحه - 🌐 تغییر URL: به‌روزرسانی URL بدون رفرش صفحه - ↪️ پشتیبانی از History: کارکردن دکمه‌های عقب/جلو مرورگر ### 3. رابط کاربری مدرن - 🎨 طراحی Responsive: سازگار با تمام دستگاه‌ها - ⚡️ لودینگ آنی: نمایش اسپینر هنگام بارگذاری - 📱 تاریخ‌شمار فارسی: استفاده از Persian Datepicker - 🔢 فرمت اعداد: نمایش اعداد با جداکننده هزارگان ### 4. قابلیت‌های فنی - 🛡 کنترلر دو حالته: پشتیبانی از درخواست‌های عادی و Ajax - 📊 Partial View: جدول محصولات جدا از صفحه اصلی - 🔄 تبدیل اعداد: تبدیل خودکار اعداد فارسی به انگلیسی - 📝 اعتبارسنجی: تبدیل تاریخ شمسی به میلادی در سرور ## 🏗 ساختار پروژه ### مدل‌ها (Models)
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    public DateTime CreatedAt { get; set; }
    public bool IsActive { get; set; }
    public ProjectStatus Status { get; set; }
}

public enum ProjectStatus
{
    Pending,
    Registered,
    Cancelled
}
### کنترلر (Controller)
// ProductsController.cs
public async Task<IActionResult> Index(
    ProjectStatus? status, 
    bool? isActive, 
    string searchString, 
    decimal? maxPrice, 
    string startDate, 
    string endDate, 
    int page = 1,
    bool isAjax = false)
{
    // منطق فیلترها و صفحه‌بندی
    // بازگشت Partial View برای Ajax و View کامل برای درخواست عادی
}
### Viewها 1. Index.cshtml - صفحه اصلی با فرم فیلترها 2. _ProductTable.cshtml - Partial View برای جدول محصولات (مخصوص Ajax) ## ⚙️ نحوه راه‌اندازی ### پیش‌نیازها - .NET 6 یا بالاتر - SQL Server یا SQLite - مرورگر مدرن (Chrome, Firefox, Edge) ### مراحل نصب
1. کلون کردن پروژه
2. restore کردن packages: dotnet restore
3. update کردن دیتابیس: dotnet ef database update
4. اجرای پروژه: dotnet run
### فایل‌های ضروری
wwwroot/
├── persian-datepicker/      # کتابخانه تاریخ‌شمار فارسی
├── lib/                     # کتابخانه‌های Bootstrap و FontAwesome
└── js/                      # فایل‌های JavaScript

Views/
├── Products/
│   ├── Index.cshtml        # صفحه اصلی
│   └── _ProductTable.cshtml # Partial View جدول
## 🔧 پیکربندی ### Connection String
{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ProductDb;Trusted_Connection=True;"
  }
}
### تنظیمات صفحه‌بندی
// در کنترلر
int pageSize = 3; // تعداد آیتم در هر صفحه
## 📱 واسط کاربری ### بخش‌های اصلی صفحه 1. هدر فیلترها: کارت شامل تمام فیلترها 2. جدول محصولات: نمایش لیست محصولات با ستون‌های مختلف 3. صفحه‌بندی: ناوبری بین صفحات 4. دکمه‌های عملیات: ویرایش و حذف محصولات ### فیلدهای فرم - جستجوی متنی: فیلتر بر اساس نام محصول - Select وضعیت: وضعیت سفارش (در انتظار، ثبت شده، لغو شده) - Select فعال/غیرفعال: نمایش محصولات فعال یا غیرفعال - اسلایدر قیمت: محدود کردن بر اساس قیمت - تاریخ‌شمار فارسی: انتخاب بازه تاریخ ## 🔄 جریان داده ### درخواست عادی (اولیه)
کاربر → URL → کنترلر → View کامل → مرورگر
### درخواست Ajax (فیلتر/صفحه‌بندی)
کاربر → JavaScript → Fetch API → کنترلر → Partial View → JavaScript → به‌روزرسانی DOM
## 🛠 کتابخانه‌های استفاده شده ### Frontend - Bootstrap 5: فریم‌ورک CSS - FontAwesome: آیکون‌ها - Persian Datepicker: انتخاب تاریخ شمسی - Fetch API: ارسال درخواست‌های Ajax ### Backend - Entity Framework Core: ORM برای دیتابیس - ASP.NET Core MVC: فریم‌ورک اصلی - System.Globalization: برای کار با تاریخ شمسی ## 🔒 امنیت
### مکانیزم‌های امنیتی - تأیید حذف: نمایش confirm قبل از حذف - تبدیل اعداد: جلوگیری از خطا در ورودی فارسی - اعتبارسنجی تاریخ: تبدیل صحیح تاریخ شمسی به میلادی - پارامترهای امن: استفاده از پارامترهای نوع‌دار در کنترلر ## 📈 بهینه‌سازی‌ها ### Performance - صفحه‌بندی سروری: بارگذاری فقط داده‌های مورد نیاز - Ajax: کاهش بارگذاری صفحه - کش مرورگر: استفاده از History API - لودینگ آنی: بهبود UX ### SEO - URLهای معنادار: پارامترهای فیلتر در URL - قابلیت اشتراک‌گذاری: هر URL وضعیت خاصی را نشان می‌دهد - دسترسی موتورهای جستجو: درخواست‌های اولیه کامل HTML برمی‌گردانند ## 🧪 تست‌ها ### سناریوهای تست شده 1. ✅ اعمال فیلترهای مختلف 2. ✅ صفحه‌بندی با حفظ فیلترها 3. ✅ تغییر URL بدون رفرش 4. ✅ دکمه‌های عقب/جلو مرورگر 5. ✅ تبدیل اعداد فارسی به انگلیسی 6. ✅ تاریخ شمسی به میلادی 7. ✅ لودینگ آنی 8. ✅ نمایش خطاهای مناسب ## 🐛 عیب‌یابی ### مشکلات رایج و راه‌حل 1. خطای 404: بررسی routeها و نام کنترلر 2. اعداد فارسی: اطمینان از تبدیل در JavaScript و سرور 3. تاریخ‌شمار: بررسی تنظیمات Persian Datepicker 4. Ajax کار نمی‌کند: بررسی پارامتر isAjax در کنترلر ## 📝 نکات توسعه ### برای توسعه بیشتر 1. اضافه کردن مرتب‌سازی: کلیک روی هدر ستون‌ها 2. صادرات اکسل: خروجی گرفتن از نتایج 3. فیلترهای پیشرفته: جستجوی پیشرفته با چندین فیلد 4. نمودارها: نمایش آماری محصولات 5. احراز هویت: محدود کردن دسترسی‌ها 6. API: ایجاد API برای برنامه‌های موبایل ## 🤝 مشارکت ### راهنمای مشارکت
1. Fork کردن پروژه
2. ایجاد Branch جدید (git checkout -b feature/AmazingFeature)
3. Commit کردن تغییرات (git commit -m 'Add AmazingFeature')
4. Push کردن به Branch (git push origin feature/AmazingFeature)
5. باز کردن Pull Request
## 📄 لایسنس این پروژه تحت لایسنس MIT منتشر شده است. ## 📞 پشتیبانی برای گزارش باگ یا درخواست ویژگی جدید، از Issues در گیت‌هاب استفاده کنید. --- ✨ پروژه آماده انتشار!
تعاملی کردن صفحات ASP.mp3
زمان: حجم: 4.6M
تعاملی کردن صفحات وب در ASP ساخته شده از هوش مصنوعی و AJAX در ASP.NET Core MVC با تبادل داده بدون رفرش، تجربه کاربری را بهبود و بار سرور را کاهش می‌دهد. این تکنیک با استفاده از Partial Views و JavaScript، بخش‌های خاصی از صفحه را به‌روزرسانی می‌کند. علیرغم چالش‌های SEO، این روش برای ساخت برنامه‌های مدرن ضروری است.
پروژه ASP.Net Core MVC (وب و سی شارپ)
تعاملی کردن صفحات وب در ASP ساخته شده از هوش مصنوعی و AJAX در ASP.NET Core MVC با تبادل داده بدون
پادکست: AJAX در ASP.NET Core MVC - بهبود UX با لود بدون رفرش 🎧 قسمت اول: معرفی AJAX و مفاهیم پایه میزبان: امروز قصد داریم در مورد تکنولوژی AJAX در ASP.NET Core MVC صحبت کنیم و ببینیم چطور می‌توانیم تجربه کاربری بهتری با لود کردن صفحات بدون رفرش کامل ایجاد کنیم. AJAX چیست؟ · مخفف Asynchronous JavaScript And XML · تکنیکی برای ارسال و دریافت داده‌ها از سرور بدون نیاز به رفرش کامل صفحه · ترکیبی از JavaScript و XMLHttpRequest 🔄 قسمت دوم: مقایسه روش‌های سنتی و AJAX روش سنتی (Full Page Refresh): csharp // کنترلر سنتی public IActionResult Index() { var products = _db.Products.ToList(); return View(products); } مشکلات: · لود کامل همه المان‌های صفحه · مصرف پهنای باند بیشتر · تجربه کاربری ناپیوسته · از دست دادن state برخی المان‌ها روش AJAX: javascript // مثال JavaScript با Fetch API async function loadData() { const response = await fetch('/api/products'); const products = await response.json(); // فقط بخش مورد نظر آپدیت می‌شود updateProductList(products); } 💻 قسمت سوم: پیاده‌سازی AJAX در ASP.NET Core MVC 1. ایجاد Action مخصوص AJAX: csharp public async Task<IActionResult> GetPartialData() { var data = await _service.GetDataAsync(); return PartialView("_DataPartial", data); } 2. استفاده از Partial Views: html <!-- _DataPartial.cshtml --> <div id="ajax-content"> @foreach(var item in Model) { <div class="item">@item.Name</div> } </div> 3. فراخوانی با jQuery: javascript $(document).ready(function() { $('-btn').click(function() { $.ajax({ url: '@Url.Action("GetPartialData")', type: 'GET', success: function(result) { $('').html(result); } }); }); }); ⚡ قسمت چهارم: مزایای استفاده از AJAX ✅ بهبود تجربه کاربری: · بارگذاری سریع‌تر · تعامل روان‌تر · حفظ state صفحه ✅ کاهش بار سرور: · انتقال داده‌های کمتر · کش کردن موثرتر ✅ طراحی مدرن: · شبیه‌سازی اپلیکیشن‌های تک صفحه‌ای (SPA) · تعامل Real-time 🚫 قسمت پنجم: چالش‌ها و معایب مشکلات SEO: · موتورهای جستجو ممکن است محتوای لود شده با AJAX را نبینند مدیریت History مرورگر: javascript // استفاده از History API history.pushState({}, '', '/new-url'); خطاهای JavaScript: · نیاز به هندلینگ خطاهای مناسب · نمایش وضعیت لودینگ 🛠️ قسمت ششم: بهترین روش‌ها 1. Progressive Enhancement: csharp // Action سازگار با AJAX و غیر-AJAX public IActionResult GetData() { var data = GetDataFromService(); if (Request.Headers["X-Requested-With"] == "XMLHttpRequest") return PartialView("_DataPartial", data); else return View("FullPage", data); } 2. نمایش Loading State: javascript function loadWithFeedback() { showLoading(); fetch(url) .then(response => response.json()) .then(data => { updateContent(data); hideLoading(); }) .catch(error => { showError(error); hideLoading(); }); } 3. استفاده از HTML5 Data Attributes: html <button data-ajax="true" data-url="/controller/action" data-target=""> Load Data </button> 🔮 قسمت هفتم: آینده و تکنولوژی‌های مرتبط Blazor در ASP.NET Core: · امکان اجرای کدهای C# در مرورگر · جایگزینی برای JavaScript در برخی موارد SignalR برای ارتباط Real-time: csharp // ارسال داده‌های Real-time به کلاینت public class ChatHub : Hub { public async Task SendMessage(string user, string message) { await Clients.All.SendAsync("ReceiveMessage", user, message); } } 🎯 نتیجه‌گیری میزبان: AJAX در ASP.NET Core MVC ابزار قدرتمندی برای ایجاد رابط‌های کاربری مدرن و ریسپانسیو است. اگرچه چالش‌های خاص خود را دارد، اما با پیاده‌سازی صحیح می‌توانید: 1. تجربه کاربری بهتری ارائه دهید 2. کارایی اپلیکیشن را افزایش دهید 3. مصرف منابع را کاهش دهید 4. اپلیکیشن‌هایی شبیه به SPA ایجاد کنید توصیه نهایی: از AJAX در جاهایی استفاده کنید که واقعاً ارزش افزوده دارد و همیشه fallbackهای مناسب برای حالت غیر-JavaScript در نظر بگیرید. --- 📚 منابع پیشنهادی: