‫۹ سال و ۱۲ ماه قبل، چهارشنبه ۲۳ مهر ۱۳۹۳، ساعت ۱۴:۱۷
اگر به فایل jquery.validate.js مراجعه کنید، در قسمت remote آن، متد startRequest پیش از شروع عملیات Ajax و متد stopRequest پس از پایان کار فراخوانی می‌شوند.
prototype: {
startRequest: function( element ) {
  //...
},
stopRequest: function( element, valid ) {
  //...
},
 این دو متد را باید برای نمایش loading بازنویسی کرد. برای مثال:
   
var originalStartRequest = $.validator.prototype.startRequest;
$.validator.prototype.startRequest = function (element) {
    // یافتن عنصر در حال بررسی
    var container = $('form').find("[data-valmsg-for='" + element.name + "']");
// افزودن کلاس نمایش منتظر بمانید 
    container.addClass('loading');      
    
// فراخوانی متد اصلی برای انجام کارهای درونی افزونه
    originalStartRequest.apply(this, arguments);
};

var originalStopRequest = $.validator.prototype.stopRequest;
$.validator.prototype.stopRequest = function (element) {
    // یافتن عنصر در حال بررسی
    var container = $('form').find("[data-valmsg-for='" + element.name + "']");
// حذف  کلاس نمایش منتظر بمانید 
    container.removeClass('loading');

// فراخوانی متد اصلی برای انجام کارهای درونی افزونه
    originalStopRequest.apply(this, arguments);
};
در اینجا loading به span مخفی data-valmsg-for اضافه می‌شود.
<span class="field-validation-valid" data-valmsg-replace="true" data-valmsg-for="Url"></span>

نمونه‌ی این بازنویسی در مطلب « اعتبار سنجی سمت کاربر wysiwyg-editor‌ها در ASP.NET MVC  » هم انجام شده‌است.
‫۹ سال و ۱۲ ماه قبل، یکشنبه ۲۰ مهر ۱۳۹۳، ساعت ۱۶:۵۴
در اصل تمام این‌ها نیاز به وهله سازی دارند. اما برای ساده‌تر شدن کار، در کلاس پایه Controller، این وهله سازی‌ها صورت گرفته (^) و یک متد اضافی برای آن‌ها تعریف شده‌است. به این صورت به نظر می‌رسد که وهله سازی انجام نمی‌شود؛ ولی در اصل این‌کار محول شده به متدهای کمکی کلاس پایه کنترلر. برای مثال:
protected internal virtual JavaScriptResult JavaScript(string script)
{
     return new JavaScriptResult { Script = script };
}
در اینجا return new، داخل یک متد کلاس پایه محصور شده‌است.
‫۹ سال و ۱۲ ماه قبل، شنبه ۱۹ مهر ۱۳۹۳، ساعت ۲۱:۱۱
به مستندات آن مراجعه کنید (^). قسمت رویدادهای آن یک مثال loading دارد:
$(document).on('pjax:send', function() {
  $('#loading').show()
})
$(document).on('pjax:complete', function() {
  $('#loading').hide()
})
یک اسمبلی در پروژه، به خودی خود فاقد مفهوم است و در قالب نگارش کلی برنامه مفهوم پیدا می‌کند.
فرض کنید برنامه شما از یک فایل exe به همراه دو اسمبلی A و B، تشکیل شده‌است. اسمبلی A، نگارش یک دارد. اسمبلی B نگارش 2 و کل برنامه در نگارش 2.5 است. خطایی به شما گزارش شده‌است که در آن استثنای حاصل، از نگارش یک اسمبلی A صادر شده‌است. این مشکل که در نتیجه‌ی در یافت پردازش اشتباهی از اسمبلی B بوده و در نگارش 2 آن برطرف شده، به صورت خودکار با ارتقاء به آخرین نگارش برنامه، برطرف می‌شود.
سؤال: آیا اکنون می‌توانید تشخیص دهید کاربر از آخرین نگارش محصول شما استفاده می‌کند؟ نگارش یک A، آخرین نگارش آن است و اما برنامه در نگارش 2.5 قرار دارد. کاربر هم مدتی است که برنامه را به روز نکرده‌است.
یک سیستم از همکاری اجزای مختلف آن مفهوم پیدا می‌کند.
برای مطالعه بیشتر: «Best Practices for .NET Assembly Versioning». عبارت «ensuring all of the various assemblies in the solution share the same version» حداقل دوبار در آن تکرار شده‌است.
‫۹ سال و ۱۲ ماه قبل، جمعه ۱۸ مهر ۱۳۹۳، ساعت ۲۲:۲۳
در خطای نهایی، نام کاربر مشخص شده. بررسی کنید آیا دسترسی کافی دارد یا خیر.
همچنین این اطلاعات را صریحا هم می‌شود مشخص کرد:
Update-Database -StartUpProjectName "...name..." -ConnectionString "...data..." -ConnectionProviderName "System.Data.SqlClient"
‫۹ سال و ۱۲ ماه قبل، جمعه ۱۸ مهر ۱۳۹۳، ساعت ۱۶:۰۵
یک نکته‌ی تکمیلی
استفاده از استریم‌ها برای کار با فایل‌ها در JSON.NET
        public static T DeserializeFromFile<T>(string filePath, JsonSerializerSettings settings = null)
        {
            if (!File.Exists(filePath))
                return default(T);

            using (var fileStream = File.OpenRead(filePath))
            {
                using (var streamReader = new StreamReader(fileStream))
                {
                    using (var reader = new JsonTextReader(streamReader))
                    {
                        var serializer = settings == null ? JsonSerializer.Create() : JsonSerializer.Create(settings);
                        return serializer.Deserialize<T>(reader);
                    }
                }
            }
        }

        public static void SerializeToFile(string filePath, object data, JsonSerializerSettings settings = null)
        {
            using (var fileStream = new FileStream(filePath, FileMode.Create))
            {
                using (var streamReader = new StreamWriter(fileStream))
                {
                    using (var reader = new JsonTextWriter(streamReader))
                    {
                        var serializer = settings == null ? JsonSerializer.Create() : JsonSerializer.Create(settings);
                        serializer.Serialize(reader, data);
                    }
                }
            }
        }
‫۹ سال و ۱۲ ماه قبل، جمعه ۱۸ مهر ۱۳۹۳، ساعت ۱۳:۵۰
روی فیلد، ایندکس منحصربفرد ایجاد کنید. در این حالت توسط خود بانک اطلاعاتی تضمین می‌شود که فقط یک کاربر موفق به ثبت شماره سندی مشخص شود.
‫۹ سال و ۱۲ ماه قبل، پنجشنبه ۱۷ مهر ۱۳۹۳، ساعت ۲۱:۴۶
مقدار کوئری استرینگ returnUrl، توسط سیستم اعتبارسنجی و redirect خودکار توسط آن بر اساس آدرس loginUrl در وب کانفیگ ، مقدار دهی می‌شود.