voliuf.narod.ru

главная

друзья

помощь сайту

Конфигурирование и настройка Microsoft ASP.NET

Бесплатные учебники по темам

Партнерская программа

1.Обзор настройки Microsoft ASP.NET

2.Изучение архитектуры настроек ASP.NET

3.Настроечные параметры ASP.NET

4.Настроечные параметры System.Web

5.Настроечные параметры мобильных элементов управления

6.Настроечные параметры Microsoft .NET

7.Настроечные параметры CLR

8.Параметры IIS

9.Создание собственных параметров

 

Конфигурирование и настройка Microsoft ASP.NET
5.Настроечные параметры мобильных элементов управления
  
В этой лекции более подробно рассмотрены параметры для настройки Microsoft Mobile Internet Toolkit (MMIT – набор элементов управления Microsoft для мобильных устройств), включенного в Microsoft .NET Framework версии 1.1. MMIT – это коллекция пространств имен и элементов управления, которые используются при разработке приложений для мобильных устройств. Для определения типа устройства, производящего доступ к ресурсу, MMIT использует раздел <browserCaps> совместно с разделами <mobileControls> и <deviceFilters>. После определения типа и возможностей этого устройства MMIT соответствующим образом настраивает содержимое, отсылаемое клиенту.

Ниже приведено описание следующих разделов.

  • <mobileControls>. Позволяет определить новые адаптеры устройств, которые ставятся в соответствие мобильным элементам управления ASP.NET.
  • <deviceFilters>. Позволяет добавлять фильтры устройств, используемых в коде, для ручной настройки содержимого страниц, отсылаемого клиенту.

Определение мобильного устройства в разделе <browserCaps> является простейшим способом указать его параметры.

Дополнительная информация. Имеются различные типы устройств, которые считаются "мобильными": телефоны, карманные компьютеры (PDA), пейджеры и любые другие устройства, которые не используют полноценный браузер (Internet Explorer, Netscape и т.п.)

Если вам требуются дополнительные возможности по настройке, отсутствующие в разделе <browserCaps>, воспользуйтесь настройкой отсылаемого клиенту содержимого в разделах <mobileControls> и <deviceFilters>.

Работа с разделом <mobileControls>

Раздел <mobileControls> определяет набор адаптеров, соответствующих мобильным элементам управления ASP.NET. Адаптер – это класс, который настраивает каждый мобильный элемент управления для конкретного мобильного устройства или языка. В таблице 5.1 содержится перечень адаптеров, установленных в MMIT по умолчанию.

Таблица 5.1. Набор мобильных адаптеров по умолчанию
Адаптер Описание
HTML Используется для устройств, которые понимают HTML 3.2 без клиентских сценариев.
CHTML Используется для устройств, которые понимают HTML 3.0 без клиентских сценариев.
WML Используется для устройств, которые понимают WML 1.1.

Например, если доступ к вашему приложению осуществляет устройство Pocket PC, адаптер HTML генерирует содержимое в формате HTML 3.2. Наборы адаптеров объявляются в разделе <mobileControls>. Ниже приведен синтаксис этого раздела.

<system.web>
  <mobileControls allowCustomAttributes="true | false"
    sessionStateHistorySize="size of history"
    cookielessDataDictionaryType="dictionary type">
    <device name="device name" inheritsFrom="parent adapter set"
      predicateClass="class" predicateMethod="method to call"
      pageAdapter="Adapter Class">
      <control name="control class" adapter="adapter class" />
    </device>
  </mobileControls>
</system.web>

В показанной выше записи имеется много свойств и элементов, и мы последовательно рассмотрим все эти элементы.

Настройка свойств <mobileControls>

Свойства элемента <mobileControls> – это глобальные параметры среды выполнения для мобильных устройств. Они позволяют настраивать то, как среда мобильных устройств поддерживает состояние и включены ли пользовательские атрибуты. В таблице 5.2 содержится перечень свойств элемента <mobileControls>.

Таблица 5.2. Свойства <mobileControls>
Свойство Описание
allowCustomAttributes Определяет, могут ли страницы содержать пользовательские атрибуты. Их наличие позволяет включать в элементы управления атрибуты, специфичные для конкретного адаптера. Все добавленные в элемент управления атрибуты сохраняются как пользовательские и доступны всем адаптерам, интерпретирующим данный элемент управления.
sessionStateHistorySize Определяет максимальный размер (в Кб) сохраняемой в сессии истории. Так как обычно мобильные устройства имеют ограниченное количество свободной памяти, и большинство из них не могут хранить cookies, состояние сессии и информация о состоянии представления хранится в переменных сессии.
cookielessDataDictionaryType Определяет класс словаря, который содержит аутентификационную информацию, вводимую с помощью формы, не использующей cookies. Можно отключить эту функцию, установив данное свойство равным пустой строке.

Ниже показан пример раздела <mobileControls>, отображающий только эти свойства.

<mobileControls allowCustomAttributes="true"
  sessionStateHistorySize="6"
  cookielessDataDictionaryType="System.Web.Mobile.CookielessData">
</mobileControls>

Использование пользовательских атрибутов. Установка свойства allowCustomAttributes в значение true включает пользовательские атрибуты для всех мобильных элементов управления. Это означает, что вы можете указать любой тип свойства в мобильном элементе управления, и он будет сохранен и передан в адаптер. Применение данных атрибутов позволяет указать атрибуты, которые будут использоваться только конкретным адаптером. Любое свойство, установленное для элемента управления, которое не распознается как свойство по умолчанию для этого элемента, сохраняется и передается в адаптер. Например, для добавления свойства элементу mobile:Label используется следующий синтаксис.

<mobile:Label runat="server" id="lblLabel" text="Our Label Text"
  wmlFormat="NNN" />

Свойство wmlFormat будет сохранено и передано в адаптер, который обрабатывает данный элемент управления. Это свойство использует адаптер WML; остальные адаптеры его игнорируют.

Предостережение. Если вы случайно введете "txt" вместо "text", элемент управления вместо информирования об ошибке из-за неправильного имени свойства сохранит это свойство как пользовательский атрибут.

Затем адаптер получает к свойству доступ с помощью класса словаря CustomAttributes и использует это свойство для генерации собственного содержимого для клиента.

Работа с устройствами

Раздел <mobileControls> содержит подраздел <device>, в котором объявляется новый адаптер, используемый для мобильных элементов управления. Свойства раздела <device> приведены в табл. 5.3.

Таблица 5.3. Свойства <device>
Свойство Описание
name Определяет имя данного набора адаптера.
inheritsFrom Определяет набор адаптера, от которого наследуется этот адаптер. Этот адаптер должен быть объявлен либо ранее в этом же разделе <mobileControls>, либо в разделе <mobileControls> вышестоящего настроечного файла.
predicateClass Указывает класс, с помощью которого определяется, должен ли данный адаптер использоваться для текущего запрашивающего устройства. Значение свойства представляет полную ссылку на этот класс. Оно может наследоваться от класса, указанного в свойстве inheritsFrom.
predicateMethod Указывает метод .NET, с помощью которого определяется, должен ли данный адаптер использоваться для этого устройства. Этот метод должен быть расположен в классе, указанном в свойстве predicateClass. Значение свойства может наследоваться от класса, указанного в свойстве inheritsFrom.
pageAdapter Определяет класс .NET для адаптера страницы данного набора адаптера. Значение свойства представляет полную ссылку на этот класс. Класс адаптера страницы должен реализовать интерфейс IPageAdapter. Это значение может наследоваться от класса, указанного в свойстве inheritsFrom.

Каждый раздел <device> может содержать несколько подразделов <control>, каждый из которых задает соответствие между элементом управления и адаптером для обработки этого элемента. Каждый элемент управления, настраиваемый для данного устройства, должен иметь обрабатываемый его адаптер. В таблице 5.4 содержится перечень свойств раздела <control>.

Таблица 5.4. Свойства <control>
Свойство Описание
name Определяет имя мобильного элемента управления, для которого определяется адаптер.
adapter Определяет адаптер, который будет настраивать этот элемент управления для запрашивающего устройства.

Чтобы получить лучшее представление о том, как все работает, посмотрите на пример раздела <device>, взятого непосредственно из файла machine.config.

<device name="ChtmlDeviceAdapters" inheritsFrom="HtmlDeviceAdapters"
  predicateClass="System.Web.UI.MobileControls.Adapters.
    ChtmlPageAdapter" predicateMethod="DeviceQualifies"
  pageAdapter=
    "System.Web.UI.MobileControls.Adapters.ChtmlPageAdapter">
  <control name="System.Web.UI.MobileControls.Form" adapter=
    "System.Web.UI.MobileControls.Adapters.ChtmlFormAdapter" />
  <control name="System.Web.UI.MobileControls.Calendar" adapter=
    "System.Web.UI.MobileControls.Adapters.ChtmlCalendarAdapter"/>
  <control name="System.Web.UI.MobileControls.Image" adapter=
    "System.Web.UI.MobileControls.Adapters.ChtmlImageAdapter" />
  <! ---Extra control sections removed for brevity -->
</device>

В примере раздел <device> предназначен для адаптера ChtmlDeviceAdapters и показывает, как выглядит обычный раздел <device>.

Создание набора адаптера данных

Полная процедура создания собственного адаптера выходит за рамки этой книги, но в данном параграфе приведен краткий обзор и некоторые советы по созданию адаптеров. Наилучшим способом создания собственного адаптера является его разработка на основе свободно распространяемого исходного кода Microsoft. Хотя по умолчанию MMIT устанавливается вместе с ASP.NET 1.1, вам все же потребуется скачать и установить MMIT, чтобы получить исходный код адаптера устройства. MMIT находится на сайте http://mdsn.microsoft.com

После установки MMIT папка с исходным кодом адаптера помещается в директорию С:\Program Files\Microsoft Mobile Internet Toolkit. Это исходный код трех различных адаптеров по умолчанию, и он неоценим при создании собственного адаптера для устройства. Используйте данный код как основу для своего кода, а затем измените его в соответствии с требованиями своего устройства.

Сначала создайте адаптер страниц в качестве предикатного класса. Предикатный класс содержит предикатный метод, который определяет, должен ли использоваться ваш адаптер. Ниже приведен фрагмент файла HtmlPageAdapter из папки исходных кодов адаптеров.

C#

public static bool DeviceQualifies(HttpContext context)
{
  String type =((MobileCapabilities)context.Request.Browser).
    PreferredRenderingType;
  bool javascriptSupported = context.Request.Browser.JavaScript;
  bool qualifies =
    (type == MobileCapabilities.PreferredRenderingTypeHtml32) &&
    javascriptSupported;
  return qualifies;
}

VB.NET

Public Shared Function DeviceQualifies(ByVal context As _
  HttpContext) As Boolean
  Dim type As String = (CType(context.Request.Browser, _
    MobileCapabilities)).PreferredRenderingType
  Dim javascriptSupported As Boolean = _
    context.Request.Browser.JavaScript
  Dim qualifies As Boolean = (type = _
    MobileCapabilities.PreferredRenderingTypeHtml32) And _
  javascriptSupported
  Return qualifies
End Function

Данная функция возвращает значение типа Boolean, и среда выполнения для мобильных устройств определяет, должен ли этот адаптер обрабатывать запрос. Функция принимает текущий объект контекста HTTP и считывает, может ли это устройство обрабатывать HTML и JavaScript. Если устройство способно обрабатывать HTML и поддерживает JavaScript, то возвращается значение true, и запрос обрабатывается указанным адаптером. Страничный адаптер содержит несколько методов, которые отображают страницу, но здесь их описание не приводится.

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

Работа с разделом <deviceFilters>

Аналогично разделу <mobileControls>, раздел <deviceFilters> также используется для настройки содержимого, отсылаемого клиенту. В нем настраиваются фильтры, дающие во время выполнения значения true или false. Далее с их помощью принимается решение о том, какое содержимое должно отсылаться клиенту. Имеется два различных типа фильтров.

  • Фильтры сравнения. Используются для выполнения базового сравнения возможности и значения, указанного в фильтре. Можно использовать любую возможность, прочитанную из класса MobileCapabilities.
  • Фильтры делегатов оценки. Фильтры оценки создают собственный метод, который возвращает true или false. С помощью данного метода можно проверить возможности и выполнить другие проверки для определения того, должен ли этот фильтр возвращать true или false.

Оба типа фильтров реализуют в разделе <deviceFilters> элемент <filter>. Ниже приведен синтаксис <deviceFilters> для обоих типов.

<system.web>
  <deviceFilters>
    <filter name="filter name" compare="capability name"
      argument="value to match" />
    <filter name="filter name" type="class name"
      method="method name" />
  </deviceFilters>
</system.web>

Первый фильтр в приведенном фрагменте – фильтр сравнения, второй – фильтр оценки. Свойства элемента <filter> указаны в табл. 5.5.

Таблица 5.5. Свойства <filter>
Свойство Описание
name Определяет уникальное имя фильтра. Это имя используется для вызова фильтра в коде. Если вы укажете имя существующего фильтра, оно будет переопределено.
compare Определяет имя возможности, которую нужно проверить, – это любая из возможностей, включенных в класс mobileCapabilities или добавленная собственная возможность. Свойство используется при создании фильтров сравнения.
argument Определяет аргумент, используемый при сравнении с возможностью, указанной в свойстве compare. Свойство используется при создании фильтров сравнения.
type Определяет класс, предоставляющий оценочный метод. Значение свойства должно соответствовать стандартам .NET по полному указанию класса. Свойство используется при создании оценочных фильтров.
method Определяет метод, с помощью которого определяется значение, возвращаемое фильтром (true или false). Свойство используется при создании оценочных фильтров.

Создание фильтра сравнения

Ниже перечислены шаги, которые следует предпринять для создания фильтра сравнения.

  1. Решите, какую возможность следует проверять. Это может быть любая возможность, доступная через класс mobileCapabilities. В примере проверяется возможность isColor, определяющая наличие в устройстве цветного дисплея.
  2. Решите, какое значение следует проверять; в примере проверяется значение true.
  3. С помощью информацию, полученной на шаге 1 и 2, создайте новый элемент <filter> и добавьте его в раздел <deviceFilters> файла machine.config или web.config, например, как показано ниже:
<deviceFilters>
  <filter name="IsColorCapable" compare="isColor"
    argument="true" />
</deviceFilters>

Данный фильтр будет возвращать значение true, если возможность isColor равна true.

Создание оценочного фильтра

Фильтры оценки при возвращении true или false используют собственный класс. Поскольку вы пишете класс, он может оценивать любое количество свойств или переменных. Первым шагом является создание класса для определения значения, возвращаемого фильтром (true или false), например, как показано ниже.

C#

public bool methodName(System.Web.Mobile.MobileCapabilities
  mobileCaps, string optionalString)
{
  // Здесь расположена логика класса
}

VB.NET

Public Function methodName(mobileCaps as _
  System.Web.Mobile.MobileCapabilities, optionalString as String) _
  as Boolean
  'Здесь расположена логика класса
End Function

Данный метод принимает экземпляр класса MobileCapabilities, который позволяет считывать свойства возможностей браузера и определять, должен ли класс возвратить значение true или false. Второй параметр – это строка, с помощью которой передается дополнительная информация, необходимая для использования в классе. Ниже приведены шаги для создания и настройки оценочного фильтра.

  1. Создайте собственный класс для вычисления true или false. Пример оценочного класса показан ниже. Этот класс проверяет возможности браузера isColor и ScreenBitDepth и определяет, может ли запрашивающее устройство работать с многоцветными изображениями.
  2. Добавьте фильтр в раздел <deviceFilters>.
<deviceFilters>
  <filter name="IsHighColor" type="ASPNETConfig.MEvaluators,
    ASPNETConfig.dll" method="IsHighColor" />
</deviceFilters>

Данный фильтр будет возвращать true, если запрашивающее устройство способно работать с многоцветными изображениями.

C#

public bool isHighColor(System.Web.Mobile.MobileCapabilities
  mobileCaps, string OptionalString)
{
  bool bIsHighColor;
  if(mobileCaps.IsColor == true &&
    mobileCaps.ScreenBitDepth >= 16)
  {
    bIsHighColor = true;
  }
  else
  {
    bIsHighColor = false;
  }
  return bIsHighColor;
}

VB.NET

Public Function isHighColor(mobileCaps As _
  System.Web.Mobile.MobileCapabilities, OptionalString As String) _
  As Boolean
  Dim bIsHighColor As Boolean
  If mobileCaps.IsColor = True And _
    mobileCaps.ScreenBitDepth >= 16 Then
    bIsHighColor = True
  Else
    bIsHighColor = False
  End If
  Return bIsHighColor
End Function

Использование фильтров для мобильных элементов управления

Теперь давайте рассмотрим, как использовать фильтры для настройки содержимого, генерируемого мобильными элементами управления. Оба описанных фильтра предназначены для определения цветовых возможностей запрашивающего устройства, так что вполне естественно, если мы рассмотрим их применение для элемента управления <mobile:Image>. Ниже показан пример элемента управления <mobile:Image>, который не использует фильтры.

<mobile:Image runat="server" ImageURL="logo.gif" />

Данный элемент управления отображает файл logo.gif на всех устройствах, с которых осуществляется доступ к вашей странице. Это хорошо для настольных компьютеров и ноутбуков, но мобильные устройства требуют, чтобы изображение было настроено в соответствии с цветовыми возможностями устройства. Для использования в этом элементе управления фильтров из предыдущего раздела применим элемент <DeviceSpecific>. Этот элемент служит для указания параметров, связанных с фильтрами, в любом мобильном элементе управления. Ниже приведен его синтаксис.

<mobile:Image runat="server" ImageURL="logo.gif">
  <DeviceSpecific>
    <Choice Filter="filter name"
      ControlProperty1="value"
      ControlProperty2="value" />
  </DeviceSpecific>
</mobile:Image>

В элементе <choice> можно указать любое количество свойств элемента управления. Если элемент управления отображается, и фильтр возвращает значение true, то к этому элементу применяются свойства из элемента <choice>. Ниже приведен пример использования двух определенных ранее фильтров.

<mobile:Image runat="Server" ImageURL="logoBW.gif">
  <DeviceSpecific>
    <Choice Filter="IsColor" ImageURL="logoColor.gif" />
    <Choice Filter="IsHighColor" ImageURL="logoHighColor.gif" />
  </DeviceSpecific>
</mobile:Image>

Рассмотрим порядок событий, возникающих при отображении данного элемента управления.

  1. Свойство ImageURL устанавливается в значение logoBW.gif (черно-белый логотип).
  2. Обрабатываются элемент <DeviceSpecific> и включенный в него элемент <choice>.
  3. Если фильтр IsColor возвращает значение true, свойству ImageURL присваивается значение logoColor.gif, при возвращении false фильтр не выполняется.
  4. Если фильтр IsHighColor возвращает значение true, свойству ImageURL присваивается значение logoHighColor.gif, при возвращении false фильтр не выполняется.
  5. Элемент управления <mobile:Image> отображается с использованием свойства ImageURL.

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

Обновление устройств мобильных элементов управления

Наиболее важной частью настройки приложений для мобильных устройств является обеспечение гарантии того, что вы сможете обнаружить и правильно определить возможности большого количества различных мобильных устройств. По умолчанию ASP.NET обнаруживает множество устройств, но, как вы знаете, каждый день их количество растет. Поэтому Microsoft периодически выпускает Mobile Controls Device Updates (Обновления мобильных устройств для элементов управления). Эти обновления включают обновления для следующих разделов.

  • Настроечные параметры <browserCaps>.
  • Настроечные параметры <mobileControls>.
  • Сборки адаптеров.
  • Настроечные параметры <assemblies>.

Было опубликовано два таких обновления, но поскольку они кумулятивны, то потребуется установить самый последний. Одной из функций, включенных в доступное на момент написания книги обновление устройств, является новый адаптер XHTML. Этот адаптер генерирует для мобильных устройств с поддержкой XHTML содержимое, совместимое с XHTML. В будущем можно ожидать появления других обновлений, включая определение новых браузеров, новые адаптеры и прочее. Чтобы скачать наиболее свежее обновление браузера, проверьте веб-страницу новых выпусков

http://msdn.microsoft.com/vstudio/device/mobilecontrols/aspmobiledrivers.asp.

Ключевые моменты

  • В разделе <mobileControls> объявляются и настраиваются адаптеры, используемые при генерации содержимого для конкретных форматов, включая HTML, CHTML и WML.
  • Использование в качестве основы примеров кода, доступных в MMIT, облегчает создание собственных адаптеров для новых мобильных устройств.
  • В разделе <deviceFilters> можно создать фильтры для проверки возможностей браузера, возвращающих либо значение true, либо значение false.
  • Элемент <DeviceSpecific> позволяет настроить вывод отдельного мобильного элемента управления с помощью фильтров, определенных в разделе <deviceFilters>.
  • Microsoft периодически выпускает обновления устройств, использующих мобильные элементы управления, с модификацией кода определения браузера, новых адаптеров и других настроечных параметров, предназначенных для работы с мобильными устройствами.
  
 источник: http://www.INTUIT.ru 


 

13 центов(0,13$) за клик, выплаты через WebMoney каждый вторник +10% с рефералов

Мы выкупаем 100% трафа! $12 за 1000 хостов (РФ), и до $4 за 1000 хостов (зарубежный траф) + 10% с дохода Ваших рефералов!
 Выплаты через
WebMoney

~80-100$ за1000 хостов 2.5$ за 1 смс.
реф. процент - 10 %Выплаты происходят раз в неделю, в четверг на
WebMoney
 
 

 

____________________________

Посмотреть порно видео в онлайне »

_______________________________

 

   
   
Сайт управляется системой uCoz