我发现我们IT从业人员对待时间从来就没有一种从容的态度。2008年元旦,我们大大的舒了一口气,2007年终于过去了。又一年过去了,仿佛我们没有任何留恋,那是又一个充斥着各种令人眼花缭乱的新技术、新产品、新观念的一年,它是一股奔流着的大潮,而你被裹挟其中,无法驻足稍息片刻来理解、品味、消化、吸收。各种理念被你生吞活剥吞下肚去,因为时间不等人,2008年新一轮的技术大潮又朝你扑面而来。
所以消化不良是我们这个行业的普遍现象,我们需要“家中常备江中健胃消食片”。希望这篇文章可以帮您消化有关微软的一些技术名词。
在2007年最耳熟能详的微软理念莫过于“S+S”,即Software + Services (软件加服务),其次当属“Silverlight”,至于第三位,不同的人会有不同的看法,开发人员也许选择“.NET 3.5” 和 “Visual Studio 2008”,也有人会选“Expression Studio”,还有人说是“OBA”(Office Business Applications)。我的选择则是“SharePoint” (全称叫作Microsoft Office SharePoint Server 2007, 简称MOSS 2007)。所以在我看来,微软的2007年可以总结成一个4S年(S+S, Silverlight, 和SharePoint)。大家保养自己的爱车都喜欢到4S店去,在IT行业,微软岂不也是一家为大家提供优质产品和优质服务的4S店吗?
S+S
自从Ray Ozzie 来到微软接替Bill Gates的首席架构师职位以来,他就在公司上下推行“S+S”新政。其基本理念就是,每一个微软的软件产品,特别是服务器产品,它不仅要有传统的许可证方式销售给用户,用户进行本地安装运行的模式,它还要有以互联网服务的方式提供给用户,用户无需本地安装而直接由互联网访问该服务的模式。为了区别,前者叫软件,后者叫服务。其实只是功能交付与运行的方式不同,本质上都是软件。微软认为,传统的软件运行方式有其独特的优势,因为是在用户本地计算机上运行,不受网络条件的影响,可以断开网络运行,又可以充分利用本地计算机的CPU、内存、硬盘等资源,可以有更丰富的用户界面和更快的响应时间,从而用户体验比较好。而服务方式的优势在于用户无需安装,而总是可以得到最新的功能,而且可以随时随地使用,只要该服务在线而用户又可以联网。软件与服务两种方式都是需要的,它们也并不是非此即彼,一个软件产品可以同时以两种方式提供,软件与服务所提供的功能可以互为补充,不必强求完全相同,这就是“软件+服务”。
下面列出了微软已经发布和即将发布的几项主要服务及其对应的软件:

“网上银行”是一个很好的“S+S”的例子。我们一般通过浏览器访问银行的个人网银服务,进行查询帐户余额、转账等操作。如果要想使用更高级的功能,或是希望更安全的操作环境,我们就会使用网银的专业版。专业版一般是一个独立的软件,不运行在浏览器中,它提供更丰富友好的界面和更高的安全性,其使用的仍旧是银行在互联网上提供的服务。另外,目前各种桌面和手机上的炒股软件也是“S+S”的例子。
服务可以是面向最终使用者的,也可以是面向机器的(即面向程序的)。面向程序的服务提供了统一的、符合开放标准的编程接口,供其它程序调用。比如Windows Live ID服务。任何程序,如果不想单独建立一套自己的用户体系,可以使用Windows Live ID服务来进行用户身份认证。一个用户首先获得一个Live ID,然后通过Live ID服务登陆到该程序。再比如Amazon的商品目录(Catalog)服务。一个经营专业相机的网上商店,可以使用Amazon的Catalog服务来获取市场上各种专业相机的资料及图片,再以自己特有的方式呈现给客户,并辅以各种自己的特色服务,来达到吸引买家进而促成销售的目的。
未来各种各样的服务会越来越多,越来越多的应用也会通过集成各种第三方服务来提供自己的功能,一项服务会被很多应用所使用。这就是SOA。
Silverlight
除了那些恼人的弹出广告以外,Web应用的界面基本上是静态的、文本的、非互动性的。一个典型的例子就是新浪首页。当然这源于HTML本身的局限性。AJAX勉为其难,试图改善单调的人机交互界面,但结果离我们的期望仍然相差太远。计算机的使用者因此不断出入于两个不同的世界,一个世界如Windows Vista界面,绚丽的色彩,超酷的动画,多样的菜单,文字、图片、背景、按钮、音频、视频无缝组合。另一个世界如新浪网页,呆板的布局,无数的下划线,整版的文字,不断的弹出窗口再不断的关闭窗口。我们有幸有了互联网,可以访问一个遥远的资源,但我们的用户界面体验却回到了石器时代。这就好比发明了电话,但如果要打电话的话,我们必须住回到山洞里一样。
我们需要的是跨平台的RIA(Rich Internet Applications)技术。Silverlight就是微软的跨平台的RIA技术。
Silverlight在去年初的MIX大会上宣布,并于9月份正式发布了1.0版本。这是一项跨操作系统平台、跨浏览器、跨编程语言、能够带来丰富的图形图像以及多媒体、具有高互动性展示界面的Web技术。如果要指出微软还有哪项新技术比.NET所带来的影响更加震撼,那就是Silverlight。它将颠覆整个互联网应用的现有格局。如果去年一年你都在封闭开发而无暇顾及了解任何新技术,并且你开发的正好是Web应用,那么今天我一定要请你注意这一个新的名词,它叫Silverlight!在未来的3-5年里,它将完全改变你编写Web应用的方式。
Silverlight支持Windows、Mac以及各种主流Linux操作系统(其中对Linux的支持将由Novell在与微软的合作下完成,Linux平台下的产品叫作Moonlight,大概会在今年上半年发布)。Silverlight支持的浏览器包括所有流行的浏览器(IE,Firefox,Safari,和Opera)(注:对Opera的支持可能会晚一些)。Silverlight本身构建在.NET基础之上,它支持的开发语言包括C#, VB, Python, Ruby,以及Javascript。
如果你看到过Silverlight 1.0的一些有关多媒体和矢量图形的应用和演示,你也许会不以为然,这不就是Flash吗?希望你不要早早的下结论,先看看Silverlight 2.0里会有些什么:一个面向Web应用开发的.NET基类库,一个面向Web应用开发的WPF界面框架,更多更丰富的控件,对REST、POX、RSS、WS等各种网络通讯Ь议的支持,对多线程的支持,等等。你说,哇,在AJAX里我不得不用界面线程去读远程后台数据,结果造成主界面对用户操作无法及时响应。多线程支持太棒了!如果你还见过WPF桌面应用,然后我告诉你这样的界面可以当作Web应用界面移到浏览器中运行,你会有何感想?!
回过头来看,微软的.NET技术实在发展得太快了。大多数人还没有回过味来的时候,.NET已经从2002年的1.0版本发展到2007年的3.5版本。在2002年,.NET 1.0已经达到了J2EE的高度,实现了操作系统级别的平台抽象,托管代码,运行时,自动垃圾收集,类型安全,等等。.NET 3.0和.NET 3.5则完全超越了J2EE(现在叫Java EE 5)。.NET 3.0中的WPF、WCF和WWF技术,以及.NET 3.5中的LINQ技术,无一不是重量级的。如今地平线上又出现了一个Silverlight,它为编写新一代互联网应用打开了方便之门。请想象一下未来的编程情景:你选择你最喜欢的语言来编写程序,你的程序可以有超眩的界面和用户体验,它可以运行在Web上,PC、Mac、或Linux都行,还可以是各式各样的嵌入式设备里。再想象一下,你的Silverlight Web应用比你上次用Javascript写的Web应用快上300-1000倍!
SharePoint
CIO们也许更关心企业目前面临的一些问题。例如,如何提高办公效率,如何管理越来越多的文档,如何在整个企业范围内快速的找到所需的信息,如何共享信息,如何提高团队协作的效率,如何及时的提炼出有用的商业数据用以决策,等等。微软用来解决这些问题的产品就是Microsoft Office SharePoint Server 2007。它是一个集门户、团队Ь作、企业搜索、企业内容管理、商务智能为一身的服务器产品。
从2001年的第一个版本到2007年的第三个版本,短短6年的时间,SharePoint成长成为微软在办公与知识管理解决方案方面的拳头产品。2008年元旦刚过,微软即宣布斥资12亿美元收购FAST公司,这是挪威的一家具有尖端企业搜索技术的公司。其核心搜索技术将集成到SharePoint中去,使得SharePoint如虎添翼,越加强大了。
小结
限于篇幅,无法在此一一列举微软的各项新技术,以上仅举其一二而已。三月份,微软将发布Windows Server 2008、SQL Server 2008和Visual Studio 2008。这是继2005年11月微软同时发布SQL Server 2005、BizTalk Server 2006和Visual Studio 2005以来的又一次隆重的技术发布活动。套用一句广告词作为本文的结束语,Are You Ready?
作者简介:
曹严明,微软软件架构师。曾在微软总部参与SharePoint等产品的研发工作,后来在微软(中国)从事.NET平台与体系架构在中国的推广。对软件体系架构, .NET、Web Services、SOA等有比较深的研究。
(本文来自《程序员》杂志0802期)