Плюсы и минусы MS Ajax против jQuery в an ASP.NET приложение MVC?


Теперь, когда RC1 вышел, мне нужно решить раз и навсегда, использовать ли библиотеки MS Ajax или просто jQuery для запросов AJAX. Приложение-это новое приложение. По существу, я решу, получу ли я какую-либосущественную выгоду от библиотек Microsoft, которую я не получу от jQuery. У меня уже есть загрузка jQuery, и я больше всего обеспокоен дополнительными накладными расходами на размер файла.

Насколько мне известно, единственная выгода заключается в том, что там есть ли помощники, подобные Ajax.BeginForm, но, возможно, они все равно будут работать с jQuery в какой-то момент? Сегодня мне также сказал мой друг-государственный служащий, что библиотека MS Ajax имеет много ошибок в ней, что меня беспокоит.

Теперь, когда Microsoft официальноподружилась с jQuery , я бы не слишком беспокоился о том, что они сделают что-нибудь в будущем, чтобы оставить jQuery в пыли, улучшив свои собственные библиотеки.

Я действительно не очень много знаю о том, что на самом деле делает MS Ajax для меня. Есть ли определенные плюсы и минусы. Или это просто 90% раздувание для поддержки "панели обновления"?

Я также нахожу очень интересным, что ASP.NET MVC in Action book просто пропускает библиотеки MS Ajax и переходит прямо в jQuery:

В этой главе читатель будет рассмотрим, как технология AJAX является приложенный к ASP.NET MVC в более бесшовный способ, чем с веб-формами. То читатель увидит, как использовать все более популярный, легкий библиотека javascript называется jQuery.

(из свободного образца главы об AJAX)

Был бы очень признателен услышать от кого-либо об их опыте работы с обоими, особенно по следующим дополнительным вопросам:

  • легко ли конвертировать код между двумя библиотеками-при условии относительно простых требований ajax ?
  • отладка заметно лучше или быстрее в любой библиотеке
  • кто-нибудь знает, как это делается ASP.NET 4.0-это прогресс и какие-либо объявленные планы по библиотеке AJAX, которые могут быть полезны для MVC?
  • что в двух словах может сделать MS AJAX для приложения MVC помимо отправки запросов и размещения ответа в DIV?
  • Как сделать эквивалент Ajax.BeginForm(...) и использовать jQuery ?
  • В чем состояла ваша сделка с убийцей так или иначе?
  • чем там пользуется большинство людей?
5 17

5 ответов:

Лично я бы предпочел JQuery. MS AJAX довольно тяжеловесен с точки зрения размера, и вы можете сделать так много с JQuery. Что касается того, легко ли конвертировать код, ну это зависит от того, сколько материала MS AJAX вы используете. Я не думаю, что существует действительно заметная разница в отладке от одного до другого. У вас будет более широкое сообщество пользователей JQuery, из которого можно будет извлекать ресурсы.

Вы можете (и я делаю) использовать оба в зависимости от потребности. Когда я хочу, чтобы определенная форма не была дружественной к javascript, и я генерирую контент на сервере, я буду использовать MS AJAX через AjaxHelper. Он строит все, что мне нужно на стороне клиента, чтобы обрабатывать браузер, не поддерживающий javascript. Мне нужно только обнаружить AJAX/non-AJAX в контроллере и вернуть частичное или полное представление в зависимости от этого. Если мне нужно использовать AJAX как часть плагина (скажем, autocomplete), то я использую jQuery. Дело в том, что я использую инструмент, который лучше всего подходит (проще всего реализовать) для меня. Конечно, большинство моих приложений работают в интрасети, поэтому я гораздо меньше беспокоюсь о размере загрузок.

Я также нашел объявление jQuery О MS, включающем библиотеку

По-видимому:

Дополнительно Microsoft будет разработка дополнительных средств контроля или виджеты, чтобы запустить поверх jQuery, что будет легко развертываться в пределах вашего .Net-приложений. в jQuery помощники также быть включенным в серверную часть часть разработки .NET (in дополнение к существующим помощникам) обеспечение дополнительных функций для существующие ASP.NET Аякс способности.

Поэтому я думаю, что вполне вероятно, что у них будут помощники jQuery, которые точно отражают помощников AJAX для MS-файлов.

Я думаю, что решение, которое я приму, будет использовать Html.BeginForm, а затем перехватить кнопку submit, чтобы использовать jQuery. Я не особенно беспокоюсь о людях без javascript, теряющих функциональность, но это не так уж сложно сделать, так что я тоже могу.

JQuery гораздо легче кодировать, чем Ajax все проблемы с накладными расходами могут быть устранены путем добавления большего объема памяти, а не путем выравнивания потока кода. Аякс просто не имеет никакого смысла для меня, хотя я только новичок в этом. После работы с чрезмерно критичным синтаксисом Ajax, jQuery - это как глоток свежего воздуха.

Ну, есть одна вещь, которую я нашел С MS Ajax framework, что не может быть сделано элегантно с jQuery. Пользовательские элементы управления build MS Ajax очень объектно-ориентированы. Это не может быть легко сделано с помощью jQuery. Например, предположим, что вы создаете пользовательский элемент управления "address", который будет иметь address1, address2, city, state, zipcode и country. Вы можете построить этот элемент управления с помощью jQuery и Ajax, но преимущество, которое предоставляет библиотека Ajax, заключается в том, что она будет разделять элемент управления address. Вы можете определите функцию " reset ()"для этого элемента управления, которая сбросит содержимое элемента управления address. Допустим, вы хотите "reset ()", чтобы установить address1, address2, City в пустую строку, но State в " AL " и Country в USA. Вы определяете код для элемента управления Ajax в (.JS) файл, и эта функция будет связана с вашим адресным управлением. То же самое невозможно с jQuery. Любая функция, которую вы определяете, будет глобальной по объему, и нет простого способа связать эту функцию с управлением адресом. Вы можете очень хорошо позвонить функция "сброс" на элементе управления текстовым полем в форме!!!

Так что если вы хотите создать чисто объектно-ориентированные пользовательские элементы управления, то я думаю, что лучший выбор-это использование MS Ajax framework.