|
"津雲"客戶端 |
|||
Windows 7在昨天邁過最後一個裡程碑,進入了RTM階段,接下來會陸續通過各種渠道進行分發,最終10月22日全面公開發售,也就是還有三個月的時間,我們就要迎來一個新時代了,那麼,你手上的各種程序軟件是否已經准備好入駐Windows 7了呢?
從Windows XP/Vista過渡到Windows 7,從應用程序角度講至少要做到以下三個方面:
1、確保與Windows 7兼容
2、優化在Windows 7下的體驗與性能
3、利用Windows 7提供的新特性
下邊逐一來看:
1、確保應用程序與Windows 7兼容
在Vista發布之初,軟件兼容性困擾了不少人,後期雖大有改善但留下的負面影響已經很難消除。幸運的是,Windows 7沒有在內核級別上做大規模變動,所以如果你的軟件在Windows Vista下運行正常(包括設備驅動程序),那幾乎就可以放心換到新系統下了。按照微軟的說法,這個概率基本能達到99%。
但如果你的程序是為Windows XP甚至Windows 2000設計的,在Vista下都存在問題,就不要指望能直接轉向Windows 7了,必須進行更新,或者試試兼容模式。
需要特別指出的是,兼容性並不僅僅是操作系統的責任,更是軟件自己的問題。總不能指望Windows 7去全面支持五六年前的老軟件吧?所以在抱怨新系統兼容性之前,不妨先看看軟件本身是不是該做些什麼。
以下是軟件兼容性問題最多的七個方面:
(1)、版本檢查
目前為止的頭號問題。有沒有在Windows 7裡運行軟件的時候看到錯誤提示說『需要Windows XP或更高版本的操作系統』?如果是的話那你就碰傷版本檢查問題了。(參考資料:en-us/library/bb756927.aspx)
(2)、數據重定向
從Vista開始,標准用戶對特定文件、文件夾、注冊表鍵值的訪問受到了限制。如果軟件試圖寫入這些區域,就會被拒絕並重定向其它地方。大部分情況下,這個過程對用戶和程序員來說都是透明的,但偶爾也會不透明,這時候問題就來了。(參考資料:kb/927387)
(3)、IE保護模式
還是從Vista開始,IE默認運行在較低權限下,使得部分ActiveX控件無法再正常運行。Windows 7和IE8同樣如此。(參考資料:ie/archive/2006/02/09/528963.aspx)
(4)、Session 0隔離
Vista下的系統服務運行在屬於自己的Session 0級別裡,與用戶所在的Session 1或更高級別相隔離。這是操作系統的一種安全界線保護手段,可以避免很多針對系統底層的惡意攻擊,只不過在安全性提高的同事,應用程序和系統服務之間的溝通也容易出問題,必須充分考慮。(參考資料:cjacks/archive/2006/10/24/modifying-the-mandatory-integrity-level-for-a-securable-object-in-windows-vista.aspx)
(5)、安裝程序檢測
從Vista開始,系統會自動檢測某個應用程序是否需要安裝,是的話就代表該程序要求提昇為管理員權限,再加上新引入的UAC功能,軟件安裝就容易不太順利了。(參考資料:en-us/library/aa905330.aspx)
(6)、用戶界面權限隔離
這可以阻止程序(進程)以較高權限向其它進程發送消息,即使它們運行在同一賬戶之下。這種安全保護手段同樣既阻擋了惡意攻擊,也會破壞一些程序的正常運行。
(7)、高DPI
Windows 7在安裝過程中就會自動檢測用戶的顯示器是否支持高DPI,是的話就自動啟用。如果程序不支持高DPI,就可能會出現顯示問題。(參考資料:en-us/library/dd756693(VS.85).aspx)
2、優化應用程序在Windows 7下的體驗與性能
能夠正常運行只是第一步,改善程序性能、優化用戶體驗就是錦上添花了,特別是要充分適應Windows 7的一些新變化。
(1)、超級任務欄
Windows 7的超級任務欄可以用更直接的方式為用戶提供更多信息,比如彈出菜單(Jump List)就可以顯示相關程序最常用的功能,這就需要軟件的配合了。(參考資料:blogs/developers/archive/2009/06/18/developing-for-the-windows-7-taskbar-application-id.aspx)
(2)、庫(Library)
作為訪問用戶數據的首要入口,庫在Windows 7裡是用戶指定的特定內容集合,和文件夾管理方式是相互獨立的,分散在硬盤上不同物理位置的數據可以邏輯地集合在一起,查看和使用都更方便。(參考資料:blogs/developers/archive/2009/06/11/windows-7-programming-guide-libraries.aspx)
(3)、觸發式啟動服務
Windows 7的任務控制管理器已經進行了拓展,在特定系統事件(觸發)發生之後,系統服務可以自動開始或停止。這樣一來,服務就無需開機自啟動了,可以等到需要的時候再開始,從而大大節省系統資源並加快開機速度。(參考資料:en-us/library/dd405513(VS.85).aspx)
(4)、電源管理優化
Windows 7提供了新的基礎架構和工具,可以讓開發人員輕松判斷自己的程序對耗電或節能的影響,並有一系列的事件回調,讓程序在系統運行於電池的時候降低活躍度,並在切換到AC供電後自動恢復。
(5)、故障排除平臺
一直以來,Windows都會在出現問題的時候給用戶提供一些解決方案供參考,但大多形同雞肋,而Windows 7在這方面大大增強,使用基於PowerShell的機制來診斷、解決問題。Windows 7的故障排除平臺和PC解決方案衷心無縫集成,讓應用程序的故障診斷更統一、更簡單。(參考資料:en-us/library/dd323778(VS.85).aspx)
(6)、Windows錯誤報告(WER)
Windows錯誤報告是一系列技術,可以捕獲軟件崩潰數據,用於相關信息的實時反饋。通過Winqual服務,軟件和硬件廠商可以訪問這些報告,用來分析和解決問題,發布相關補丁或者進行軟件昇級。(參考資料:whdc/maintain/StartWER.mspx)
(7)、I/O優化
I/O優先級可以在不明顯消耗系統資源的情況下改善響應速度。如果程序沒有進行I/O優化,可能會佔用大量資源,給系統增加額外負擔。
(8)、重啟管理器
這種技術可以自動完成崩潰後重啟,並在不重啟整臺機器的情況下完成程序和系統的更新。如果軟件不幸崩潰,重啟管理器就給了保存關鍵信息的二次機會,Windows會自動重新啟動程序,並嘗試載入之前保存的信息;系統完全重啟的次數也會大大縮小,實在需要的話Windows也會在系統重啟後盡量重啟相關程序,並使之返回重啟前的狀態。
3、利用Windows 7特性提供全新用戶體驗
完成之前兩步後,應用程序已經可以很高效地在Windows 7上運行了,不過Windows 7還引入了大量新特性,使用得當的話可以進一步大大提昇用戶體驗,也會讓你的軟件『高人一等』。
(1)、Ribbon用戶界面
Office 2007引入的分欄式用戶界面『Ribbon』在Windows 7裡開始得以發揚光大,不少程序的界面都煥然一新。程序員自然也可以將其拿來為己所用,擺脫Win32 UI開發的繁復,用更簡單、更高效的方式設計更豐富、更直觀、更高性能的用戶界面。
(2)、多點觸摸
Windows 7最先為人所知的新特性就是對觸摸和手勢操作的改進支持,讓用戶得以擺脫鼠標點擊、拖拽的束縛。新的多點觸摸API支持平移、縮放、旋轉等多種操作手勢,並有直接視覺反饋,和底層內容的交互也更自然、更直觀。
(3)、傳感器與位置平臺
Windows 7原生支持各種傳感器,包括GPS導航儀、溫度計、環境光傳感器等等,並提供了新的開發平臺,可以籍此創建能夠感知周圍環境的應用程序,特別是位置感應也為各種各樣地圖服務提供了新機遇。
(4)、新的圖形堆棧
Windows 7通過一系列DirectX API將新的圖形能力交給開發人員。Win32開發者可以利用GPU圖形處理器的強大能力,在自己的程序裡增加快速、高效、高質量的2D/3D圖形、文字、圖片。
(5)、媒體平臺
Media Foundation和DirectShow是Windows系統媒體支持的基礎。前者從Vista開始引入,目標就是取代古老的DirectShow,到了Windows 7裡進一步增強,可以直接支持更多媒體格式,包括:
● MPEG-4
● 支持視頻捕捉設備和硬件解碼器,包括H.264、MJPEG、MP3
● 新的MP4、3GP、MPEG2-TS、AVI資源
●新的MP4、3GP、MP3
(6)、Federated Search(聯合搜索)
Windows 7將搜索的概念從本機擴展到了網絡,基於OpenSearch項目和RSS格式。開發人員和IT專家無需便攜和部署客戶端代碼就能讓Windows 7搜索自己的搜索引擎、文件歸檔、Web程序和私有數據。搜索公司內部網和Web網絡將像搜索本機一樣簡便,且都在同樣的Windows界面裡完成。
(7)、Device Stage
主要針對收集、便攜式媒體播放器(PMP)、相機、打印機等外圍設備,並與軟件和服務緊密集成,可以在Windows桌面上直接使用這些設備。