2011-12-29 5 views
5

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

ответ

11

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


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

Кроме того, большинство веб-элементов управления будет emit 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 для поддержания состояния через post backs (состояние просмотра, жизненный цикл страницы) часто совершенно бесполезна, а иногда даже контрпродуктивна.


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


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

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

Вместо этого вы можете позвонить по телефону use web methods на своей странице. Статические методы страницы с атрибутом [WebMethod] вернут форматированные данные JSON, что сегодня отлично подходит для большинства фреймворков JavaScript. Тот факт, что эти методы must be declared as static означает, что они не участвуют в жизненном цикле страницы. Это также означает, что они имеют лучшие характеристики производительности.

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

+0

спасибо..michielvoo. Поскольку я должен использовать веб-формы ASP.NET, я думаю использовать веб-методы или использовать обработчики async, но, если это возможно, я бы хотел избежать этого подхода. – Kai

+1

Если вы не возражаете, я спрашиваю, как MVC лучше подходит для JQuery Mobile? Я видел много людей, которые просто говорят «если вы используете переключатель .NET Web Forms для MVC», но не объясняете его. Я работаю над проектом с веб-формами и имел некоторые проблемы с Postbacks и пытался перейти на WebMethod или UpdatePanels, но задавался вопросом об этом. – avivas

1

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

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

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

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

+0

Примечание: Мы отбросили UpdatePanel давно в пользу прямых (и более управляемых вызовов jQuery ajax). –

+0

Я пытаюсь обратиться сюда, это jQuery mobile, а не jQuery. – Kai

Смежные вопросы