Недавно я изучал настройку профиля клиента .NET для приложения WPF, которое я создаю. Однако я был разочарован, заметив, что профиль клиента действителен только для следующих конфигураций ОС:
Кроме того, профиль клиента нет действителен для выпусков x64 или ia64; и также не будет устанавливаться, если установлена любая предыдущая версия .NET Framework.
Мне интересно, стоят ли усилия по добавлению дополнительных конфигураций ОС в матрицу тестирования. Существуют ли какие-либо показатели, указывающие процент пользователей, которые могут получить выгоду от профиля клиента? Я считаю, что после установки .NET Framework дополнительная информация передается на веб-сервер как часть веб-запроса, означающего, что платформа доступна. Конечно, я могу предположить, что пользователями Windows XP SP2 без установленной .NET Framework будет очень много людей. Тогда встал бы вопрос о том, нацелено ли мое приложение конкретно на этих людей.
Кто-нибудь еще определил, стоит ли прилагать дополнительные усилия для нацеливания на этих конкретных пользователей?
Обновлено: кажется, что можно получить предупреждение компилятора, если вы используете функции, не включенные в профиль клиента. Поскольку я обычно использую предупреждения как ошибки, этого, надеюсь, будет достаточно, чтобы свести к минимуму тестирование в этой конфигурации. Конечно, эту конфигурацию еще нужно будет протестировать, но это должно быть так же просто, как тестирование, работает ли установка / начальный запуск на XP с SP2 +.





I believe that once the .NET Framework has been installed, extra information is passed to a web server as part of a web request signifying that the framework is available.
В IE - да. Он отправляет версию .NET Framework как часть строки UA, например:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; .NET CLR 2.0.50727).
В конечном счете, если вы настроите таргетинг на профиль клиента, это не повредит никому. Это связано с тем, что профиль клиента является подмножеством .NET framework v3.5 sp1, и если v3.5 sp1 уже установлен, вам не нужно ничего устанавливать.
Сборки в клиентском профиле - это те же двоичные файлы, что и полная платформа, поэтому, если вы не загружаете сборки динамически, вам не нужно проводить дополнительное тестирование.
Я считаю, что если вы не должны использовать сборки, которых нет в профиле клиента, вам следует нацелить его.
Что касается требований к ОС, WPF не будет работать на pre-XP sp2, поэтому, если вам нужно работать на других ОС, вам все равно придется использовать WinForms.
Обновлено:
On IE, yes. It sends the .NET Framework version as part of the UA string, e.g.:
На самом деле так делает FF3 + 3.5sp1:
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 (.NET CLR 3.5.30729)
Я думаю, что важно нацелить как можно больше пользователей. Вы когда-нибудь думали о том, чтобы отправить свое приложение вообще без какого-либо управляемого кода? Вы можете преобразовать ваши управляемые приложения в чистый машинный код с помощью таких инструментов, как http://www.xenocode.com/ или http://www.remotesoft.com/linker/, так что вам вообще не понадобится никакая платформа .NET на клиентских машинах.