Windows XP和Vista编程的主要区别是什么?
用户界面
纵观Windows Vista User Experience Guidelines你可以看到,他们已经改变了很多UI元素,你应该知道的。一些主要的事情需要注意:
- Larger icons
- 新font(这会影响一些自定义UI constistency)
- 新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极大影响,与操作系统进行交互时,您的应用程序的默认权限。
新的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 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的东西基本上是一个有争议的问题;应用程序开发人员需要做的事情非常少。