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

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

问题描述:

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

用户界面

纵观Windows Vista User Experience Guidelines你可以看到,他们已经改变了很多UI元素,你应该知道的。一些主要的事情需要注意:

64位的方法

Vista有一个64位版本,虽然XP确实做了,你的用户更有可能使用Vista 64比XP 64.现在你要处理:

UAC

User Account Control极大影响,与操作系统进行交互时,您的应用程序的默认权限。

新的API

有哪些是针对应用程序的构造或允许新的功能或者新的方法新的API:

安装程序

由于安装程序只能使用在交易后安装的常见运行时已完成,custom actionswill fail如果您的自定义操作DLL需要VS 2005 CRT(非SP1)以上的Visual C++运行时。

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

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

一般来说,Vista的编程与XP相同,它只是您必须谨慎的新帐号限制。

看一看这个页面与问候让您的应用程序“UAC知道”

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

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

如果您确实想将这些内容包含在您的应用中,它就会有所作为。但我会说不是一个巨大的。如果你抽象出不同之处(例如,编写你自己的函数来显示Vista的TaskDialog,但是你把它输入到XP上的MesssageBox中),那么你只会写自己的代码,差异似乎几乎没有。另外,很多Vista的新东西(例如UAC或Aero)都是你一次担心的东西,当你创建使用它的第一部分功能时,让它工作,然后再也不用想了而你正在开发应用程序。

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

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