Интернет для мобильных устройств - лучшие практики для ASP.NET

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

ОБНОВЛЕНИЕ (февраль 2010 г.)
Есть новости об использовании Windows Mobile 7?

Думаю, на этот счет уже есть много похожих вопросов. Попробуйте поискать по тегу мобильного (stackoverflow.com/questions/tagged/mobile)

Eric Sabine 28.12.2008 19:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
6 045
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Это зависит от того, действительно ли вы хотите использовать поддержка каждого мобильного телефона или только высококачественный или новый телефон, такой как 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

Элементы управления 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), но сегодня простая веб-страница должна помочь.

balexandre 28.12.2008 19:39

Как я уже сказал во введении: если вы хотите поддерживать и старые телефоны ...

splattne 28.12.2008 19:46

Я должен упомянуть пару вещей, поскольку я работаю над беспроводной сетью в Канаде. Старайтесь делать любые изображения маленькими (или даже не существующими), чтобы увеличить время загрузки и снизить расходы на передачу данных. В нашей сети, если пользователь не подписан на план, наша сеть взимает 15 долларов США за мегабайт. Некоторые неоптимизированные изображения, которые пытается загрузить телефон, могут легко стоить пользователю, и эти большие изображения в любом случае будут плохо выглядеть.

Я знаю, что это не повлияет на вас, но если вы используете какие-либо другие протоколы, такие как потоковая передача, или какие-либо протоколы на основе UDP, установите максимальный размер пакета как минимум на 1300 байт или ниже. Просто из-за того, как мобильный телефон работает, когда он перемещается по сети, добавляется дополнительная информация заголовка. В TCP / IP мы используем ограничение MSS для защиты от проблем с большими пакетами, но это не может быть применено ни к какой передаче UDP или любому другому безопасному протоколу, который использует заголовок аутентификации. Если мобильные телефоны, на которые вы нацелены, предлагаются RIM, этот момент можно полностью игнорировать.

Некоторые мобильные устройства могут использовать прокси-сервер WAP при разговоре с вашим сервером, в этом случае старайтесь избегать использования любых соединений, требующих поддержания активности TCP / IP. Некоторые прокси настроены так, чтобы не пропускать через них какие-либо сеансы поддержания активности, хотя я полагаю, что большинство новых в порядке.

Я уверен, что есть еще кое-что, самое важное, что вы должны иметь в виду, что IP-соединение с мобильным телефоном намного сложнее, чем кто-то, открывающий веб-браузер. Этот транспорт может быть чрезвычайно сложным, поэтому, если вы попытаетесь сделать что-то действительно необычное, даже если оно работает сейчас, это может не всегда сработать. Также последний быстрый момент: задержка и потеря пакетов могут сильно колебаться, поэтому, если вы делаете что-то в режиме реального времени, ваша задержка может достигать 200 + мс, и я видел, что потери пакетов резко увеличиваются до 20-30%. раз.

Удачи, и если у вас есть какие-то конкретные вопросы, обязательно их задавайте.

Другие вопросы по теме