在蹉跎中一路前行
——谈Microsoft .NET战略
Eric Liu(刘如鸿) 2004年《程序员》杂志第六期
题记
四年的时间对于历史而言只是沧海一粟,而对于一个商业公司而言,却足以重生几回。从微软提出.NET战略到现在也接近四年了,而今的我们应该怎样去看待.NET四年走过的历程,怎样去评价.NET战略。
从职业角度来讲,过去的半年实在是疯狂,绝对的疯狂,至少我是这样。其中有很多原因,但最重要的一个原因实际上是我们公司正在经历的变迁。而今天所作的介绍从某种意义上可以说,许多人、尤其是我,度过了无数个不眠之夜、花费了无数心血来认真思考这场变革。但是从某种意义上讲,正是这一变革,促使比尔·盖茨在年初作出了重要决策。我们确实花费了全部时间来认真考虑新一代的互联网会是什么样,怎样把如此众多的部分,包括我们已经做过的一些开发,完美地结合起来,继续保持世界领先地位,成为100%的比尔·盖茨时代。
微软总裁兼首席执行官——史蒂夫·鲍尔默
.NET的激情起航
2000年6月22日,这是一个所有“微软人”都应该记住的日子,因为从这一天起,微软公司将下一场赌注,一场押上全部身家的世纪豪赌——这一天,比尔.盖茨向全球宣布其下一代软件和服务,即Microsoft .NET平台的构想和实施步骤。新一代的Microsoft .NET 家族产品和技术替代了此前“下一代Windows服务(NGWS)”的提法,它涵盖了帮助软件开发商构建下一代互联网服务和给予新一代智能互联网设备强大功能的软件。此外,微软还宣布了基于.NET 平台的新产品计划,其中包括新一代的微软Windows操作系统、Windows DNA服务器、微软office、MSN互联网网络服务、Visual Studio开发系统。
这样的决定对于当时已经全球领先的微软而言,无疑是“押宝”,将未来十几年内的发展押给了他们构筑的.NET,当然也正是从那一刻开始,这家全球最大的软件公司也会不会遗力的去推进这个“伟大的梦想”。
那时的.NET
什么是.NET?.NET有什么?有人也认为是微软故意模糊概念,实际的.NET是Windows DNA(Distributed Network Architecture)和COM+的一个延续,在本质上没有改变。虽然这样的理解有时偏频,但是问题是明显的,我们不是那么容易的理解“什么是.NET”。
2000年微软的白皮书这样定义.NET:Microsoft® .NET 是Microsoft XML Web Services 平台。XML Web Services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。
我们可以清楚的看到微软对于.NET的理解是XML Web Services的平台,一切皆是服务,下一代的Internet应用将是依赖于Web Service来构建,Microsoft .NET 平台由以下技术构成:
l .NET用户体验
l .NET基础设施和工具
l .NET服务构造块
l .NET设备软件
用户永远是上帝,脱离用户讨论战略没有实际意义,为此除开倡导的平台核心技术以外,微软还承诺对于个人用户提供.NET用户体验,其中包括:
Windows .NET
MSN .NET
用户订购服务
office .NET
bCentral for .NET
Visual Studio .NET
从这些文字我们可以看出,微软几乎可以将自己的全部产品加上“.NET”的字眼,但是那是不是因为着这就是“.NET”?
Everything is .NET
大概是为了强化.NET在人们心目中的印象,微软此时开展了一场dotnetialization(.NET化)运动,几乎所有传统的、创新的和虚构的产品都被打上“.NET”的标签。
为了扩展.NET战略的宣传,微软将其很多仍使用传统技术的产品都加上了“.NET”字眼。最典型的莫过于2000年底发布的.NET Enterprise Server系列。这套服务器软件虽然打上了.NET标签,但与.NET技术没有任何关系。
真正创新的思想是Web Service。微软当时极力推动Web Service从概念走入应用的最核心。
此外,微软还虚构了、或者至少是过早描绘了一些新的、以“.NET”命名的产品与服务。
一切都是.NET,微软这样做的结果就是将.NET这个品牌叫得路人皆知,而其实质概念则几乎没有人了解。除了提供一些开发工具的支持,其他方面的.NET推进有点做作的感觉,更加实际的来说.NET战略只是一个CLR的平台,其他方面的概念解释都让人牵强。
艰难晦涩的.NET改变终于带入微软走入了一个尴尬的境地,.NET Enterprise Server就如同水中望月,而office XP的推出除了绚丽的图形表现界面以外,也没有太多东西让人发现和.NET有关,这是一段迷惘而痛苦的岁月。
迷惘
经过一年多的喧嚣,.NET已经渐渐热起来,越来越多的人开始使用.NET,至少开始关注这个平台,C#的正确发音已经尽人皆知。但是,看得出来,微软自己对于.NET的态度已经发生了微妙的变化。原来的计划太庞大,即使微软这样的巨人也无法掌控。前面的路应该怎么走?微软也产生了迷惘。
2001年5月31日office XP正式发布,它显然不是“传说”中的office.NET。微软强调这个XP版本加大的是“体验”(experience)及其网络的整合,而“用户体验”和与网络的融合都是“.NET战略”的一部分。但是,实质的改进有什么呢?除了返璞归真的平面图形菜单(戏剧性的是这样的界面成了日后众多软件界面模仿的对象),和内建支持了SOAP工具包及其联机搜索能力,我们发现和当初预想的office.NET有天壤之别。
office开发采取滚动方式进行,也就是在发布office XP之前,下一版office已经在开发中。据说部真的正在开发一个雄心勃勃的office.NET。在这一激进的计划中,所有的访问都是通过Web Service来完成的,应用程序与网络的融合史无前例。不幸的是,这个产品最终流产,并且直接导致一个副总裁的辞职。究竟是技术上太不现实,还是微软意识到这个产品无法被用户接受?我们已经不得而知。
如果说office曾经太激进,那么那些支持IT应用基础架构的应用服务器又是如何呢?在商业应用中的Commerce Server 2002,Biztalk Server 2002,Content Management Server 2002等等,虽然在一定程度加上了.NET Framework的支持,但是感觉有点是被微软强行联姻的“亲家”罢了,Visual Studio .NET对于其开发的支持依然是一种有心无力的感觉,并且这写服务器提供的并不是完整的托管类库,很大一部分功能仍然需要通过COM的方式来完成访问。.NET是一个庞大的战略,但是在短短的时间内希望完成到一个新的平台的迁移不是那么容易的事情,而此时.NET Enterprise Server系列的2002版本虽然在一个.NET的名头下依然是一个服务器群集,但是根本无法体现出.NET曾经的设想。
此时的VS.NET有点孤军奋战的感觉