當前位置: 華文問答 > 數位

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