Windows XP 和 Vista 编程的主要区别是啥?

Posted

技术标签:

【中文标题】Windows XP 和 Vista 编程的主要区别是啥?【英文标题】:What are the main differences between programming for Windows XP and for Vista?Windows XP 和 Vista 编程的主要区别是什么? 【发布时间】:2010-09-06 13:34:05 【问题描述】:

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

【问题讨论】:

【参考方案1】:

用户界面

查看Windows Vista User Experience Guidelines,您可以看到他们更改了许多 UI 元素,您应该注意这一点。需要注意的一些主要事项:

Larger icons 新的font(这会影响一些自定义 UI 一致性) 新的dialog box features (task dialogs) 更改了common dialogs(如文件打开、另存为等) 对话文本style and tone 和look and feel 新Aero Wizards 重新设计toolbars 更好notification UI 包含search control 的新推荐方法 Glass

64 位

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

Registry virtualization Registry redirection (Wow6432Node) Registry reflection Digital signatures for kernel modules MSI 安装程序需要处理 new properties

UAC

User Account Control 极大地影响了您的应用程序在与操作系统交互时所拥有的默认权限。

How UAC works and affects your application(另见requirements doc) Installers have to deal with UAC

新 API

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

Cryptography API: Next Generation (CNG) Extensible Application Markup Language (XAML) Windows Communication Foundation (WCF) Windows Workflow Foundation (WF) 还有many more smaller ones

安装者

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

【讨论】:

【参考方案2】:

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

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

Vista 的编程一般与 XP 相同,只是需要注意新的帐户限制。

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

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

【讨论】:

【参考方案3】:

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

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

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

【讨论】:

【参考方案4】:

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

UAC 的东西基本上是一个有争议的问题;应用程序开发人员需要做的事情很少。

【讨论】:

以上是关于Windows XP 和 Vista 编程的主要区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

XP和VISTA区别?

获取 XP、Vista 和 7 的 windows 序列号

Windows Vista 与Windows Xp的区别

Firefox 将停止支持 Windows XP 和 Vista

Vista 和 Windows 7 中的 OLEDB JET 错误,而不是 XP

Windows XP 与 Vista/7 上的 MS Crypto API 行为