نظرات اشتراک‌ها
آیا الگوی Service Locator یک Anti-Pattern است؟
ضد الگو.
مثلا یکی از الگوهای برنامه نویسی شیء گرا این است که کلاس‌های کوچک و تک مسئولیتی داشته باشید تا نگهداری آن در طول زمان ساده‌تر شود. نقطه مقابل آن یک ضد الگو است به نام God object یا کلاسی که همه چیزی داخل آن پیدا می‌شود و اطلاعات زیادی دارد.
نظرات مطالب
React 16x - قسمت 12 - طراحی یک گرید - بخش 2 - فیلتر کردن اطلاعات
با سلام و تشکر؛ در کامپوننت ListGroup در ابتدای کار بهتر نبود selectedGenre با یک مقدار پیش فرض که در componentDidMount نوشته شده مقدار دهی میشد. یعنی هر دو به یک شیء اشاره داشتن. در این صورت زمان بارگذاری اولیه صفحه، آیتم All Genres انتخاب شده است.
نظرات مطالب
سفارشی سازی ASP.NET Core Identity - قسمت سوم - نرمال سازها و اعتبارسنج‌ها
این مورد بیشتر به طراحی خود اعتبارسنج این فریم ورک مرتبط هست که همه را یکجا و با هم نیاز دارد. userValidator «کل» اطلاعات شیء کاربر را اعتبارسنجی می‌کند و تمام فیلدهای آن‌‌را با هم (^ و ^). اگر این مورد مدنظر شما نیست یک remote validation جدید را برای آن طراحی کنید.
نظرات مطالب
ASP.NET MVC #11
امکان سفارشی سازی خروجی افزونه‌ی Debug visualizer وجود دارد.
- روش اول: «آشنایی با ویژگی DebuggerDisplay در VS.Net»
- روش دوم: متد ToString شیء جاری را بازنویسی کنید. این روش دوم در مورد ساختار DateTime استفاده می‌شود که بر اساس فرهنگ جاری سیستم عمل می‌کند.  
نظرات مطالب
پیدا کردن آیتم‌های تکراری در یک لیست به کمک LINQ
دو سوال:
1) چرا پراپرتی Id در محاسبه هش کد شرکت داده نشده است؟
2) می‌توانستیم ب جای عملگر ^ از عملگر + و یا سایر عملگر استفاده کنیم (به نحوی که هش کد دو شیء یکسان، برابر باشد)؟
نظرات مطالب
تعامل MATLAB (متلب) با دات نت - قسمت اول
در این کدی که تهیه کردید، Speak داخل متد Speak چطور فراخوانی شده بدون ارجاع به یک شیء؟ (سطر آخر متد). بعد در متلب نیازی به new نیست؟ فقط فراخوانی NET.addAssembly باعث شناسایی System.Speech.Synthesis.SpeechSynthesizer میشه؟
نظرات مطالب
intern pool جدول نگهداری رشته‌ها در دات‌نت
ممنون. البته شرایط کد خودتون رو کامل اینجا قرار ندادید ولی در حالت کلی توصیه میشه که برای استفاده از lock یک شیء private object در سطح کلاس تعریف بشه و از اون استفاده بشه تا حالت‌های دیگر.
نظرات مطالب
اثر وجود سشن بر پردازش موازی در ASP.NET
بله. از Forms authentication استفاده کنید.
FormsAuthentication.SetAuthCookie(user.Id.ToString(CultureInfo.InvariantCulture), loginInfo.RememberMe);
FormsAuthentication.RedirectFromLoginPage(user.Id.ToString(), loginInfo.RememberMe);
بعد userId رو به شکل فوق تنظیم کنید. از این به بعد با مراجعه به شیء User به صورت User.Identity.Name به مقدار UserId خواهید رسید.
نظرات مطالب
اهمیت Controller های ساده در ASP.NET MVC
برای نمایش پیام به کاربر در ASP.NET MVC روش‌های زیادی وجود دارد ، مثلا می‌توان در ViewModel خود یک پراپرتی جهت نمایش پیغام به کاربر تعبیه کرد و در صورت نیاز به کمک یک Helper در View پیام مورد نظر را نشان داد یا از شیء TempData استفاده کرد.
پاسخ به پرسش‌ها
جستجو Contains روی کلید های ترکیبی
  • هدف شما در اصل یافتن یک یا چند «شیء مشخص»، در یک جدول بانک اطلاعاتی است. اگر از EF استفاده می‌کنید، هر رکورد/شیء شما، قطعا یک Id منحصربفرد هم دارد (تا یک «شیء مشخص» را تشکیل دهد). فقط بر اساس این Id کوئری بگیرید (نه بر اساس لیست تمام ستون‌های موجود). نتیجه‌ی کار، شبیه به کوئری اولی می‌شود که نوشتید (که البته اینجا، List آن از نوع int است و یا کلا نوع Pk جدول کاربران) و فوق العاده هم سریع است.
  • اگر Idهای اشیاء موجود در لیست فوق را ندارید، باید از PredicateBuilder استفاده کنید تا بتوانید کوئری‌های Or پویایی را به ازای هر شیء، تولید کنید. الان این PredicateBuilder، جزئی از کتابخانه‌ی Gridify هم هست.

var predicate = PredicateBuilder.False<User>();

foreach(var user in customUsers)
{
   predicate = predicate.Or(u => u.FullName == user.FullName && 
                                 u.EyeColor == user.EyeColor);
}

var specificUsers = _context.Users.Where(predicate).ToList();