看微软.Net风云历程[转]
微软公司宣布,预计于2010年4月发布.NET 4.0和Visual Studio 2010。从1999年开始,.NET走过了10年的风雨历程。
李开复博士在其自传《世界因你不同》中回顾了.NET最初的故事:
1999年时,互联网有了爆发性的增长,在这个时代背景下,微软的“掌门人”比尔盖茨一直在思索着一个对微软公司的发展非常关键的问题——微软是继续专注于Windows,还是向互联网发展,将微软的各种软件产品移植到互联网上?
比尔盖茨认为,互联网是一个大趋势,于是成立了一个.NET部门,进行这方面的探索。
被命名为.NET的新战略就是所谓的“新一代网络平台”,这其实就是互联网时代的“视窗”。将来的视窗包括无线通讯、智能家电,也包括新一代的人机界面,而更多的终端将可以实现互联网的功能。
比尔盖茨的这个决定在微软公司内部引发了激烈的争论,Windows的“元老们”对Windows拥有很深的感情,无法接受这一产品在公司产品线中的核心地位被动摇,而另一批“变革派”则认为:网络将盖过Windows,浏览器将变成一个平台,将会有越来越多的软件在浏览器中运行,因此,微软公司应该将Windows的功能逐步移到浏览器上,冻结对Windows的投资,因为Windows即将完成它的历史使命,会在十年内走到它的生命尽头。
所谓“.NET战略”,简单地说就是微软将开发一个“超级浏览器”,它可以运行所有软件。这就是.NET最初的构想——.NET要“革”Windows的命。很明显,.NET战略过于激进了,在大多数情况下,一个技术上的创新不可能平空发生,往往要建立在原有技术基础之上,完全抛弃原有的东西既不可能也不必要。
在“守旧派”与“变革派”激烈的争论中,比尔盖茨最终做了妥协,取消原先的.NET计划,仍将重点放到Windows上,并且将.NET建构于Windows之上。
作为一个妥协的产物,.NET从Windows的“挑战者”变成了“合作者”,变成了一个新的Windows软件运行平台。
记得是2002年3月,我在北京参加了.NET 1.0和Visual Studio 2002发布大会,当时约有3000名软件工程师和业界代表参与大会,在会上,微软郑重宣布:.NET为未来十年的软件技术做好准备。也正是从那时起,我开始学习、研究和应用.NET技术,一直到今天。
很自然地,.NET 4.0成为了我非常关注的一个热点。从装在Virtual PC中的VS2010 CTP开始,我总是在第一时间下载新版本, CTPàBETA1àBETA2àRC,Visual Studio各版本一个没拉地依次在我的电脑上“安营扎寨”,在学习与探索之余,我在CSDN和博客园的个人博客上写了不少介绍和剖析.NET 4.0的技术文章。
回顾过去近8年的.NET之路,不禁颇有感触。我在CSDN博客上发表的《.NET 4.0并行计算基础》系列文章的结束语中,绘出了 .NET各版本的发布时间与功能扩充示意图:

看着这张图,再想想李开复博士讲述的故事,有何感触?是不是看到了微软公司一步一步的前进脚步?
这里,我谈谈我对微软公司的感觉:
这是一个“可怕”的拥有巨大影响力的公司。
这是一个有点霸道的、有时会使用一些带有点“无赖”性质的手段去战胜对手的公司。想想它是如何挖人,如何将浏览器市场从NetScape中夺回的历史就明白了。
这是一个“看上去不可战胜”的公司。数十年来,多少公司盛极一时,如今却灰飞烟灭,而不怎么讨人喜欢的微软却活下来了,还活得很不错。事实证明:想跟微软做对,没本事没实力还真不行。
这是一个会犯错误但总能从错误中得到教训,并及时做出调整的公司。它虽时常“后知后觉”,但最终往往总能“后来居上”。这就是本事。
记得C#诞生之日,正是Java红火之时,当时不少人都认为C#不过是Java一个拙劣的追随者罢了,然而历经“8年抗战”,C#与.NET Framework互相配合,不断完善:C#1.0乏善可陈,多是炒Java的冷饭,到了2.0就引入泛型,C#3.0引入了LINQ,C#4.0又引入了动态编程语言的特性,从未止步不前。
而Java这一方面则在走下坡路, 2009年的一大新闻是Sun公司被Oracle收购,Java之父James Gosling 在其博客上贴了一幅图片,令人感伤:

不管怎样,微软在这一回合中小胜一局,因为它活下来了,虽然仍然有Google和IBM这种旗鼓相当的对手,但只有活下来,才有你说话的机会。
我期望Java还有机会重整旗鼓,继续与C#竞争下去,因为只有竞争才能带来进步。
Sun公司的没落和微软的“东方不败”,实际上再次说明了一点:在IT领域,仅有技术是不行的。公司出色的商业运作和利用技术所获得“真金白银”利润的能力,是技术这一“上层建筑”的“经济基础”。
看看微软是如何推动技术进步的吧。
在即将发布的.NET 4.0中,我看到了一轮新的技术变革到来的讯号,而微软在积极地应战,这体现在哪个方面呢?
(1)在.NET 4.0中,微软为.NET新增了对并行计算的支持,让多线程应用程序的开发变得前所未有的简单,这实际上是在迎接“多核”时代的到来。
(2)微软首次在Visual Studio 2010中集成“云计算”应用系统的开发功能,这一点意义不用多说。
(3)微软在Visual Studio 2010中集成了由开源社区支持的ASP.NET MVC、MEF等框架,标志着微软在悄悄地由“封闭”走向“开放”,虽然步伐不大,但这其实也是大势所趋。
(4)微软充分利用已有的资源,将多种技术进行融合,尝试让软件开发模式具有“统一性”。举个非常典型的例子:比如WCF Data Service实际上是ADO.NET实体框架与WCF相结合的产物,而我们又可以在“Windows Azure”中看到其(指WCF Data Service)“若隐若现”的身影。微软的云计算平台为每个云计算应用提供了一个“跑着Windows的虚拟机”,让云计算应用开发尽可能地接近于传统的Windows平台软件开发体验。
(5)……
还有更多的例子,我就不举了,很明显,微软在努力地争取在软件技术下一个十年中获得竞争优势。
微软成功地建立起了一个微软帝国,我不知道它什么时候会倒下。至少在目前,我看不到它有此可能。因为它以实实在在的产品满足用户需求,以不断更新的技术持续不断地提升软件开发的效率,以灵活的商业策略去赢取利润,善于从对手身上学习,能从失误中总结教训,而且很有耐心。更重要的,微软聚集了一批世界一流的人才,甚至会为一个员工的去留而不惜与竞争对手走上法庭。
我想,排除感情因素,多数人不得不承认,微软是一个“可怕”的对手。
