C# Windows CE特點之兼容性
C# Windows CE特點之兼容性的設(shè)計思路:
可移植性使我們可以將代碼從桌面移植到C# Windows CE中,或者在使用不同CPU的C# Windows CE設(shè)備之間進行移植。
而編程接口的兼容性就意味著盡可能使設(shè)備接口和桌面接口保持一致。為了這一目標,C# Windows CE開發(fā)團隊將可移植性的概念更深入了一步,使得在桌面環(huán)境和智能設(shè)備之間共享代碼盡可能的容易。
某些情況下,桌面環(huán)境和C# Windows CE的特性是一一對應(yīng)的。例如文件系統(tǒng),C# Windows CE和桌面環(huán)境都支持長文件名的分層文件系統(tǒng);支持的***文件路徑長度都是260個字符。而且,它們?yōu)楣芾硐到y(tǒng)和應(yīng)用程序設(shè)置都使用分層的注冊表。
為每個不同編程接口做出的選擇進一步加強了兼容性。
由于C# Windows CE支持的Win32函數(shù)比桌面環(huán)境少,那些匹配的函數(shù)就盡可能的和桌面環(huán)境對應(yīng)的函數(shù)一樣。
例如,桌面版本的創(chuàng)建窗口(CreateWindow)函數(shù)和C# Windows CE中同一函數(shù)的參數(shù)個數(shù)和類型都是一樣的。
看起來新的操作系統(tǒng)和原來的版本保持兼容是天經(jīng)地義的,但事實通常并非如此。例如OS/2操作系統(tǒng),它是由微軟和IBM聯(lián)合開發(fā)作為Windows繼任者的。
但是Presentation Manager這一GUI編程API,則是在其原有基礎(chǔ)上與Win16 API“混合”與“改進”而成的,結(jié)果這個新的API已經(jīng)失去了所有和Win16 API的聯(lián)系,這是完全的替代而沒有兼容。
這樣做是有問題的,因為Win16代碼有很多,而相關(guān)的Presentation Manager代碼卻幾乎沒有。
很多開發(fā)人員發(fā)現(xiàn)要將Win16代碼移植到Presentation Manager平臺上,基本和將同樣的代碼移植到如Macintosh之類的其它GUI系統(tǒng)中的難度一樣。為了解決這一問題,微軟開發(fā)了Win32這種新的編程接口,它的首要目標就是保持與Win16 API的一致與兼容。從這一深刻的教訓中,我們更加深入體會了要成功升級API需要做的努力。
C# Windows CE開發(fā)團隊受益于這次的經(jīng)驗,并且充分享受了從桌面輕松移植Win32軟件的好處。
.NET精簡框架也存在類似的兼容性問題。.NET精簡框架開發(fā)團隊盡量保持了.NET精簡框架和.NET框架之間的一致性。這一章后面會介紹,.NET精簡框架和桌面版本有很多公共元素,如通用的命名空間、類、屬性、方法和事件等等。
C# Windows CE特點之兼容性的相關(guān)內(nèi)容就向你介紹到這里,希望對你學習和了解C# Windows CE特點之兼容性有所幫助。
【編輯推薦】