(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Используем ASP.NET 4 определение браузера в ASP.NET 3.5

Источник: msug

Мы обновили файлы определения браузера в ASP.NET 4, теперь они содержат информацию о таких браузерах и устройствах, как Google Chrome и iPhone. Вы можете использовать файлы определения браузера и в более ранних версиях ASP.NET, например в ASP.NET 3.5. Обновленные файлы определения информации и инструкции по установке могут быть найдены тут

Изменения в файлах определения браузера могут вызвать проблемы обратной совместимости, если вы обновляете ASP.NET 3.5 проект до ASP.NET 4. Если у вас возникли такие проблемы, то у вас есть возможность загрузить старый файлы определения браузера в ASP.NET приложение.

Что нового в файлах определения браузера в ASP.NET 4

Полный список поддерживаемых браузеров в новых файлах определения ASP.NET 4 можно увидеть на следующей диаграмме:

Если вы внимательно посмотрите на структуру выше, то обнаружите, что были добавлены новые браузеры такие, как Internet Explorer 8, Firefox 3.5, Google Chrome, Opera 10 и Safari 4.

Более того, мы добавили поддержку самых популярных мобильных браузеров: BlackBerry,  iPhone, iPod и Windows Mobile(IEMobile). Мобильные устройства подсвечены в диаграмме фиолетовым цветом. Для улучшения производительность были убраны устаревшие браузеры для сотовых и мобильных устройств.

Мы так же подчистили информацию, содержащуюся в файлах определения браузера. Несколько примеров применения:

Are you a mobile device? 
<%=Request.Browser.IsMobileDevice %> 
 
<br> 
 
Are you an IPhone? 
<%=Request.Browser.MobileDeviceModel == "IPhone" %> 
 
<br> 
 
What version of JavaScript do you support? 
<%=Request.Browser["javascriptversion"] %> 
 
<br> 
 
What layout engine do you use? 
<%=Request.Browser["layoutEngine"] %> 

Вот, что мы увидим в Internet Explorer 8:

А это результат в Google Chrome:

Проверка настроек браузера

Когда вы работаете с файлами определения браузера, очень удобно иметь возможность проверить вернувшуюся информацию, когда вы запрашиваете страницу с различных браузеров. Вы можете использовать следующий метод для получения HttpBrowserCapabilities соответствующие пользовательской строке агента и набору заголовков браузера.

public HttpBrowserCapabilities GetBrowserCapabilities(string userAgent, NameValueCollection headers) 
{ 
   HttpBrowserCapabilities browserCaps = new HttpBrowserCapabilities(); 
   Hashtable hashtable = new Hashtable(180, StringComparer.OrdinalIgnoreCase); 
   hashtable[string.Empty] = userAgent; // The actual method uses client target 
   browserCaps.Capabilities = hashtable; 
 
   var capsFactory = new System.Web.Configuration.BrowserCapabilitiesFactory(); 
   capsFactory.ConfigureBrowserCapabilities(headers, browserCaps); 
   capsFactory.ConfigureCustomCapabilities(headers, browserCaps); 
   return browserCaps; 
} 

В конце поста вы найдете ссылку для загрузки простого VS 2008 проекта, Browser Definition Test, который использует данные методы для отображения информации о возможностях для произвольных строк пользовательского агента. Например, если вы введете строку агента для iPhone, то получите следующий результат:

Приложение Browser Definition Test позволяет вам отправить строку агента и вывести таблицу возможностей браузера.

Файлы определения браузера содержат пример строки агента для кажого браузера. Сейчас я взял строку агента для iPhone из файла iphone.browser:

Перечисляем определения браузеров

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

Файлы определения браузера в папке config\browsers парсятся классом BrowserCapabilitesFactory. После запуска инструмента aspnet_regbrowsers, вы можете просмотреть исходный код данного класса в директории config\browser, открыв BrowserCapsFactory.cs.

Класс BrowserCapabilitiesFactoryBase содержит protected свойство с именем BrowserElements, которое представляет Hashtable всех определний браузера. Вот пример, который показывается, как можно считать и вывести ID всех определений браузера: 

var propInfo = typeof(BrowserCapabilitiesFactory).GetProperty("BrowserElements", BindingFlags.NonPublic / BindingFlags.Instance); 
Hashtable browserDefinitions = (Hashtable)propInfo.GetValue(new BrowserCapabilitiesFactory(), null); 
 
foreach (var key in browserDefinitions.Keys) 
{ 
  Response.Write("<br>" + key); 
} 

Запускаем приложение в VS 2008:

У вас появится громадный список браузеров и устройств. Всего их 449.

Если же запустить проект в VS 2010, то картина немного другая:

В новой версии, было удалено 19 устаревших определений.

Заключение

Обновленные файлы определения браузера в ASP.NET 4 предоставляют более точную информацию о устройствах и браузерах. Если вы желаете по тестировать новые определения браузеров с разными пользовательскими агентами, тогда я рекомендую вам загрузить проект Browser Definition Test.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 09.03.2010 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
Microsoft 365 Business Basic (corporate)
Microsoft 365 Business Standard (corporate)
Microsoft 365 Apps for business (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Corel DRAW - от идеи до реализации
Windows и Office: новости и советы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100