C# Windows CE特点之兼容性
C# Windows CE特点之兼容性的设计思路:
可移植性使我们可以将代码从桌面移植到C# Windows CE中,或者在使用不同CPU的C# Windows CE设备之间进行移植。
而编程接口的兼容性就意味着尽可能使设备接口和桌面接口保持一致。为了这一目标,C# Windows CE开发团队将可移植性的概念更深入了一步,使得在桌面环境和智能设备之间共享代码尽可能的容易。
某些情况下,桌面环境和C# Windows CE的特性是一一对应的。例如文件系统,C# Windows CE和桌面环境都支持长文件名的分层文件系统;支持的最大文件路径长度都是260个字符。而且,它们为管理系统和应用程序设置都使用分层的注册表。
为每个不同编程接口做出的选择进一步加强了兼容性。
由于C# Windows CE支持的Win32函数比桌面环境少,那些匹配的函数就尽可能的和桌面环境对应的函数一样。
例如,桌面版本的创建窗口(CreateWindow)函数和C# Windows CE中同一函数的参数个数和类型都是一样的。
看起来新的操作系统和原来的版本保持兼容是天经地义的,但事实通常并非如此。例如OS/2操作系统,它是由微软和IBM联合开发作为Windows继任者的。
但是Presentation Manager这一GUI编程API,则是在其原有基础上与Win16 API“混合”与“改进”而成的,结果这个新的API已经失去了所有和Win16 API的联系,这是完全的替代而没有兼容。
这样做是有问题的,因为Win16代码有很多,而相关的Presentation Manager代码却几乎没有。
很多开发人员发现要将Win16代码移植到Presentation Manager平台上,基本和将同样的代码移植到如Macintosh之类的其它GUI系统中的难度一样。为了解决这一问题,微软开发了Win32这种新的编程接口,它的首要目标就是保持与Win16 API的一致与兼容。从这一深刻的教训中,我们更加深入体会了要成功升级API需要做的努力。
C# Windows CE开发团队受益于这次的经验,并且充分享受了从桌面轻松移植Win32软件的好处。