看到很多Windows开发人员,尤其是C++程序员思维还是停留在XP操作系统,当然根据工作是否需要新知识 ,这本身没有错。但是实际上Vista之后的Win7, 再之后的Win8 ,Windows已经发生了很大的变化,我们程序员也该了解和适应这些变化。
先看看Windows的发展历史:
从上面的图,我们可以看到大概时间点:
Win 95: 1995
Win 98: 1998
Win 2000: 2000
Win XP: 2002
Vista: 2007
Win 7: 2009
Win 8: 2012
Win 8.1 (Windows Blue): 2013 ?
从上面的图我们可以看到,Windows每次大的改动后通常都会有2个版本 ,而后一个版本通常会取得巨大成功,Win98, WinXP, Win7的成功已经证明这一“规律”,如果不出意外,Win8.1应该也会成功。
我们也可以看到XP作为Windows历史上最成功的操作系统,在近10年里一直占有统治地位, 现在仍有挺大的用户量。但是随着Win7的成功,XP的用户量正在逐步下降, 新的电脑现在一般都自带Win7或是Win8系统,我们的应用程序也该适应新的系统。 当然,微软一直在系统的兼容性方面做得很好 ,我们的应用程序一般不用改动就可以直接运行在新的系统上, 但是如果要使我们的程序在新的系统上更有竞争力 ,我们的程序就该充分利用新系统的一些特性。
下面我们简单列举一下Vista(Win7 )相对于XP,对开发人员的一些变化:
Direct2D : 微软下一代替代GDI/GDI+的2D渲染API,充分利用了GPU硬件加速。
DirectWrite : 独立于分辨率的矢量字, 高质量的文本显示和布局接口。
Windows Animation Manager : 高效强大的动画管理接口。
Windows Imaging Component : 强大的图像编解码器接口,支持各种图像格式。
Windows Touch Gestures : 支持多点触摸应用程序的开发接口。
User Interface Privilege Isolation :UAC(user access control)打开后,每个应用程序都有权限等级, 一般程序都运行在低权限,低权限程序不能控制或是发消息给高权限程序。
Session 0 Isolation :XP时代服务程序和一般普通应用程序都运行在Session0 中, Vista之后只有服务程序运行在Session 0, 第一个登陆用户运行在Session 1。
Data Redirection :UAC打开时有些目录不让写入数据,会导致写入失败或是重定向到其他路径。
Installer Detection :UAC打开后某些应用程序可以通过manifest配置信息要求高权限运行, 运行时会有验证窗口。
Ribbon :新一代office的界面风格, 主要是去掉菜单, 为支持触摸做准备。
Windows Gadget Platform :桌面上的那些小玩意。
Desktop Window Manager(DWM) : 在 Aero模式下的标题栏半透明效果, 后台用了全新的渲染合成接口。
Magnification : 开发 自己 的放大镜程序接口 。
Virtual Disk Service : 创建自己的虚拟硬盘接口。
Taskbar: 创建Win7 风格的任务栏图标
我们可以看到Win7相对于XP的主要进步在于界面炫和安全性, 这2者对操作系统来说都是很重要的。
上面主要考虑的是操作系统的特性, 如果再加上 .Net 的变化, C#, F#, WPF(WindowsPresentationFoundation), WCF (Windows Communication Foundation), WWF(Windows Workflow Foundation)等, 变化就更多了。
而Win8相对于Win7的变化主要是增加了Metro模式, 该模式下的程序都要经过Windows Strore验证, 这些程序本身都运行在低权限的沙箱里, 原理可以参考我以前写的《理解WinRT》,关于WinRT的更多知识可以参考Windows API reference for Windows Store apps 。
尽管Win8刚出来时很多用户不买Metro模式的帐, 觉得 它是一个怪胎,但是新生事物总有一个被接受的过程, 我们也可以看到微软应该不会放弃它。因为ARM版的Win8, 传统Desktop模式下都没有开放开发接口, 也就是说我们在Arm版的Win8 下只能开发Windows Store App。当然X86下的Desktop因为这么多历史软件的原因,应该会长期存在, 但是如果你要开发同时支持X86和Arm的程序, 你只能用Windows Store App。所以我们可以看到WinRT其实是一个很重要的东西,它统一了PC,Tablet和Phone,是微软下一代面向对象的开发接口, 甚至WinRT同时支持HTML开发, 它还统一了Native和Web。
另外,如果关注MSDN杂志, 我们会发现, 上面.Net相关的文章出现的越来越少, 而Phone和AZURE字眼的文章出现的越来越多, 这其实也说明了为微软的战略已经从.Net转移到了移动和云服务。实际上从2010年开始,微软就开始推广他们的云服务平台WindowsAzure 。我们可以试想一下我们以后的程序(实际上很多已经这么做了), 客户端前台基于WinRT, 直接跨各种类型的用户终端, 而后台调用Windows Azure 提供的云服务。
很多人说跟着微软跑真累,确实如此。 但是回头来想想, 那是因为你一直落后, 你一直在追赶, 你一直是被赶着走的, 所以你会觉得累。如果你一直是与微软起头并进, 甚至领先与微软(微软新加的东西是你意料到的), 你就不会有累的感觉,有新东西出来, 研究下原理, 写些测试代码,就大概知道怎么回事了。
记得有本书上说过(好像是<<代码大全>>),程序开发人员的知识每隔3年, 就有一半被淘汰。 可能有些夸张, 但是从Xp到Win7 到Win8,已经过了10多年,隔了2代了, 是时候更新下自己 的知识了。当然, 有些新知识可能只是壳,也有些新知识却是质, 把握本质和原理的东西永远是最重要的。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com