‫۷ سال و ۲ ماه قبل، سه‌شنبه ۲۰ تیر ۱۳۹۶، ساعت ۱۷:۳۳
متد GetControllerInstance بهتره به صورت زیر اصلاح بشه:
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
if (controllerType == null)
{
  throw new HttpException(404, $"Resource not found : {requestContext.HttpContext.Request.Path}");
}

if (!typeof(IController).IsAssignableFrom(controllerType))
{
  throw new ArgumentException($"{controllerType} is not a subclass of ControllerBase");
}

return ObjectFactory.Container.GetInstance(controllerType) as Controller;
}

چون با کدی مثل زیر به مشکل بر میخوره:
<customErrors mode="On" defaultRedirect="/Content/GeneralErrorPage.html">
  <error statusCode="404" redirect="/Content/NotFound.html"/>
</customErrors>

و موجب میشه تا در صورت یافت نشدن منبع، به جای هدایت به صفحه‌ی NotFound.html، خطای Page not found رخ بده.
رفتار صحیح در سورس خود MVC هم وجود داره که من کمی اصلاحش کردم.
‫۷ سال و ۳ ماه قبل، جمعه ۲ تیر ۱۳۹۶، ساعت ۱۶:۰۹
- استفاده از اعمال async به معنای پردازش موازی نیست.
- تمام درخواست‌های رسیده‌ی به برنامه‌های وب به صورت موازی اجرا می‌شوند. هر درخواست، در یک ترد مشخص از thread pool جاری سیستم انجام می‌شود. بنابراین نیازی نیست کار خاصی را انجام دهید. این سیستم به صورت خودکار چند ریسمانی است. فقط بحث استفاده‌ی از اکشن متدهای async و همچنین انجام دادن عملیاتی async در آن (مثلا کار با متدهای async در EF) به معنای زودتر از موعد، خالی کردن یک ترد و بازگشت آن به thread pool و آماده کردن آن برای پاسخ دهی به یک درخواست دیگر هست.
- اگر از سشن‌ها استفاده می‌کنید، پردازش موازی را تحت تاثیر قرار می‌دهد.
- کدهای به روز شده‌ی این سری در مخزن کد آن قرار دارند. ObjectFactory مخصوص نگارش 3 آن بوده که در نگارش 4 حذف شده‌است. به همین جهت SmObjectFactory تهیه شده‌است.
- context را باید از طریق الگوی واحد کار مورد استفاده قرار داد (و تفاوتی هم نمی‌کند که چه نوع پروژه‌ای باشد؛ اصول آن یکی است).
1.کلاس ObjectFactory در پروژه‌ی من شناخته نمیشود با اینکه StructureMap نیز نصب هست
2. در سرویس‌ها چگونه از context استفاده کنم آیا لازم است در constructor تزریق شود؟(مثل کاری که در پروژه‌های mvc انجام میدادیم)
‫۷ سال و ۴ ماه قبل، سه‌شنبه ۲۶ اردیبهشت ۱۳۹۶، ساعت ۱۷:۳۰
با سلام.
آیا این امکان وجود داره که تعداد افراد آنلاین توی وب سایت رو دو ساب دامین ادمین نمایش داد؟ با فرض اینکه هاب‌ها در کلاس لایبری هستند که هر دو پروژه بهش دسترسی دارن
‫۷ سال و ۵ ماه قبل، یکشنبه ۳ اردیبهشت ۱۳۹۶، ساعت ۲۱:۵۲
به شکل فعلی آن تقلبی هست. اصل این فرآیند مربوط است به متد وب سرویس SendGroupSmsSimple و چون تبادلات شبکه‌ای دارد (IO-bound)، باید نگارش async آن توسط ارائه کننده‌ی آن فراهم شود تا واقعا مفهوم async را پیاده سازی کند. در اینجا شما فقط یک thread اضافه‌تر ایجاد کرده‌اید (CPU-bound operation) و ایجاد یک thread به معنای وجود یک عملیات async نیست.
‫۷ سال و ۵ ماه قبل، یکشنبه ۳ اردیبهشت ۱۳۹۶، ساعت ۲۱:۲۸
برای استفاده از یک وب سرویس، اگر به شکل زیر در یک ClassLibrary استفاده شود، آیا واقعا غیر همزمان عمل می‌شود یا تقلبی محسوب می‌شود؟
public bool SendSms()
{
    try
    {
        var result = false;
        foreach (var nomber in _fromNombers)
        {
            if (result) continue;
            if (_smsService.SendGroupSmsSimple(Model.Signature, nomber, Model.Numbers, Model.Body, false,
                string.Empty) == 1)
                result = true;
        }
        return result;
    }
    catch (Exception exception)
    {
        Console.WriteLine(exception.Message);
        return false;
    }
}

private Task SendSmsAsync()
{
    return Task.Run(() => SendSms());
}
و مثلا در یک ConsoleApp:
static void Main(string[] args)
{
    var r = SendAsync();
    r.Wait();
}

private static async Task SendAsync()
{
    var model = new SmsModel
    {
        Body = "سلام",
        Numbers = new[] { "0917*******" }
    };

    var service = new SmsService(model);

    await service.SendSmsAsync();
}