11

从桌面应用程序开发人员的角度来看,为 Windows XP 开发和为 Windows Vista 开发之间有什么区别吗?

4

4 回答 4

20

用户界面

查看Windows Vista 用户体验指南,您可以看到它们更改了许多您应该注意的 UI 元素。需要注意的一些主要事项:

64 位

Vista 有 64 位版本,虽然 XP 也有,但您的用户更可能使用 Vista 64 而不是 XP 64。现在您必须处理:

UAC

用户帐户控制极大地影响了您的应用程序在与操作系统交互时所具有的默认权限。

新 API

有一些新的 API 针对应用程序构建的新方法或允许新功能:

安装人员

因为安装只能使用它们在事务完成后安装的通用运行时,如果您的自定义操作 dll 需要高于 VS 2005 CRT(非 SP1)的 Visual C++ 运行时,自定义操作 将失败。

于 2008-08-22T16:02:49.137 回答
5

永远不要假设您的用户可以访问光盘的某些关键区域(即程序文件、Windows 目录等)。相反,默认用户帐户将只能写入其应用程序数据的一小部分。此外,他们将无法写入注册表的全局区域 - 只能写入当前用户部分。

您当然可以提升他们的特权,但这本身就是一项任务。

Vista的编程一般和XP一样,只是需要注意新的账号限制。

查看此页面,了解如何让您的应用程序“感知 UAC”

http://www.codeproject.com/KB/vista-security/MakingAppsUACAware.aspx

于 2008-08-22T15:40:00.580 回答
1

可以,但这是您作为开发人员做出的有意识的选择。你可以使用新的 Vista 东西,比如 UAC 和 CommandLinks 和 Aero 等等。但是您不必这样做(甚至可以对 UAC 进行编程——只是不要做任何需要管理员权限的事情)。如果您选择忽略所有 Vista 的东西,那么两者之间绝对没有区别。

如果您确实想在您的应用程序中包含这些内容,它会有所作为。但我想说不是很大。如果你抽象出差异(例如,编写你自己的函数来显示一个用于 Vista 的 TaskDialog,但它会降低你在 XP 上将输入输入到 MessageBox 中),那么你只会编写自己的代码,差异似乎几乎没有。

此外,很多 Vista 的新东西(例如,UAC 或 Aero)是你曾经担心的东西,当你创建第一个使用它的功能时,让它工作,然后你就再也不会考虑开发应用程序。

于 2008-08-22T15:43:33.597 回答
0

到目前为止,将应用程序从 XP 迁移到 Vista(在我看来)最痛苦的部分是处理使用以前免费端口的众多服务和 IPv6 内容,以及处理无线配置 -> 本地 WiFi 转换。

The UAC stuff is basically a moot point; there is very little the application developer needs to do.

于 2008-08-22T16:09:29.057 回答