‫۹ سال و ۴ ماه قبل، جمعه ۱۵ خرداد ۱۳۹۴، ساعت ۱۷:۱۲
در ASP.NET 5 یک دایرکتیو جدید با نام inject تدارک دیده شده است که امکان اینجکت کردن وابستگی‌ها را به صورت مستقیم داخل ویو را به ما میدهد:
@inject ISecurityService SecurityService
 
<h3>@ViewBag.Message</h3>
 
@if (!SecurityService.IsAuthenticated)
{
       <li>@Html.ActionLink("ورود", "Login", "Main")</li>
}



‫۹ سال و ۴ ماه قبل، چهارشنبه ۱۳ خرداد ۱۳۹۴، ساعت ۱۴:۳۹
- کلاس UsersManagerService اطلاعی از نحوه‌ی پیاده سازی IMessageService ندارد. بنابراین تغییر پیاده سازی IMessageService تاثیری در کدهای فعلی این کلاس نخواهد داشت. فقط تنظیمات IoC Container ابتدای بحث اندکی تغییر خواهد کرد و نه کدهای اصلی برنامه. بنابراین بسته‌است برای تغییر (کدهای فعلی آن نیازی به تغییر ندارند) و باز است برای توسعه (می‌توان انواع پیاده سازی‌ها را جهت این اینترفیس‌ها ارائه داد).
- همچنین اگر برنامه نیاز به سرویس‌های بیشتری از نوع IMessageService داشته باشد، بدیهی است باید کدهای متناظری هم از آن به کلاس UsersManagerService اضافه شوند و طراحی این کلاس تغییر کند. مانند این است که کنترلری امروز نیاز به لیست کاربران و سرویس کاربران دارد. روز بعد شاید نیاز به سرویس ارسال ایمیل به آن‌ها را هم پیدا کند. در این حالت طراحی این کنترلر باید تغییر کند و این تغییر ناقض اصلی نیست. صرفا برآورده کردن نیاز کاری است. حتی این تغییر هم ناقض Open Closed Principle نیست؛ چون باز است جهت تعویض پیاده سازی سرویس ایمیل و بسته‌است جهت تغییرات آتی، از این جهت که اطلاعی از جزئیات پیاده سازی اینترفیس و سرویس ایمیل ندارد.
- این مثال صرفا جهت حل مساله‌ی ASP.NET Identity ارائه شد و استفاده‌ی از یک اینترفیس برای تمام کارها. اگر قرار بود من آن‌را طراحی کنم، برای ارسال ایمیل یک اینترفیس و برای ارسال SMS یک اینترفیس دیگر ایجاد می‌کردم. یک طراحی خوب باید دارای حداقل ابهام باشد.
با سلام 
 کلاس UsersManagerService  که داره اینترفیس IUsersManagerService رو پیاده سازی می‌کنه ، اگر روزی فرضا یه سرویس دیگه مثل Sms و ایمیلی که الان توی کلاس هست به سیستم اضافه شد به نظر میاد که باید اون رو هم مثل اینها توی سازنده کلاس اضافه کرد و در هر حال کلاس ما دچار تغییر میشه .این آیا نقض OpenClose Responsibility و SRP نیست ؟
‫۹ سال و ۴ ماه قبل، یکشنبه ۱۰ خرداد ۱۳۹۴، ساعت ۰۵:۵۲
با سلام،
برنامه‌ی من بعد از مدتی دچار مشکل شماره سوم (متدهای سمت کلاینت من فراخوانی نمی‌شوند. ) شده است، کد مربوط به لاگ کردن خروجی در کنسول را نیز اضافه کردم اما مشکل حل نشد. داخل هر کدام از Hubها یک breakpoint قرار دادم؛ مشکلی نداشت یعنی کدهای سمت سرور به خوبی اجرا می‌شوند. در نهایت با مراجعه به Event Viewer ویندوز خطا را پیدا کردم. به طور خلاصه خطا بیانگر عدم پشتیبانی از WebSocket در برنامه است، که در این حالت پیشنهاد شده است خط زیر را به WebConfig اضافه کنیم:
<httpRuntime targetFramework="4.5" />
اما باز هم مشکل حل نشد. به نظر شما مشکل از کجا می‌تواند باشد؟ با تشکر
برنامه در حالت لوکال هاست (ویندوز 8.1) و بر روی سرور (Windows Server 2012) هم همین مشکل را دارد.  
‫۹ سال و ۴ ماه قبل، شنبه ۹ خرداد ۱۳۹۴، ساعت ۲۰:۴۶
وجود تنظیمات صریح در ابتدای برنامه، کار برپایی مقدمات Fast Reflection را ساده‌تر می‌کند و در نتیجه روی سرعت و کارآیی برنامه تاثیر مثبتی خواهد داشت. به این ترتیب این تنظیمات یکبار ایجاد شده و کش می‌شوند.
‫۹ سال و ۴ ماه قبل، شنبه ۹ خرداد ۱۳۹۴، ساعت ۲۰:۲۹
لزوما باید برای تمام نگاشت‌ها کلاس پروفایل ساخت؟
آیا امکان این وجود دارد با روشی که در بالا گفته شد، این کار به صورت خودکار انجام شود؟
اگر خیر، علت اینکه DynamicMap بدون نیاز به پروفایل به درستی عمل می‌کند چیست؟
‫۹ سال و ۴ ماه قبل، شنبه ۹ خرداد ۱۳۹۴، ساعت ۱۸:۴۰
- کوئری‌های FTS به صورت پیش فرض case sensitive نیستند (^) و به این صورت طراحی شده‌است. البته اگر می‌خواهید این مورد همیشه صادق باشد، بهتر است عبارت جستجو شده را تبدیل به lower case یا uppercase کنید.
Full-text queries are not case-sensitive. 
For example, searching for "Aluminum" or "aluminum" returns the same results.
مرجع

- «شامل کلمه» یا partial words پشتیبانی نمی‌شود. چون tokenizer مربوط به FTS کوچکترین جزئی که دارد یک word است. این سؤال را هم بررسی کنید.