Каковы основные различия между программированием для Windows XP и для Vista?
-
09-06-2019 - |
Вопрос
С точки зрения разработчика настольных приложений, есть ли какая-либо разница между разработкой для Windows XP и разработкой для Windows Vista?
Решение
Пользовательский интерфейс
Глядя на Рекомендации по работе с Windows Vista вы можете видеть, что они изменили многие элементы пользовательского интерфейса, о чем вы должны знать.Некоторые важные моменты, на которые следует обратить внимание:
- Увеличенные значки
- Новое шрифт (Что влияет на некоторые параметры пользовательского интерфейса)
- Новое функции диалогового окна (диалоговые окна задач)
- Измененный общие диалоги (например, Открыть файл, Сохранить как и т.д.)
- Текст диалогового окна стиль и тональность, и смотреть и чувствовать
- Новое Волшебники авиации
- Переработанный дизайн панели инструментов
- Лучше пользовательский интерфейс уведомлений
- Новый рекомендуемый метод включения управление поиском
- Стекло
64-разрядный
Vista имеет 64-разрядную версию, и хотя XP тоже, ваши пользователи с большей вероятностью будут использовать Vista 64, чем XP 64.Теперь вам придется иметь дело с:
- Виртуализация реестра
- Перенаправление реестра (Wow6432Node)
- Отражение в реестре
- Цифровые подписи для модулей ядра
- Установщики MSI имеют новые свойства чтобы иметь дело с
UAC
Контроль учетных записей пользователей значительно влияет на разрешения по умолчанию, которые имеет ваше приложение при взаимодействии с операционной системой.
- Как UAC работает и влияет на ваше приложение (также смотрите требования doc)
- Установщикам приходится иметь дело с UAC
Новые API-интерфейсы
Существуют новые API, которые нацелены либо на новые методы построения приложений, либо на предоставление новой функциональности:
- Криптографический API:Следующее поколение (СПГ)
- Расширяемый Язык разметки приложений (XAML)
- Коммуникационный фонд Windows (WCF)
- Основа рабочего процесса Windows (ВФ)
- И еще много более мелких
Монтажники
Поскольку установки могут использовать только обычные среды выполнения, они устанавливаются после завершения транзакции, пользовательские действия потерпит неудачу если для вашей пользовательской библиотеки dll action требуются среды выполнения Visual C ++ выше, чем у VS 2005 CRT (не с пакетом обновления 1).
Другие советы
Не делайте этого когда - либо предположим, что ваш пользователь имеет доступ к определенным ключевым областям диска (т. е.программные файлы, каталог Windows и т.д.).Вместо этого учетная запись пользователя по умолчанию сможет записывать только небольшую часть данных своего приложения.Кроме того, они не смогут выполнять запись в глобальные области реестра - только в раздел текущего пользователя.
Вы, конечно, можете повысить их привилегии, но это само по себе является сложной задачей.
Как правило, программирование для Vista такое же, как и для XP, просто вам следует опасаться новых ограничений учетной записи.
Взгляните на эту страницу относительно того, как сделать ваше приложение "осведомленным об UAC".
http://www.codeproject.com/KB/vista-security/MakingAppsUACAware.aspx
Такое может быть, но это сознательный выбор, который вы делаете как разработчик.Вы можете использовать новые материалы Vista, такие как UAC, CommandLinks, Aero и так далее.Но вам не обязательно (даже UAC можно запрограммировать - просто не делайте ничего, для чего требуются права администратора).Если вы решите игнорировать все компоненты Vista, то между ними нет абсолютно никакой разницы.
Если вы действительно хотите включить это в свое приложение, это имеет значение.Но я бы сказал, что не очень большой.И если вы абстрагируетесь от различий (например, напишите свою собственную функцию, которая показывает TaskDialog для Vista, но которая заглушает входные данные, которые вы вводите в MesssageBox в XP), тогда вы будете писать только против своего собственного кода, и различия будут казаться почти нулевыми.
Кроме того, многие новые возможности Vista (например, UAC или Aero) - это то, о чем вы беспокоитесь один раз, когда создаете первую использующую ее функциональность, запускаете ее, а затем никогда больше не вспоминаете во время разработки приложения.
Безусловно, самая болезненная часть переноса приложения с XP на Vista (с моей точки зрения) связана с многочисленными сервисами и материалами IPv6, которые используют порты, которые ранее были бесплатными, и имеют дело с переходом Wireless Provisioning -> Native WiFi.
Материал UAC - это, по сути, спорный вопрос;разработчику приложения нужно сделать очень мало.