Fork me on GitHub

告别Win32,你准备好了吗?

今年11月,微软新一代的操作系统Vista就会发布,它将会改变原有的编程机制。
Vista生成器最终将跟以前的Win32 API进行分离,取而代之的是可管理的WinFX,而WinFX就是微软继DOS、Win16、Win32之后推出的第四代API。据外刊报道,以前利用Win32 API开发的软件,在微软承诺的维护期之后将不能运行。
  Win 32 API历经Windows 95到XP,受到众多应用软件开发商的追捧。过去,无论是最常用的字处理、电子邮件、即时通讯软件,还是专业的杀毒、ERP软件等等,大都利用微软提供的 API进行开发,这样能省去直接跟系统资源、硬件打交道的麻烦。微软提供了近7.8万个Windows API以及大量的辅助开发工具,这种友好的姿态让无数开发人员甘愿在微软平台上创造各种应用软件。但另一方面,微软又通过API“控制”了软件的开发,帮助自己成就了霸主地位。然而,在Win32 API逐渐淡出人们的视野后,新一代的API还能如微软设想的那样延续Win32时期的辉煌吗?
  挑战来自互联网
  事实上,微软首先要迎接的便是互联网所带来的挑战。在最近举行的“Zend/PHP展会”上,Google副总博思沃斯称,计算的力量正在由专有技术、微软的API转向Web上的链接和内容。他认为,10年前,API意味着控制,但目前占有主导地位的是链接。“在目前的这个世界上,API就是链接。”尽管博思沃斯有意跳过了应用软件最终都要跟硬件打交道这一事实,但也说明一种真实的现象:随着网络的兴起,技术不再让用户、投资人和软件开发商有多大兴趣,如何利用已有的技术提供多样化的服务才是关注的焦点。正如博斯沃斯所预测的,微软的API似乎有被边缘化的趋势。
  软件的消费需求变了,应用软件开发商随之而变。过去在C/S(客户端/服务器)模式下,软件由开发人员根据客户的需求,制订开发计划,然后调用操作系统API来实现,最后部署到客户的终端和服务器上。现在,软件开发正在经历着从C/S结构到B/S(浏览器/服务器)结构的变革,软件可以不用部署到客户端,用户只要上网打开浏览器就可以实现需求。
  “在企业级应用上,”大唐软件总经理助理兼规划咨询部经理陈彬说,“采用B/S开发的软件对客户端的要求降低了,(软件)大部分功能,包括界面控件,都放到应用服务器上部署和共享。”一旦一切操作都在网络上完成,实现这些操作的软件就不用像以前一样必须安装在客户端上,也就不必再调用桌面操作系统的API,而是把与硬件设备打交道的烦琐工作交给中间件或服务器去处理,这样,桌面操作系统API的生存空间不得不面临挑战。
  在B/S模式下,变的不仅是软件开发的方式,软件开发人员也在变。新一代的程序员对Windows API的了解也大不如前,博思沃斯表示他们更多地使用PHP、LAMP组合(Linux、Apache、MySQL、Perl/PHP/Python)。这一点从人力资源的供求关系也可以看出。据纽约市人力资源调查显示,Windows API程序员的数量远不如从前,所以遇到需要Windows API开发人员时,这些程序员的身价可以达到13万美元/年,而近年来人数急增的网络开发人员却只能挣到8万美元的年薪。
  不过,不同的应用软件开发产商对此有不同的解读。“防毒安全产品,在补足系统安全性时,需要尽可能地贴近操作系统,”趋势科技高级产品管理与技术顾问齐军介绍说,安全应用产品不仅需要与微软互相开放API,“实际上,为了更好地保护系统,对微软API的依赖很大。”尽管WinFX的前途不明朗,但在安全等跟操作系统联系紧密的领域,WinFX胜算还是很大。只是在CRM、ERP等注重客户业务开发的领域,随着B/S开发模式的渐渐普及,将逐渐淡化对操作系统API的需求。
  出击,微软求变
  微软已经看到了这些威胁。所以,Vista出来了,带着全新的WinFX。
  没有全新的技术,就不会有震撼的软件。微软的WinFX已经把繁杂的Win32 API减少到8千个左右,在.NET框架下采用可管理代码编程模式,跟底层系统资源的关系更密切,能自动管理如内存等,减轻程序员的负担。另外, WinFX还加入全新的图形用户界面子系统Avalon、文件子系统WinFS和网络服务通讯子系统Indigo,使得开发环境更加友好。据 Gartner预测,这些技术表明微软的API发生了巨大的改变,Win32 API终将被WinFX替代,而成为新操作系统中的遗产,正如Win32取代DOS和Win16一样。
  尽管WinFX代表微软应用程序设计的重大进步,但Gartner认为这是有代价的。在一段时间内,程序员还可以继续使用Win32 API开发应用程序,不过利用WinFX开发的程序并不向下兼容,只能在Vista平台上运行。而且,Vista操作系统带来的变化和WinFX开发者框架迟早将会刺激开发者转向.NET框架,因此开发人员应当尽早掌握.NET框架可管理编码的技能,才能应付在2008年全面使用WinFX时会出现的种种问题。
  当然微软不会忘记自己的霸主地位也来自于应用程序开发人员的贡献。所以,提供更好的开发工具、指南和大规模的宣传培训必不可少。随Vista一并提供的 SDK(软件开发者工具包)含有一套用户界面组件和行为,微软称新的Vista SDK将过去分散的工具、工具包和技术内容组合在一起,能支持端到端Windows客户开发。微软也准备了一系列能让开发人员熟悉和提高使用WinFX的活动,如Windows硬件工程大会等。
  微软对自己的各种努力一向很自信。在最近一次专业开发人员大会(PDC05)上,微软宣布由三十多家独立软件供应商(IRV)已经确认将发行新的适用于Vista操作系统的应用软件。微软认为这是业界对微软下一代操作系统的热烈回应。从 2002 年就开始对微软下一代操作系统投入特别关注的Windows SuperSite专家 Paul Thurrott表示,微软把这些技术提供给现有的用户可以扩展 Avalon 和 Indigo 技术的市场,鼓励开发人员尽快的接纳这些技术。这样,WinFX 便能够更快的达到 Win32 API 几十年才达到的高度。
  但火速蹿起的竞争对手们并不想把下一个十年再留给微软。在API的争夺战中,开源操作系统Linux所提供的免费API几年来在欧洲不断攻城掠地;在API之外,Sun公司力推的J2EE平台,也让年轻的客户端软件开发人员根本不用去了解Windows API;近段时间以来,Google举起“网络服务”的大旗,不断推出如Froogle购物、Gmail等免费的网络应用,直接威胁到利用微软API开发的各种应用软件。而微软当然也在Vista的一再而三的调整中努力寻求着对自己最为有利的方法。
-------------------------------------------------------------

*什么是Win FX?

    WinFX 是Windows Vista的托管代码编程模型,在.NET Framework上构建并扩展之。针对现在的软件(开发)挑战,WinFX提供了新的机会来创建目前不能构建的软件和服务。它使得开发人员和设计人员能够快速创建更可靠、更安全、视觉刺激更好、信息管理更智能、有着更好的互联性和更强的协同性的新应用和新体验。
WinFX是.NET 2.0的扩展,说白了就是在.NET上新加入了很多API。主要增强了三块功能:界面表现(WPF),企业级通讯(WCF),工作流引擎(WWF),其它的一些新特性,比如XPS、InfoCard等等
    由于WinFX这个名字给开发人员造成了很多困惑,弄不清楚WinFX和Framework的关系,微软决定将WinFx更名为.NET Framework 3.0。
文章来源:http://chenguang.spaces.live.com/Blog/cns!E17066B5449B3517!511.entry

posted @ 2006-10-12 20:04  张善友  阅读(368)  评论(0编辑  收藏  举报