Любая библиотека, которую вы можете использовать для определения того, осуществляется ли доступ к сайту с мобильного устройства, в конечном итоге, скорее всего, подберет строку User Agent и затем сравнит ее с хранилищем данных устройства (например, WURFL или .Mobi).
Существует несколько библиотек с открытым исходным кодом, таких как Tera_WURFL, но я не уверен, что доступно для приложений .Net.
Одна вещь, которую мы сделали в одном из проектов, с которым я работал, была вместопроверив все мобильные пользовательские агенты и по умолчанию установив их на рабочий стол, если они не найдены, мы сделали все наоборот.Мы проверяем все настольные пользовательские агенты и по умолчанию на мобильный, если не найдены.Я чувствую, что это улучшает производительность, так как количество сравнений уменьшается.