Плюсы и минусы 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 ответов:
Лично я бы предпочел 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.