Вот мои 2 цента:
- (jquery.validate и jquery.validate.unobtrusive) против (MicrosoftMVCValidation)
Выберите первое, так как оно не имеет смыслачто HTML5-атрибуты data- * генерируются в полях ввода, а валидаторы незаметно присоединяются к отдельным файлам javascript.С проверкой Microsoft ваша окончательная разметка больше не является разметкой, но это разметка, смешанная с javascript.Это не только увеличивает размер ваших HTML-страниц, но и делает их более уродливыми и невозможными для использования возможностей кэширования в браузере внешних статических ресурсов.
В зависимости от проекта я решаю, использовать ли я непосредственно jQuery.validateподключите или воспользуйтесь автоматически сгенерированными атрибутами data5 * HTML5 и позвольте сценарию jquery.validate.unobtrusive выполнить автоматическую проверку клиентского сценария на основе некоторых правил DataAnnotations в моих моделях представления.Ну, на самом деле я не использую DataAnnotations, а FluentValidation.NET, но это не имеет значения для клиентской стороны, поскольку они оба испускают ModelMetaData.Я должен согласиться с тем, что с ASP.NET MVC 3 Microsoft сделала шаг вперед с этими jquery.validate.unobtrusive сценариями.Но в основном это будет зависеть от проекта, над которым я работаю, и необходимого мне контроля.
- (jquery.unobtrusive-ajax) против (MicrosoftAjax & MicrosoftMVCAjax)
Ничего из вышеперечисленного :-) Я бы порекомендовал вам использовать чистый jQuery, но если вам пришлось выбирать между jquery.unobtrusive-ajax и MicrosoftAjax, выбирайте первый по тем же причинам, что и предыдущий.Теперь я, наверное, должен объяснить, почему мне тоже не нравится.Я уже указал на полную хитрость всех скриптов Microsoft *, поэтому давайте не будем повторять это снова.Даже сами Microsoft осознали свою ошибку и, начиная с ASP.NET MVC 3, jQuery становится библиотекой по умолчанию, и их скрипты включены только для совместимости со старыми приложениями, которые вы можете конвертировать, но я предполагаю, что в будущих версиях они полностью исчезнут.Вопрос в том, почему чистый jQuery по сравнению с jQuery.unobtrusive-ajax?Ну, с первым я гораздо больше контролирую события запросов AJAX.Например, при использовании jquery.unobtrusive-ajax, когда объекты JSON возвращаются в обратном вызове OnSuccess, они не анализируются автоматически в объектах javascript, вам придется выполнять синтаксический анализ вручную, а это просто сводит меня с ума.