SmartShopPlus.zip
حجم:
25.3M
ترکیب سه پروژه قبل به یک پروژه + زبان
نکته : پروژه در ظاهر اول نگاه کنی ظاهر خوبی ندارد ولی پروژه فقط برای آموزش ساخته شده و اگر کامل نیست خودتون کامل کنید مخصوصا زبان که فقط یک کلمه را ترجمه می کند و کل سایت را خودتون ترجمه و
@inject SmartShopPlus.Service.ILanguageService Lang
در بالای ویو
<h1>@Lang.Translate("Dashboard.Title")</h1>
در همه جا قرار دهید و ترجمه کنید
SmartShopPlus (2).zip
حجم:
25.4M
پروژه enum helper اضافه شد
SmartShopPlus (3).zip
حجم:
25.5M
افزودن دیکشنری و تغییر زبان و عوض شدن محتوا داده
پروژه 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- 🧩 ورود با کپچای تصویری و صوتی
SecureLoginPlus Pro (2).zip
حجم:
18.9M
حذف کدهای اضافه در مدل
SecureProfilePlus.zip
حجم:
24.9M
پروژه SecureProfilePlus یک سیستم مدیریت پروفایل کاربری است که امکاناتی مثل ثبتنام و ورود کاربران، آپلود تصویر پروفایل، لایک تصاویر توسط کاربران لاگینشده، و نمایش مجموع لایکهای هر تصویر و هر کاربر را فراهم میکند. این پروژه با هدف تمرین عملی مفاهیم ASP.NET Core MVC، EF Core و طراحی رابط کاربری واکنشگرا توسعه یافته و بستری مناسب برای یادگیری و پیادهسازی قابلیتهای واقعی در پروژههای وب محسوب میشود.