Начинаем создавать веб-приложения для мобильных устройств (любого телефона).
Как лучше всего использовать ASP.NET 3.5 / ASP.NET 4.0 и C#?
ОБНОВЛЕНИЕ (февраль 2010 г.)
Есть новости об использовании Windows Mobile 7?





Это зависит от того, действительно ли вы хотите использовать поддержка каждого мобильного телефона или только высококачественный или новый телефон, такой как iPhone, у которого нет многих ограничений на рендеринг веб-страниц. Если бы вы могли запросить реальный Рендеринг HTML, поддержка Javascript и файлов cookie на телефоне в качестве требований, тогда реальным ограничением является ограниченный размер экрана. Вы должны хорошо справиться с «нормальной» веб-разработкой в ASP.NET, заботясь о размере страниц.
Если это так, вы можете перестать читать здесь.
Если у вас действительно хочу поддерживать каждый сотовый телефон, особенно старые, знайте, что есть разные типы телефонов. Многие из них имеют ограничения и ограничения, показывающий веб-страницы. Некоторые из них могут использовать JavaScript, но многие - нет. Некоторые из них могут отображать HTML-контент, а многие - нет. Они должны полагаться на стандарт «Wireless Markup Language» для доступа в Интернет. Итак, создать веб-сайт, поддерживающий все эти различные устройства, непросто.
Вот несколько ссылок на общий контент (не относящийся к ASP.NET), которые могут помочь получить полную картину:
Однако их главное ограничение - это, как я уже упоминал, меньший экран, чем на обычных ПК. Многие сотовые телефоны не поддерживают JavaScript, файлы cookie, а некоторые даже не показывают изображения.
Для сотовых телефонов существуют специальные стандарты разметки. WML страницы - это, например, широко распространенный стандарт для мобильных телефонов. WML означает «беспроводной язык разметки», основанный на XML. Вы можете найти описание и ссылку на WML здесь, на w3schools.com.
В приведенном ниже коде показан образец страницы WML:
<?xml version = "1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id = "card1" title = "Stackoverflow">
<do type = "accept" label = "Menu">
<go href = "#card2"/>
</do>
<p>
<select name = "name">
<option value = "Questions">Questions</option>
<option value = "MyAccount">My account</option>
<option value = "FAQ">FAQ</option>
</select>
</p>
</card>
<card id = "card2" title = "Menu">
<p>
You selected: $(name)
</p>
</card>
</wml>
Хорошая новость заключается в том, что ASP.NET автоматически отображает содержимое WML (и других стандартов разметки для мобильных устройств). Вам не нужно писать файлы WML самостоятельно. Встроенный механизм определяет тип устройства (сотовый телефон) веб-запросов. Однако обнаружение мобильных устройств в ASP.NET не работает правильно для некоторых (более новых) устройств. Взгляните на WURFL, файл конфигурации XML, который содержит информацию о возможностях и функциях многих мобильных устройств.
Вы можете протестировать страницы, которые вы разрабатываете в ASP.NET, в стандартном веб-браузере, но это не даст правильного представления о том, что вы разработали. Для решения этой проблемы доступны несколько эмуляторов, имитирующих сотовый телефон на вашем настольном компьютере. Существует Статья поддержки Microsoft, в котором объясняется, где их можно скачать.
Элементы управления ASP.NET Mobile, ранее известные как «Microsoft Mobile Internet Toolkit», расширяют .NET Framework и Visual Studio для создания мобильных веб-приложений, позволяя ASP.NET доставлять разметку на широкий спектр мобильных устройств.
Мобильные элементы управления ASP.NET отображают соответствующую разметку (HTML 3.2, WML 1.1, cHTML, XHTML), имея дело с экранами разных размеров, ориентацией и возможностями устройств.
Узнать больше здесь на официальном сайте.
WML был идеальным вариантом 5 лет назад, потому что ни одно устройство не поддерживает все возможности браузера. Я сделал несколько приложений на WML для Nokia 7110 (телефон Nokia с фильмом Matrix), но сегодня простая веб-страница должна помочь.
Как я уже сказал во введении: если вы хотите поддерживать и старые телефоны ...
Подробнее здесь: Windows-мобильная-разработка-с чего начать
Я должен упомянуть пару вещей, поскольку я работаю над беспроводной сетью в Канаде. Старайтесь делать любые изображения маленькими (или даже не существующими), чтобы увеличить время загрузки и снизить расходы на передачу данных. В нашей сети, если пользователь не подписан на план, наша сеть взимает 15 долларов США за мегабайт. Некоторые неоптимизированные изображения, которые пытается загрузить телефон, могут легко стоить пользователю, и эти большие изображения в любом случае будут плохо выглядеть.
Я знаю, что это не повлияет на вас, но если вы используете какие-либо другие протоколы, такие как потоковая передача, или какие-либо протоколы на основе UDP, установите максимальный размер пакета как минимум на 1300 байт или ниже. Просто из-за того, как мобильный телефон работает, когда он перемещается по сети, добавляется дополнительная информация заголовка. В TCP / IP мы используем ограничение MSS для защиты от проблем с большими пакетами, но это не может быть применено ни к какой передаче UDP или любому другому безопасному протоколу, который использует заголовок аутентификации. Если мобильные телефоны, на которые вы нацелены, предлагаются RIM, этот момент можно полностью игнорировать.
Некоторые мобильные устройства могут использовать прокси-сервер WAP при разговоре с вашим сервером, в этом случае старайтесь избегать использования любых соединений, требующих поддержания активности TCP / IP. Некоторые прокси настроены так, чтобы не пропускать через них какие-либо сеансы поддержания активности, хотя я полагаю, что большинство новых в порядке.
Я уверен, что есть еще кое-что, самое важное, что вы должны иметь в виду, что IP-соединение с мобильным телефоном намного сложнее, чем кто-то, открывающий веб-браузер. Этот транспорт может быть чрезвычайно сложным, поэтому, если вы попытаетесь сделать что-то действительно необычное, даже если оно работает сейчас, это может не всегда сработать. Также последний быстрый момент: задержка и потеря пакетов могут сильно колебаться, поэтому, если вы делаете что-то в режиме реального времени, ваша задержка может достигать 200 + мс, и я видел, что потери пакетов резко увеличиваются до 20-30%. раз.
Удачи, и если у вас есть какие-то конкретные вопросы, обязательно их задавайте.
Думаю, на этот счет уже есть много похожих вопросов. Попробуйте поискать по тегу мобильного (stackoverflow.com/questions/tagged/mobile)