Опубликован: 19.03.2014 | Доступ: свободный | Студентов: 329 / 26 | Длительность: 11:36:00
Специальности: Программист
Лекция 2:

Средства разработки серверных сценариев гибридных мобильных приложений под Windows Phone

< Лекция 1 || Лекция 2: 12 || Лекция 3 >
Аннотация: Технология ASP.NET. Особенности разработки мобильных веб-приложений. Средства разработки Visual Studio. Мобильные возможности WebForms, MVC и WebPages. WebForms или MVC? Среда разработки WebMatrix. Мобильные возможности WebMatrix. Средства сохранения данных на сервере. Ключевые возможности SQL Server Compact для мобильных приложений. Microsoft SQL Server Express, Standard, Business Intelligence, Enterprise Edition. Инфраструктура ASP.NET. Облака Windows Azure для гибридных мобильных приложений.

Технология ASP. Особенности разработки мобильных веб-приложений

Главное средство разработки серверных сценариев гибридных мобильных приложений под Windows Phone - технология ASP (Active Server Page) от компании Microsoft. Она появилась в 1997 году и предназначалась для построения веб-страниц в Internet Information Server (IIS). В серверных сценариях ASP HTML-код объединялся со сценарным кодом, интерпретируемым IIS в ответ на запросы со стороны клиента. В результате строилась страница HTML, которая возвращалась клиенту. Технология ASP обладала рядом недостатков: низкое быстродействие серверных сценариев, отсутствие нормальной модели безопасности, управляющий код находился в самой странице (вместе с HTML). Эти и другие проблемы были решены в технологии ASP.NET. Так, в версию ASP.NET 4.5 включены шаблоны мобильных веб-приложений, поддержка новых типов форм HTML5, поддержка отправки и получения HTTP-запросов и ответов в асинхронном режиме, поддержка асинхронных модулей и обработчиков и ряд других возможностей, обеспечивающих повышенную производительность при работе со страницами [1].

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

Часто мобильные веб-приложения создаются в дополнение к полноценному веб-приложению для того, чтобы дать доступ к некоторым его функциям пользователям мобильных устройств. В таком случае (и не только в таком) целесообразно использовать многослойную архитектуру, которая потребует при разработке мобильного приложения только создать обновленный слой пользовательского интерфейса. Если при разработке приложения использовались эмуляторы мобильных устройств, то перед окончательным запуском приложения в производство необходимо обязательно протестировать его с использованием основных типов реальных мобильных устройств, которые наиболее популярны у большинства пользователей, т. к. некоторые проблемы с производительностью, скоростью прорисовки и передачи данных могут не проявиться при использовании эмуляторов.

Хотя в ASP.NET применяются технологии, благодаря которым разработка веб-приложений для мобильных устройств следует той же парадигме, что и разработка традиционных веб-приложений, ограничения в обозревателях для мобильных устройств зачастую означают, что страницы, разработанные для обозревателей персональных компьютеров, не всегда могут отображаться в обозревателях для мобильных устройств. Например, веб-страница ASP.NET, включающая заголовок узла, панель переходов в верхней части страницы, второстепенную навигационную структуру сбоку страницы, а также содержимое остальной части страницы, в обозревателе для персонального компьютера будет отображаться так, как она была разработана. В этом случае, как правило, достаточно места, чтобы должным образом отобразить все элементы управления и при этом оставить дополнительное место для отображения прокручиваемого содержимого. Тем не менее, во многих мобильных устройствах отображение такого макета невозможно, поскольку область экрана гораздо меньше, поэтому даже переход превращается в многоэтапный процесс, при котором пользователь должен щелкнуть несколько элементов управления, чтобы увидеть содержимое страницы.

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

Разработка мобильных приложений ASP.NET может быть выполнена в двух средах: VisualStudio для разработки серверных приложений любой сложности и WebMatrix для приложений небольшой и средней сложности.

Средства разработки Visual Studio

Visual Studio - полноценная среда разработки для создания как клиентских, так и серверных мобильных приложений любой сложности. Имеет три основных подхода для разработки мобильных серверных сценариев: WebForms - подход, похожий на разработку "настольных" приложений; MVC (Model-View-Controller) - подход, построенный на разделении данных, логики и интерфейса приложений, требует большего написания кода, чем WebForms; WebPages - самая простая альтернатива технологиям Web Forms и MVC для начинающих разработчиков.

Мобильные возможности WebForms

Отметим, что при работе с веб-формами для мобильных устройств в старых версиях ASP частой проблемой было отсутствие полного контроля над HTML. Контроль мог быть усилен путем использования адаптеров элементов управления, что приводило к дополнительной работе по адаптации страниц к небольшим мобильным экранам и увеличивало время загрузки. В современную платформу ASP.NET, которая служит основой для Web Forms, встроена поддержка распознавания мобильных браузеров. Кроме этого, в ASP.NET 4 (и выше) добавлены следующие, существенные для мобильных приложений, усовершенствования для WebForms [2]:

  • Поддержка новых браузеров и мобильных устройств.
  • Упрощение работы с возможностями браузера.
  • Поддержка взаимодействия c HTML5 Forms.
  • Возможность использовать элементы HTML5, такие как email, tel, url и search.
  • Поддержка использования маршрутизации ASP.NET совместно с веб-формами.
  • Возможность сохранения выбранных строк в элементах управления данными.
  • Улучшенное управление HTML-кодом, отображаемым с помощью элементов управления FormView и ListView.
  • Улучшенная поддержка веб-стандартов и специальных возможностей.

Мобильные возможности MVC

Фреймворк MVC ("Model-view-controller" - "Модель-представление-контроллер") используется очень давно. Еще в 1979 году его описал Тригве Реенскауг в своей работе "Разработка приложений на Smalltalk-80: как использовать Модель-представление-контроллер". С тех пор фреймворк зарекомендовал себя как очень удачная архитектура программного обеспечения. На данный момент MVC реализован в том или ином виде для большинства языков программирования, используемых для разработки веб-приложений.

MVC это представление приложения, которое отделяет логическую часть от визуальной.

  • Модель (Model) представляет структуру данных. Обычно модельные классы содержат функционал, помогающий извлекать, вставлять и обновлять информацию в базе данных.
  • Вид (view) - информация, которая описывает то, что показывается пользователю (пользовательский интерфейс).
  • Контроллер (controller) - сервисы, которые являются посредниками между model, view и другими ресурсами, необходимыми в процессе HTTP запроса и генерации веб-страницы.

Первый вариант реализации MVC для ASP.NET Microsoft представила 10 декабря 2007 года. В этом фреймворке Microsoft для разработчиков ASP.NET был предложен новый стиль, ориентированный на высокое качество программного кода. Генерируемый MVC код страниц не содержит ничего автоматически создаваемого, не предполагая использование классических веб-форм и веб-элементов управления. В августе 2012 года Microsoft представила MVC4, в котором мобильным устройствам уделяется большое внимание [3].

В ASP.NET MVC 4 для мобильных устройств появились [4]:

  • мобильные шаблоны, рассчитанный только на мобильные браузеры,
  • методика адаптивного рендеринга,
  • возможность устанавливать компоненты: jQuery Mobile,
  • улучшенная расширяемость,
  • улучшенная поддержка Ajax.

В шаблон проектов Mobile Application в ASP.NET MVC 4 включены средства, ориентированные именно на мобильные браузеры, он удобен, когда вам нужен эталон в реализации средств, специфичных для таких браузеров.

Адаптивный рендеринг (adaptive rendering) - это процесс отображения веб-сайта по-разному, в зависимости от возможностей целевого устройства и браузера. Эта методика позволяет изменять стиль контента как угодно в зависимости от возможностей браузера. Иногда модификации стилей недостаточно, чтобы сделать сайт визуализируемым и удобным на всех устройствах. Уже не достаточно того, что сайт обеспечивает качественную визуализацию в мобильных браузерах; чтобы сайт считался совершенным, он должен полностью соответствовать "духу и букве" родных приложений, выполняемых на устройствах. Это требует передачи специфических представлений не только для мобильных браузеров в целом, но и для каждого мобильного браузера индивидуально. В таких случаях единственный реальный вариант - создавать представления (view), адаптированные к типам браузеров и устройств, на которые вы ориентируетесь. Для этого в ASP.NET MVC 4 введены так называемые режимы отображения - Display Modes. Эта новая функция позволяет сочетать простоту соглашения о конфигурации с надежностью распознавания браузера и передавать специфические для браузера представления.

Добавление этих средств к ASP.NET MVC 4 позволяет легко обслуживать представления, специфичные для мобильных устройств или браузеров, безо всяких изменений или с минимальной модификацией. Используя переопределение представлений и режимы отображения в ASP.NET MVC 4, вы можете передавать представления, специфичные для мобильных устройств или браузеров, что дает возможность полностью адаптировать сайт под любое устройство, на котором он визуализируется.

jQuery Mobile - это библиотека с открытым исходным кодом, позволяющая создавать пользовательский интерфейс для мобильных устройств на основе JavaScript. Новый шаблон Mobile Application изначально включает jQuery Mobile, более того, он реализует jQuery Mobile во всех представлениях по умолчанию.

WebForms или MVC?

Долгое время термином ASP.NET обозначались приложения, написанные с использованием модели программирования Web Forms. Почти десять лет эти два термина считались синонимами. Однако десять лет - долгий промежуток времени, особенно в мире программирования. ASP. NET MVC - альтернативная платформа веб-разработки, она растет и быстро развивается. Остается ли ASP.NET Web Forms превосходным решением для компаний, занимающихся разработкой мобильных веб-приложений? Является ли модель Web Forms лучшей из всех возможных моделей? За прошедшие годы технология ASP.NET Web Forms развивалась и совершенствовалась. Ее гибкая архитектура позволила внести многочисленные изменения и усовершенствования, при этом она по-прежнему остается эффективной и производительной. Хотя при проектировании первых версий архитектуры ASP.NET использовались совсем не те принципы и приоритеты, которые применяются сегодня, большинство существенных для мобильных приложений, недостатков ASP.NET (тяжеловесные страницы, ограниченный контроль над разметкой, трудности с тестированием) теперь удается сгладить или устранить для построения эффективных решений. Теперь веб-формы поддерживают привязку модели, которая позволяет привязать элементы управления данными непосредственно к методам доступа к данным. ASP.NET автоматически преобразует данные из полей формы, строк запроса, файлов cookie, состояния сеанса и состояния просмотра в параметры метода. Можно использовать эти параметры, чтобы выбрать или обновить данные в базе данных. (Эта технология аналогична привязке модели в платформе ASP.NET MVC).

Таким образом, появление новой технологии ASP.NET MVC не означает, что технология ASP.NET Web Forms осталась в прошлом. Всегда существуют веские причины для разработки новых технологий, но хорошее понимание потребностей и возможностей конкретной разработки по-прежнему остается единственным надежным путем ее успеха.

Мобильные возможности WebPages

ASP.NET Web Pages [5] была выпущена в одно время с ASP.NET MVC 3 и вполне подходит для разработки упрощенных мобильных сайтов, где не требуется создавать полнофункциональные MVC-приложения. Шаблоны WebPages - проектов в Visual Studio носят название "Веб-сайт ASP.NET(Razor)", поскольку они включает движок шаблонизации Razor - новый способ генерации HTML при помощи C# или VB.NET, который также используется и в ASP.NET MVC.

< Лекция 1 || Лекция 2: 12 || Лекция 3 >
Дмитрий Белов
Дмитрий Белов

Каким образом можно создать точку останова? Например, если в Лекции 8 в примере, который демонстрирует возможность <canvas> для работы с готовыми изображениями (последний в лекции) в цикле
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
sx = 300 * i; sy = 350 * j;
contextNow.drawImage(img, sx, sy);}
поставить точку останова, то при запуске отладки проекта точка становится пустой окружностью с сообщением: В настоящий момент попадание в точку останова не произойдет. Нет загруженных символов для этого документа. Как все-таки создать точку останова и пройти по шагам весь код?