Использование файлов описания браузеров в ASP.NET 4.0Источник: msug
В ASP.NET 4.0 добавлена информация о современных браузерах и устройствах. Полный список браузеров и устройств выглядит таким образом:
Для увеличения производительности информация о старых браузерах и устройствах была удалена. Например, ASP.NET 4.0 не поддерживает информацию о Netscape Navigator и Internet Explorer версий ниже 6. Файлы описания браузеров и их возможностей (Browser Definition Files and Browser Capabilities)ASP.NET хранит информацию в файлах, которые называются файлами описания браузера . Эти файлы являются обыкновенными XML файлами, которые легко можно просмотреть в Notepad. В ASP.NET 3.5 эти файлы размещались в следующей директории: \Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers В ASP.NET 4.0 файлы находятся в директории: \Windows\Microsoft.NET\Framework\v4.xxx\CONFIG\Browsers Каждый файл описания браузера содержит набор свойств. Например, файл firefox.browser содержит информацию о Firefox 3 и Firefox 3.5. Дополнительную информацию о структуре файлов описания браузера можно получить по ссылке http://msdn.microsoft.com/en-us/library/ms228122.aspx. Объект HttpBrowserCapabilities, который можно получить из свойства Request.Browser использует файлы описания для определения браузера клиента и возвращает информацию о его возможностях. Например, с помощью свойства Request.Browser.Cookies можно проверить поддерживает ли текущий браузер куки или нет. Такие элементы управления, как Menu и TreeView используют информацию о возможностях браузера для корректного отображения разметки. Например, полученный HTML код для TreeView в браузерах, которые поддерживают JavaScript, будет существенно отличаться от кода, полученного для браузеров, не поддерживающим JavaScript. Использование файлов описания браузеров с ранними версиями ASP.NETНовые файлы можно использовать и в ранних версиях ASP.NET (например, в проектах, написанных на ASP.NET 3.5). Это может быть необходимо, если вы хотите работать с Google Chrome или iPhone. Для использования файлов в ранних версиях ASP.NET следуйте этой инструкции:
После выполненных действий ваше приложение будет использовать новые файлы описания браузеров. Использование файлов описания браузеров версии ASP.NET 3.5в ASP.NET 4.0Так как файлы описания браузеров в ASP.NET 4.0 отличаются от более ранних версий, то при обновлении проекта с ASP.NET 3.5 к ASP.NET 4.0 может привести к проблемам совместимости. В таком случае использование старых файлов в ASP.NET 4.0 проектах может иметь смысл. Для этого вам необходимо выполнить следующие действия:
После выполненных действий ваше приложение будет использовать старые файлы описания браузеров. Пользовательские файлы описания браузеровТакже вы можете создать пользовательские файлы описания браузеров для конкретного ASP.NET приложения путем добавления файлов в папку App_Browsersвашего приложения. Если ваше приложения содержит пользовательские файлы, которые наследуются от файлов, которые были удалены, вы увидите ошибку. Например, если в папке App_Browsers содержится файл, унаследованный от файла описания браузера IE2, то вы получите ошибку: The browser or gateway element with ID 'IE2' cannot be found. На следующей диаграмме показаны взаимосвязи между всеми файлами описания браузеров. Большинство файлов за исключением Opera и BlackBerry наследуются от файла описания браузера Mozilla. Определение версии файла описания браузераВы можеьте опрежелить версию используемого приложением файла для тестирования в различных браузерах: <%=Request.Browser.Id %> Если вы откроете веб-страницу в Microsoft Internet Explorer 8 (и при этом используете новые файлы), то вы увидите идентификатор ie8 . В противном случае, если вы используете старые файлы, вы увидите идентификатор ie6to9 . Тестирование возможностей браузеровСледующий пример проверяет некоторые свойства браузера: Мобильное устройство? Для тестирования возможностей браузеров и получения их свойств рассмотрим следующий пример:
На вход функция GetBrowserCapabilities получает значение строки UserAgent и коллекцию заголовков, а на выходе - заполненный объект HttpBrowserCapabilities. Используем строку iPhone UserAgent: Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3 C помощью следующей несложной функции форматируем информацию с свойствами браузера (тестовое приложение можно скачать внизу статьи): private string RenderCapsTable(HttpBrowserCapabilities caps) string[] keys = caps.Capabilities.Keys.OfType<string>().OrderBy(k => k).Select(k => k).ToArray(); foreach (string key in keys) sb.Append("</table>"); И получаем на выходе: ЗаключениеТаким образом, файлы описания браузеров являются удобным средством идентификации браузеров и их возможностей и может быть использован для выдачи различного HTML кода в зависимости от типа устройства, чт оявляется актуальной задачей в связи большего распространения мобильных устройств. Страница проекта: http://aspnet.codeplex.com/releases/view/41420 Архив для скачивания содержит следующие файлы:
|