eitaa logo
پروژه ASP.Net Core MVC (وب و سی شارپ)
119 دنبال‌کننده
168 عکس
38 ویدیو
376 فایل
❁﷽❁ آموزش 📖 برنامه نویسی ASP.Net Core MVC (وب و سی شارپ) Admin: @alialirezapanahi برنامه نویسی برنامه نویسی سی شارپ eitaa.com/sisharpapp برنامه نویسی وب eitaa.com/aspdatnet ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapanahi
مشاهده در ایتا
دانلود
پروژه ASP.Net Core MVC (وب و سی شارپ)
افزودن دیکشنری و تغییر زبان و عوض شدن محتوا داده
هدف اینه که مخاطب بفهمه فرق بین LanguageHelper و LanguageService چیه، کدوم برای چه شرایطی بهتره، و اینکه لزومی نداره هر دو رو همزمان داشته باشه. --- 🎯 تفاوت LanguageHelper و LanguageService در پروژه‌های چندزبانه MVC در پروژه‌های چندزبانه، معمولاً نیاز داریم متن‌ها رو بر اساس زبان انتخاب‌شده توسط کاربر نمایش بدیم. برای این کار دو روش رایج وجود داره: --- ✅ ۱. LanguageHelper (کلاس استاتیک)
csharp
public static class LanguageHelper
{
    public static string Translate(ApplicationDbContext context, IHttpContextAccessor httpContext, string key)
    {
        var culture = httpContext.HttpContext.Request.Cookies["lang"] ?? "fa";

        var resource = context.LanguageResources
            .FirstOrDefault(r => r.Key == key && r.Culture == culture);

        return resource?.Value ?? key;
    }
}
📌 ویژگی‌ها: - استاتیکه، یعنی نیازی به ساخت نمونه (instance) نداره - در کنترلرها و کلاس‌ها قابل استفاده‌ست - باید هر بار context و httpContext رو دستی بهش بدی - در Razor View مستقیم قابل استفاده نیست (مگر با ViewBag یا ViewData) --- ✅ ۲. LanguageService (سرویس تزریقی)
csharp
public class LanguageService : ILanguageService
{
    private readonly ApplicationDbContext _context;
    private readonly IHttpContextAccessor _http;

    public LanguageService(ApplicationDbContext context, IHttpContextAccessor http)
    {
        _context = context;
        _http = http;
    }

    public string Translate(string key)
    {
        var culture = _http.HttpContext?.Request.Cookies["lang"] ?? "fa";

        var value = _context.LanguageResources
            .Where(x => x.Key == key && x.Culture == culture)
            .Select(x => x.Value)
            .FirstOrDefault();

        return value ?? $"[{key}]";
    }
}
📌 استفاده در Razor View:
razor
@inject ILanguageService Lang
<h1>@Lang.Translate("Dashboard.Title")</h1>
📌 ویژگی‌ها: - از طریق DI (Dependency Injection) تزریق می‌شه - در Razor View مستقیم قابل استفاده‌ست - نیازی به ارسال دستی context و http نداره - قابل تست، توسعه و مدیریت بهتره --- ⚖️ مقایسه نهایی | ویژگی | LanguageHelper | LanguageService | |--------------------------|----------------|-----------------| | سادگی اولیه | ✅ ساده | ❌ کمی پیچیده‌تر | | استفاده در View | ❌ سخت | ✅ راحت با @inject | | نیاز به DI | ❌ ندارد | ✅ دارد | | توسعه‌پذیری | ❌ محدود | ✅ قابل گسترش | | مناسب پروژه‌های بزرگ | ❌ نه | ✅ بله | --- ✅ کدام را انتخاب کنیم؟ 🔹 اگر پروژه‌ات ساده است یا فقط در کنترلرها ترجمه نیاز داری → LanguageHelper کافیست 🔹 اگر پروژه‌ات چندزبانه، قابل توسعه و حرفه‌ای است → LanguageService بهتر و استانداردتر است ❗ لزومی نداره هر دو را همزمان داشته باشی فقط یکی را انتخاب کن و در کل پروژه از همان استفاده کن تا کدت تمیز و منسجم بماند.
SmartShopPlus (4).zip
حجم: 25.5M
ویرایش منو و اصلاح پروژه و حذف کدهای بی مصرف
SmartShopPlus (5).zip
حجم: 25.5M
اکشن های گزارش گیری با Join اضافه شد 📊 گزارش‌گیری حرفه‌ای با EF Core و Join در این پروژه، اکشن‌های گزارش‌گیری با استفاده از کوئری‌های بهینه و
Join
بین جدول‌ها نوشته شده‌اند تا عملکرد سریع‌تر و ساختار خواناتری داشته باشند. تمرکز بر تحلیل سفارش‌ها، محصولات پرفروش و فعالیت مشتریان با رویکرد واقعی و قابل توسعه.
SecureLoginPlus Pro.zip
حجم: 18.9M
بچه ها من دو صفحه لاگین ساختم که یکی باید کتابخانه System.Speech را نصب کنی 1- 🔢 ورود با کد تصادفی و تایمر 2- 🧩 ورود با کپچای تصویری و صوتی
SecureProfilePlus.zip
حجم: 24.9M
پروژه SecureProfilePlus یک سیستم مدیریت پروفایل کاربری است که امکاناتی مثل ثبت‌نام و ورود کاربران، آپلود تصویر پروفایل، لایک تصاویر توسط کاربران لاگین‌شده، و نمایش مجموع لایک‌های هر تصویر و هر کاربر را فراهم می‌کند. این پروژه با هدف تمرین عملی مفاهیم ASP.NET Core MVC، EF Core و طراحی رابط کاربری واکنش‌گرا توسعه یافته و بستری مناسب برای یادگیری و پیاده‌سازی قابلیت‌های واقعی در پروژه‌های وب محسوب می‌شود.
SecureProfilePlus (2).zip
حجم: 25M
## ✅ توضیح کوتاه و فنی با حذف
public string? ProfileImagePath { get; set; }
از مدل
User
و اجرای Migration: - ستون
ProfileImagePath
از جدول
Users
در دیتابیس حذف شده
SecureProfilePlus (3).zip
حجم: 25M
تغییر کوچک ثبت نام برای رفع مشکل
SecureProfilePlus (4).zip
حجم: 25M
لایک رنگ سفید (لایک نشده) و قرمز(لایک شده) در صفحه اصلی
پروژه ASP.Net Core MVC (وب و سی شارپ)
لایک رنگ سفید (لایک نشده) و قرمز(لایک شده) در صفحه اصلی
کاملاً می‌تونی برای نمایش قلب سفید از SVG سفارشی یا کاراکترهای یونیکد (Alt+عدد) استفاده کنی — بستگی داره که چقدر کنترل روی ظاهر و رفتار بخوای داشته باشی. بیا با هم بررسی کنیم: --- ✅ گزینه‌های جایگزین برای قلب سفید 🔹 1. استفاده از کاراکتر یونیکد (Alt+عدد) برای قلب سفید، می‌تونی از یونیکدهایی مثل این استفاده کنی: | نماد | یونیکد | Alt Code | توضیح | |------|--------|----------|-------| | 🤍 | U+1F90D | Alt+129293 | قلب سفید (جدیدتر، در فونت‌های مدرن) | | ♡ | U+2661 | Alt+9825 | قلب توخالی کلاسیک | | ♥ | U+2665 | Alt+9829 | قلب سیاه (قرمز در بیشتر فونت‌ها) | > اگر از ♡ استفاده کنی، ظاهرش شبیه قلب سفید هست ولی در برخی فونت‌ها ممکنه خاکستری یا توخالی باشه. --- 🔹 2. استفاده از SVG سفارشی اگر بخوای کنترل کامل روی ظاهر قلب داشته باشی (مثلاً رنگ، سایه، انیمیشن)، می‌تونی از SVG استفاده کنی:
html
<svg width="24" height="24" viewBox="0 0 24 24" fill="none">
  <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5
           C2 5.42 4.42 3 7.5 3
           C9.24 3 10.91 3.81 12 5.08
           C13.09 3.81 14.76 3 16.5 3
           C19.58 3 22 5.42 22 8.5
           C22 12.28 18.6 15.36 13.45 19.54L12 21.35Z"
        stroke="" fill="none" />
</svg>
> این قلب توخالیه و می‌تونی رنگ stroke یا fill رو تغییر بدی تا سفید یا خاکستری بشه. --- 🔹 3. ترکیب با Font Awesome یا آیکون‌های دیگر اگر از Font Awesome استفاده می‌کنی:
html
<i class="fa-regular fa-heart"></i> <!-- قلب توخالی -->
<i class="fa-solid fa-heart"></i>   <!-- قلب پر (قرمز) -->
> با تغییر کلاس می‌تونی قلب رو لایک یا آن‌لایک کنی. --- ✅ نتیجه‌گیری | روش | مزایا | معایب | |-----|-------|-------| | یونیکد (Alt+عدد) | ساده، بدون نیاز به فایل | محدود در ظاهر و فونت | | SVG سفارشی | کنترل کامل روی ظاهر | نیاز به کدنویسی بیشتر | | Font Awesome | راحت، قابل تغییر با کلاس | نیاز به کتابخانه خارجی |