總的來說,微軟在更新每個操作系統版本的時候,都盡量保持向前的兼容性。但是也有一些例外,如果一系列為提升性能所做的更新要兼顧之前版本就會影響整體性能時就無法一改而論了。舉個例子,微軟之前移除了對15位應用的兼容支持。
windows 8的客戶端及服務器版本有很多更新將帶來兼容性方面的巨大挑戰。這些新挑戰中的一部分沒法由管理員來解決,它們只能由應用的初始開發者處理。
大多數變更在稱為“windows和windows server開發者預覽兼容手冊”的更新文檔中都有解釋,它對大多數程序兼容性問題都有詳細說明,對當前版本存在的問題提供了解決方案。
以下是幾個已知的程序兼容性故障報告。
系統版本數字。是的,老問題又以新的面貌出現了。因為windows采用特殊的版本號,一些老的應用程序可能會因此出現問題,windows 8為自己定義的版本號是6.2.這些程序可以用當前windows提供的兼容模式來運行(例如,在程序快捷方式的兼容性頁中),但是如果你是一個程序開發者,你就必須更加小心確認版本號碼。微軟建議小心使用‘檢查版本信息’功能(用大於、不等於或者一個特殊的版本號)。
無頭的服務器應用。這是最重要的幾個變化之一,因為新版windows server(主要是server core)的設計不單運行無頭程序,還要支持那些沒有圖形界面的程序。在性能較差的環境中圖形界面可以卸載(例如,在資源被廣泛分享的虛擬機中),或者出於其它原因,比如減少服務器被攻擊可能性的考慮也可以進行類似操作。
一些服務器程序,盡管它們可能並不在無圖形界面環境中運行。任何命令行版本應用理論上都應該運行得很好,但是一旦它被用圖形界面呈現給用戶之後就可能無法很好地運行了。現在沒有很好的辦法來解決這個圖形界面引起的問題,所以它在大多數時候僅能保持無圖形界面版本的應用。
如果你准備在server core版本操作系統上運行所有應用,那麼你應當充分測試來確認它在無圖形界面環境下能如期望般表現良好。如果結果相反,同時如果你對程序編寫有一定了解,那麼你需要將現有的代碼遷移到server core平台下,並且重新確認那些WIN32 API和。NET CLR能被core系統所支持。
.NET框架。Windows 8將。NET 4.5框架放進它默認程序安裝包中,但是並不包含。NET3.5.如果你有一些程序明確只支持3.5版本,不僅僅是獨立的程序,還有那些基於該版本。NET的網站程序,這種情況下你需要手動地添加老版的。NET.