Как сделать ASP.NET для поддержки мобильных устройств.
Мобильные устройства, такие как сотовые телефоны с веб-доступом и персональным цифровым помощником (PDA) становятся всё более распространенными. Инфраструктуры, которые поддерживают «Беспроводные сети» становятся всё больше и более надежными. Существует мнение, что мобильные пользователи будут продолжать расти с огромной скоростью.
В этом сценарии есть хорошие возможности для разработки специальных веб-страниц для мобильных устройств, и они могут сделать хорошее применение технологии ASP.NET. Но эта идея не понравилась многим разработчикам. Основной причиной является стоимость добавления дополнительных страниц на своём веб-сайте. Особенно, если мы посмотрим на сотовые телефоны,которые используют разные стандарты «Wireless Markup Language» (WML) для просмотра веб-страниц. И мы знаем, что разработки WML страниц никаких дополнительных усилий со стороны разработчика не сделали, следовательно, более мобильные устройства более экономичные.
Итак, что предлагает ASP.NET из интернет-приложений для мобильных устройств? При использовании ASP.NET для мобильных устройств Software Development Kit (Mobile SDK), разработчик может создавать веб-страницы с теми же нормами и конструкциями, которые необходимы для создания любой традиционной страницы.
Данная статья написана,что бы изучить некоторые аспекты ASP.NET Mobile SDK. В конце этого урока, читатель должен иметь представление о:
1.Как мобильные устройства различаются по своим возможностям в режиме реального времени сценариев.
2.Как написать ASP.NET страницу для мобильных устройств, которые могут быть использованы в мобильных устройствах.
3.Использование различных ASP.NET для мобильных устройств
Разница между различными мобильными устройствами.
Существуют присущие трудности ,когда как мы имеем дело с мобильными устройствами. Так как ,они имеют ряд ограничений. В некоторых из них можно использовать JavaScript и многие это не делают. Некоторые из них могут отображать HTML-страницы, но большинство сотовых телефонов этого не может делать. Для доступа к сети они вынуждены полагаться на стандартные WML. Так, что сделать веб-сайт, который поддерживает все эти устройства трудно.
Если бы Вы ,изучили их ограничения в деталях, вы бы узнали, что проектирование доступных веб-сайтов для КПК относительно легко. Потому что:
1.КПК может сделать HTML страницы и отображать многие существующие веб-сайты без проблем.
2.Многие из них поддерживают JavaScript.
3.Многие из них поддерживают Cookies (куки) и файлы изображений.
4. Но их основным ограничением является маленький экран.
И напротив, дело с мобильными телефонами не очень лёгкое.Такими причинами являются:
5.Многие сотовые телефоны не могут показывать HTML страницы.
6.Есть некоторые сотовые телефоны высокого класса, которые могут показать HTML, но они могут поддерживать только ограниченный набор стандартных HTML.
7.Многие из них не поддерживает JavaScript, Cookies или файлы с изображениями.
Что такое WML и XML?
Как правило, мобильные телефоны могут устанавливать WML файлы. WML является Wireless Markup Language, основанный на XML (Extensible Markup Language). XML, в отличие от HTML поддерживает пользовательские метки. Он поддерживает естественный способ представления данных. XML-файлы имеют схемы, связанные с ними и которые показывают структуру, в которой эти файлы находятся. Не беспокойтесь, если вы не знаете, XML в деталях. Но всё же, рекомендуется, посмотреть на него (www.w3schools.com).
Код ниже показывает пример страницы WML.
<? xml version= «1.0 «>
<! DOCTYPE wml PUBLIC «-//WAPFORUM//DTD WML 1.1//EN »
«http://www.wapforum.org/DTD/wm1_1.1.xml «>
< wml >
< card >
<p>Welcome to ASP.NET mobile device programming</p>
</card>
</wml>
Первая строка является стандартным заголовком XML, который присутствует во всех страницах WML.В следующих двух строках указывается схема для файла WML. Эти три линии являются неотъемлемой частью в каждой странице WML. Каждая страница WML состоит из <wml> тегов. WML файлы состоят из карт, которые могут вставлять различные HTML тегов внутри. В листинге 1.1, выход генерируется только в один тег.
Описание: ASP.NET делает WML файлы в автоматическом режиме (так что вам не нужно явно писать WML файлы). Он определяет характер вызывающего- сотовый телефон или PDA. Так как КПК не может создать WML страницы, ASP.NET работает с такими проблемами, управляя рендерингом страниц на себя.
Программы эмуляторы: Вы можете проверить страницы в стандартном веб-браузере, но это не дало бы реальную картину того, что вы разработали. Чтобы решить эту проблему, были разработаны некоторые эмуляторы. Они имитируют мобильный телефон или КПК на рабочем столе компьютера так, чтобы его можно было рассматривать в качестве виртуального мобильного устройства. Вы можете использовать эмуляторы для тестирования веб-страниц, дизайна для мобильных устройств.
Microsoft были разработаны два эмуляторы. Один из них для сотовых телефонов ,друой для КПК. Их можно загрузить и установить до начала испытания ваших страниц (это было бы наиболее трудоемкой задачей в обучении).
Создание ASP.NET для мобильных веб-страниц.
Теперь мы обсудим основные темы этой статьи. Как вы можете создавать мобильные веб-страницы (обычно называется веб-формы в среде ASP.NET). Приведенный ниже код выводит простое сообщение для любого мобильного устройства. Обратите внимание, что классы мобильной библиотеки ASP.NET должны быть включены в каждую мобильную веб-страницу. Эти классы определяют мобильные веб-элементы управления.
<% Page Inherits= «System.Web.UI.MobileControls.MobilePage » Language= «C# «%>
<%@ Register TagPrefix= «mobile » Namespace= «System.Web.UI.MobileControls » Assembly= «System.Web.Mobile » %>
<mobile: Form runat= «server «>
<mobile: TextView runat= «server «>Welcome
</mobile: Form>
Первые две строки включают MobilePage класс, который содержит определения запасов мобильных классов. Следующие четыре строки указывают пространство имен, которые определяют мобильные устройства. Всё, что вам нужно сделать, это включить строки 1-6 в каждую мобильную веб-страницу, которую вы проектируете. TextView отображает текстовые сообщения. Каждая мобильная веб-форма соответствует одной странице отображаемой на мобильном устройстве. Вы можете держать одну форму на странице. Но лучший способ заключается в использовании нескольких форм на веб-странице. Для отображения других форм, вы должны добавить ID второй формы, чтобы URL использовали символ #. Есть два преимущества использования различных форм на странице.
1.В целом, вам потребуется меньше файлов.
2.Все соответствующие экраны могут быть помещены в один файл.
<% Page Inherits= «System.Web.UI.MobileControls.MobilePage » Language= «C# » %>
<%@ Register TagPrefix= «mobile » Namespace= «System.Web.UI.MobileControls » Assembly= «System.Web.Mobile » %>
<mobile: Form runat= «server » id= «form1 «>
<mobile: TextView runat= «server » >
</mobile: TextView>
<mobile: Link runat= «server » NavigateURL= «#form2 «> Check what experts say</mobile: Link>
</mobile: Form>
<mobile: Form runat= «server » id= «form2 «>
<mobile: TextView runat= «server » >Great technology!!!</mobile: TextView >
</mobile: Form>
В коде выше, первая форма (Form1) связана со второй формой (Form2) с помощью NavigateURL и путём добавления в Form2 идентификатора ссылки предшествующей #. При подключении двух различных форм на той же странице, это стандартная процедура. Вы также можете установить ActiveForm свойства страницы, чтобы достичь той же цели.
ASP.NET для мобильных веб-элементов управления.
Программирование для мобильных устройств включает в себя множество элементов управления, которые используются для решения ввода / вывода данных и их представления. Некоторые из этих элементов управления вы обычно используете в традиционном программировании ASP.NET. Я даю краткий список мобильных устройств наряду с их описанием.
TextView
Описание:Используется для отображения текстовых сообщений на экране.
Пример: См. его использования в листинге 1,2 и 1,3
Этикетка
Описание: Отображает строки на экране. Его значение может быть установлено динамически.
Пример:
if (age<21)
MyLabel.text = » Under 21 «
Список
Описание:Используется для отображения маркированного списка пунктов, которые пользователи могут выбирать. Когда пользователь выбирает пункт, ItemCommandEvent отправляется и может быть обработан программными средствами.
Пример: См. ближайшие пример (Листинг 1,4).
SelectionList
Описание: отображает список элементов, а также может быть заполнен серверным кодом.
ObjectList
Описание:Для отображения пользовательских элементов, используется этот элемент управления. Комплекс элементов списка может быть обработан с использованием этого элемента управления.
Входной контроль:
Есть некоторые элементы управления для получения ввода от пользователя. Они включают кнопку (которая отображается как ссылка сотовых телефонов), TextBox (что позволяет пользователю ввести буквенно-цифровые значения), и ссылку.
Проверка управления:
Все проверяющиеся элементы управления, которые мы видим в традиционных страницах ASP.NET могут быть использованы в мобильном программировании. К ним относятся RangeValidator (проверяет диапазон значений), CompareValidator (сравнивает определенные поля ввода), RegularExpressionValidator (может быть использовано для ограничения пользователей конкретных входных форматов), CustomValidator (определяется программист) и SummaryValidator (принимает результаты контроля и проверки форматов этих результатов).
Управление вызовами:
Это интересный контроль, который может совершать телефонные звонки с вашего мобильного телефона и КПК. Для того чтобы это сделать, установите свойство PhoneNumber на номер устройства,который необходимо набрать при выборе элемента управления.
Другие элементы управления:
Есть некоторые другие элементы управления, такие как календарь, AdRotator и управление изображением, которые не могут быть поддержанными некоторыми мобильными устройствами. Но есть заместители , чтобы сделать эти задачи.
<% Page Inherits= «System.Web.UI.MobileControls.MobilePage » Language= «C# » %>
<%@ Register TagPrefix= «mobile » Namespace= «System.Web.UI.MobileControls » Assembly= «System.Web.Mobile » %>
<script runat= «server «>
private class weekday
{
private String Comments;
private String name;
public weekday (String comm., String name)
{
this.Comments=comm.;
this.name=name;
}
public String comments
{
get {return this.Comments;
}
public String name
{
get {return this.name;
}
}
protected ArrayList weekendArray;
protected int index;
protected void Page_Load (Object Sender, EventArgs e)
{
weekendArray= new ArrayList ();
weekendArray.Add (new weekend ( «Had to Back on Monday «, «Monday «));
weekendArray.Add (new weekend ( «Oh Programmers life is … «, «Tuesday «));
weekendArray.Add (new weekend ( «Weekend is few days way «, «Wednesday «));
weekendArray.Add ( new weekend( » Should do shopping for Weekend trip «, «Thursday » ));
weekendArray.Add ( new weekend( » Thank God … Bye bye Boss … «, «Friday » ));
weekendArray.Add (new weekend( » Looooong Weekend !!! » , «Saturday » ));
weekendArray.Add ( new weekend( » Had everyday been Sunday … «, «Sunday » ));
index= DateTime.Now.MilliSeconds % 7;
protected void GiveComments (Object Sender, ListCommandEventArgs e)
{
weekend w = (weekend) weekendArray [index];
if ( e.ListItem.Value == » CommentDays «)
{
Day.Text = p.comments;
ActiveForm= «Day1 «;
}
if ( e.ListItem.Value == » DontDisplay » )
{
Name.Text = p.name;
ActiveForm = «Name1 «;
}
}
}
</script>
<mobile :Form runat= «server » >
< mobile :List OnItemCommand = «GiveComments «>
<Item Text= «Select Day to see comments » Value= » CommentDays » / >
<Item Text= «Display any name of days » Value = » DontDisplay » />
</ mobile :List >
</mobile: Form>
<mobile :Form id= «Day1 » runat= «server » >
< mobile :label runat= «server » id=Day>
</mobile: Form>
<mobile :Form id= «Name1 » runat= «server » >
< mobile :label runat= «server » id=Name>
</mobile: Form>
В приведенном выше примере кода, пользователю будет предоставлено два варианта: Показать комментарии на конкретный день или отображать название дня .Здесь Вы можете видеть роль ActiveForm. В списке меню, есть обработчик событий, который мы определили как GiveComments. Этот пример должен быть достаточным, чтобы сделать практически все задачи, связанные с взаимодействием с пользователем.
Наконец, в заключении я собираюсь разработать разбиение на страницы. Поскольку мобильные устройства имеют небольшие экраны и данные для отображения могут быть больше чем размер экрана, вы можете использовать Pagination ,что бы разбить длинное сообщение на более мелкие сообщения. Таким образом, пользователь может читать меньше сообщений, нажав кнопку в нижней части экрана или нажав кнопку Выбрать, чтобы показать следующеую часть сообщения. Разбивка на страницы достигается путем установки разбиения на страницы :
<mobile: Form runat= «server » Paginate= «True «>
Резюме:
•При использовании ASP.NET для мобильных устройств Software Development Kit (Mobile SDK), разработчик может создавать веб-страницы с той же конструкцией, которые необходимы для создания любой традиционной страницы.
•Возможности различных мобильных устройств различаются по HTML рендерингу, JavaScript и Cookies поддержкой. КПК имеет больше возможностей и проектирование для КПК доступных веб-сайтов относительно легче.
•WML (Wireless Markup Language) основан на XML (Extensible Markup Language)
• ASP.NET контроль рендеринга страниц через себя
•Программы эмуляторы помогают программисту в тестировании вывода страницы для мобильных устройств.
•ASP.NET классы мобильной библиотеки должны быть включены в каждой мобильной веб-странице
•Вы можете использовать для мобильных устройств ввод, проверку и отображение данных ,взаимодействуя с пользовательскими данными.
•Разбивка на страницы — делает длинное сообщение в более маленькие сообщения, которое будут отображаться на экране мобильного устройства.