С точки зрения разработчика настольных приложений существует ли разница между разработкой для Windows XP и разработкой для Windows Vista?
Каковы основные различия между программированием для Windows XP и Vista?
Ответ 1
Пользовательский интерфейс
Глядя на Руководство пользователя для пользователей Windows Vista, вы можете увидеть, что они изменили многие элементы пользовательского интерфейса, о которых вы должны знать. Некоторые важные моменты, чтобы принять к сведению:
- Более крупные значки
- Новый font (что влияет на некоторую пользовательскую константу пользовательского интерфейса)
- Новые диалоговые окна (диалоговые окна задач)
- Изменено общие диалоги (например, File Open, Save As и т.д.)
- Диалоговый текст стиль и тон, и посмотреть и почувствовать
- Новый Aero Wizards
- Переработано панели инструментов
- Лучше пользовательский интерфейс уведомления
- Новый рекомендованный метод включения контроля поиска
- Стекло
64-битный
Vista имеет 64-разрядную версию, и хотя XP тоже, ваши пользователи с большей вероятностью будут использовать Vista 64, чем XP 64. Теперь вам нужно иметь дело с:
- Виртуализация реестра
- перенаправление реестра (Wow6432Node)
- Отражение реестра
- Цифровые подписи для модулей ядра
- У установщиков MSI есть новые свойства для работы с
UAC
Контроль учетных записей пользователей значительно влияет на разрешения по умолчанию, которые имеет ваше приложение при взаимодействии с ОС.
- Как работает UAC и влияет на ваше приложение (также см. требования doc)
- Установщики должны иметь дело с UAC
Новые API
Появились новые API-интерфейсы, которые ориентированы на новые методы построения приложений или позволяют создавать новые функции:
- API криптографии: следующее поколение (CNG)
- Расширяемый язык разметки приложений (XAML)
- Windows Communication Foundation (WCF)
- Windows Workflow Foundation (WF)
- И еще несколько более мелких
монтажники
Поскольку установки могут использовать только обычные среды выполнения, которые они устанавливают после завершения транзакции, пользовательские действия не удастся, если ваша настраиваемая dll-сценарий требует времени выполнения Visual С++ выше CRT-сервера VS 2005 (не SP1).
Ответ 2
Не когда-либо предполагать, что ваш пользователь имеет доступ к определенным ключевым областям диска (например, программные файлы, каталог Windows и т.д.). Вместо этого учетная запись пользователя по умолчанию сможет записывать только небольшой раздел данных своих приложений. Кроме того, они не смогут записывать в глобальные области реестра - только в текущую секцию пользователя.
Вы можете, конечно, повысить свои привилегии, но это само по себе является задачей.
Вообще программирование для Vista такое же, как у XP, это просто новые ограничения учетной записи, о которых вы должны опасаться.
Взгляните на эту страницу в отношении того, что ваше приложение "UAC осведомлено"
http://www.codeproject.com/KB/vista-security/MakingAppsUACAware.aspx
Ответ 3
Может быть, но это осознанный выбор, который вы делаете как разработчик. Вы можете использовать новые материалы Vista, такие как UAC и CommandLinks, Aero и т.д. Но вам не нужно (даже UAC можно запрограммировать - просто не делайте ничего, что требует привилегий администратора). Если вы решите игнорировать все материалы Vista, то между ними нет никакой разницы.
Если вы хотите включить этот материал в свое приложение, это имеет значение. Но я бы сказал, что не огромный. И если вы отвлечете различия (например, напишите свою собственную функцию, которая показывает TaskDialog для Vista, но которая заглушает вход, который вы передаете в MesssageBox на XP), тогда вы будете писать только против своего собственного кода, и различия будут казаться почти ничего.
Кроме того, многие новые вещи Vista (например, UAC или Aero) - это то, о чем вы беспокоитесь один раз, когда вы создаете первую часть функциональности, которая ее использует, заставляют ее работать, а затем никогда не задумываться о ней снова вы разрабатываете приложение.
Ответ 4
На сегодняшний день наиболее болезненная часть перемещения приложения с XP на Vista (с моей точки зрения) связана с многочисленными службами и материалами IPv6, которые используют порты, которые ранее были бесплатными, и работающие с Wireless Provisioning → Native WiFi.
Материал UAC в основном спорный; разработчик приложений очень мало.