当前位置: 华文问答 > 数码

Windows XP 已经过时但占有率仍很高,这是否给桌面软件开发者带来了一些麻烦?

2012-11-29数码

@王成

@梁海

两位邀请了,怎能不答?

说实话,我几乎从来都不是一个真正意义上的桌面开发者,因为我负责的东西都是躲在后台的服务,接触界面不算多。所以只能借自己不算丰富的经验,大概说一说。

IE 6 是个很大的麻烦,但正版的 Windows XP 并没有这个问题,因为 IE 的升级早已是默认选项。有问题的那些关闭了自动更新的盗版 XP。可是,站在微软的角度上看,盗版 XP 并不在支持之列。所以我对此也没什么经验,就不班门弄斧了。

库的问题,

@余天升

同学已经说得很全面了。虽然微软的向后兼容一直都做得很好,但用户总免不了被要求下载一些额外的函数库,这怎么也不算一个好的用户体验。


如果排除库的问题,而且将范围限定在正版系统开发,那么我要说:桌面应用开发者一直都有麻烦,不过也许没有很多人想像得那么严重。向上升级一般都不会有多少问题(好吧,除了那个 UAC 弹出对话框,在 Vista 里那简直是一场灾难。幸亏 Windows 7 改进了不少)。而对那些试图将 Windows 7 作为主要开发目标,又要保证应用能在 XP 上运行的开发者来说,大部分精力可能要放在对老旧协议和库的支持上,比如:

  • 64 位开发。事实上 XP 是没有 64 位系统的。真的。我知道有人会反驳说微软网站上明明就有,但告诉你一个公开的秘密:64 位 Windows XP 和 Windows Server 2003 SP1 的系统版本号是一样的。如果你想把你的 64 位程序向下移植,记得要在 Windows Server 2003 上测试。这里的问题在于,家用版系统的很多默认组件在服务器版或者默认禁用,或者干脆就没有,特别是多媒体支持。小心移植完毕却发现不能运行,那可就麻烦了。
  • 空格问题。相对 XP 而言,Windows Vista 和 Windows 7 的目录路径已经规整很多,至少能保证所有的系统路径都没有空格。而 XP 上可不是如此,比如大名鼎鼎的 C:\Users and Documents,而且这倒霉路径在不同语言系统上总是随着本地语言命名。如果是习惯了 Windows 7 开发的开发者,一定要利用 Shell32 的函数库而不是自己处理路径名,免得遇上无数诡异的错误。
  • 手写支持。作为前任手写组件的维护者,我得声明:Vista 时代的手写支持比 XP 时代实在是改进了太多。很多功能都有添加和修正。相比之下 XP 的手写支持不仅 Windows 和 Office 各做各家,而且质量也很初级。如果你的程序试图提供基于 Tablet PC Ink Support 的手写支持,向下移植的时候千万小心。
  • Active Directory 服务。作为一个相对老旧的系统,XP 只支持一些老的协议。比如 XP 只能支持到 Active Directory 中的 Windows 2003 functional level。如果你的程序需要服务器端使用 AD 进行通信,那么别忘了正确设置服务器端的 functional level。
  • 驱动开发。XP 不支持 Vista 开始引入的 WDDM,而 Windows 7 支持。对驱动程序员来说,你的驱动可能得多改改才能运行。
  • BitLocker。XP 不支持这个技术。硬盘驱动和安全开发者们可以放弃了。
  • [本句错误,多谢 @carpenter 指出,请勿混淆] DEP (Data Execution Protection)。同样,XP 不支持这个技术。如果你的程序必须运行在 XP 上,就得加倍小心检查你的程序。一旦出现缓冲区溢出,在 XP 上没人能保护你的用户。
  • Address Randomize。XP 不支持这个。这意味着程序一旦出现缓冲区溢出,那么被攻击的可能性几乎达到100%。安全分析师们得小心了,记得得找第三方的支持。
  • MMC。这个著名的 Windows 系统管理插件架构在 Windows Vista 推出时几乎被全部重写,用来支持 C# 的插件。如果你的插件是 C# 写的,做好准备重写吧。
  • 自动安装支持。也是个被完全重写的东西。IT 自动化开发者们,别太相信你们手上的 wim 镜像和 imagex.exe,还有 XML 格式的自动安装脚本。至少在 XP 上它们都会不翼而飞。
  • 基于 HTTP 协议的安全隧道。Vista 和 Windows 7 支持 SSTP,允许通过 HTTPS 通道实现安全通信。而很可惜,XP 还是没有这个支持。所以安全程序员们最好考虑将旧式的 PPTP 或 L2TP 放进支持之列。如果项目要求必须使用 HTTP 协议,那么还是用 OpenVPN 作为代替比较靠谱。

  • 本来就想随便写写,没想到居然列出了这么多。大家随便看看吧。

    最后推荐一个不错的列表,来自第三方:

    http://www. freetechexams.com/micro soft-windows/windows-7/comparison-between-windows-xp-windows-vista-and-windows-710.html