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 в будущем.