jQueryMobile в ASP.NET WebForm - PullRequest
       3

jQueryMobile в ASP.NET WebForm

5 голосов
/ 29 декабря 2011

Является ли использование jQueryMobile в приложении ASP.Net Web Form правильным подходом?
Каковы преимущества и недостатки использования jQueryMobile или другой библиотеки Mobile JS в веб-форме ASP.NET?

Ответы [ 2 ]

11 голосов
/ 30 декабря 2011

ASP.NET Web Forms - это хорошая инфраструктура, но большая ее часть вам не нужна для мобильной разработки с использованием JavaScript UI.Сначала я перечислю минусы, затем альтернативу и, наконец, дам несколько советов, когда вам нужно использовать веб-формы, несмотря на минусы.


Проблема с веб-формами ASP.NET заключается в том, что вы этого не делаетевсегда иметь полный контроль над HTML.Это можно уменьшить с помощью , используя адаптеры управления , избегая использования определенных элементов управления и используя свойства EnableViewState для элементов управления и страниц.ASP.NET Web Forms 4.0 также устраняет некоторые проблемы, такие как непредсказуемые идентификаторы клиентов .Но все это добавляет дополнительной работы, чтобы обойти природу веб-форм ASP.NET.

Кроме того, большинство веб-элементов управления отправляют JavaScript на страницу для ASP.NET Web Forms отправляет обратно модель для работы.Например, с <asp:DropDown AutoPostBack="true">, <asp:TextBox OnTextChanged="..." > или <asp:Panel DefaultButton="...">.Это действительно хорошо, если ваш стиль разработки в основном на стороне сервера, и вы рады, что вам не нужно беспокоиться о деталях, заставляющих все это работать на стороне клиента.

<asp:UpdatePanel> - еще один прекрасный пример: вы добавляете его на страницу и магически активируете AJAX-страницу.Но он отображает довольно много JavaScript, все ваше состояние просмотра по-прежнему отправляется назад и вперед между клиентом и сервером, и даже для небольшого обновления вся страница обрабатывается на стороне сервера.

Но для мобильной разработки вамхочу оптимизировать ваши страницы для небольших экранов и быстрой загрузки.Обычно мобильные JavaScript-структуры заботятся о поддержании состояния на стороне клиента, асинхронной отправке и получении сообщений и обновлении представления с помощью JavaScript.Это означает, что вся эта инфраструктура в ASP.NET Web Forms для поддержания состояния почтовой поддержки (состояние просмотра, жизненный цикл страницы) часто совершенно бесполезна, а иногда даже контрпродуктивна.


Я думаюВ целом ASP.NET MVC лучше подходит для разработки мобильных приложений в целом и для jQuery Mobile.


Если вы должны использовать веб-формы ASP.NET,затем используйте элементы управления, такие как <asp:ListView>, для рендеринга HTML, который вы собираетесь использовать для элементов списка jQuery Mobile UI.Этот элемент управления дает вам довольно хороший контроль над HTML.

Старайтесь не использовать элемент управления <asp:UpdatePanel>, потому что тогда вы определенно смешиваете метафоры.В общем, не слишком полагайтесь на посты.

Вместо этого вы можете использовать веб-методы на своей странице, которые вы можете вызывать напрямую из JavaScript.Методы статической страницы с атрибутом [WebMethod] будут возвращать данные в формате JSON, что сегодня хорошо подходит для большинства сред JavaScript.Тот факт, что эти методы должны быть объявлены как статические , означает, что они не участвуют в жизненном цикле страницы.Это также означает, что они имеют лучшие характеристики производительности.

Наконец, даже когда вы используете веб-формы, вы всегда можете использовать файлы .ashx (основной IHttpHandler и его асинхронный двоюродный брат, IHttpAsyncHandler) или веб-сервисы с атрибутом ScriptService .Эти параметры также будут хорошо перенесены, если вы решите использовать ASP.NET MVC в будущем.

1 голос
/ 30 декабря 2011

Я надеюсь, что это не превратится в вечеринку с бешенством ASP.NET WebForms.

Ответ - и ASP.NET WebForms - это хорошо, и ASP.NET MVC - тоже.Что вы используете сегодня?Что тебе больше всего нравится?Сколько времени у вас есть?Какой срок выполнения проекта?

Да, сгенерированные WebForm идентификаторы управления немного раздражают, но есть обходные пути.Да, старайтесь держаться подальше от UpdatePanel, но ничто не мешает вам одновременно использовать jQuery.UpdatePanel исторически подвергался насилию.Период.Это хоггер ViewState, который не идеален для мобильных приложений.

В конце концов, WebForms будут отлично работать, иметь жизненный цикл страницы и могут выполнять некоторую надежную логику на стороне сервера.В мобильной среде я стараюсь держаться подальше от любого элемента управления runat=server, так как я хочу в основном создавать свой собственный HTML и избегать ViewState.Кроме того, статический [WebMethod, ScriptMethod] на уровне страницы помогает организовать ваш код.

...