在蹉跎中一路前行---谈Microsoft .NET战略

在蹉跎中一路前行

——谈 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 有点孤军奋战的感觉,毕竟和其他应用服务器的结合不是那么尽如人意,并且在 Managed C++ 方面的表现也不足以作为系统级开发的利器,因此还是有些人在等待,而不会去考虑将已有的应用全部迁移到 .NET 平台上来。

所有这些情况,不仅体现了,同时也导致了微软的困惑。一个技术概念,如果不能与切实可用的产品结合起来,就会变成空中楼阁。

对于用户而言,最重要的是能够实际带来什么,而不是仅仅带来概念,经历了那段迷惘,微软对于 .NET 的理解终于“尘归尘,土归土”,穿过水花镜月,一路坚定的走来。

务实

? 2002 年 7 月 24 日 ,比尔•盖茨在一个内部讲话中承认说, 2000 年 9 月推出的 .NET 企业服务器称作 .NET “是有点草率”,也正是从这个时候开始微软真正开始反思 .NET 战略是否太过泛滥,是否超出了他们所能够控制的范围。

在反思中摒弃浮躁,在务实中前行,经过两年时间的喧嚣和反思, .NET 正在一点 一点 地走进现实应用。

? 2003 年 4 月 25 日 ,曾被命名为 Windows .NET Server 的 Windows Server 2003 正式发布。 Windows Server 2003 此前曾四易其名,它是第一个内置支持 .NET Framework 1.1 的 Windows 操作系统,因此有资格戴上 .NET 的标签,但最终确定的名称中并没有包括“ .NET ”字样,出乎很多人的预料。

同日,微软发布了基于 .NET Framework 开发工具的第二个版本,也就是 Visual Studio.NET 2003 ,经历了一年的发展, 2003 版本终于被越来越多的开发人员所接受,除了修正了 2002 版本的一些细节性错误,在类库方面也更加强健和良好的兼容。

也也就是从此刻开始, VS.NET 成为一个最强大的开发平台,多语言集成的开发环境,开发人员不仅可以开发传统的 Windows 应用,能够开发 Web 应用程序,同时在移动开发,企业级组件方面都提供了良好的支持。

Office.NET 已经渐渐淡去,此刻的微软也明白一相情愿设计一个完全以 Web Service 为中心的 Office 版本至少在今天是不可行的。 2003 年 10 月 27 号的时候发布最新版本的 Office 2003 中,启用了一个比较保守的命名—— Office System 2003 。从此 Office 不再是一个纯粹的客户端软件,而是一个完整的企业信息应用平台,不过相对于神话般的 Office.NET ,还有很长的路需要走,不过我们可以肯定,神话仅仅是神话,这个时候的微软已经知道 .NET 对于用户意味着什么。

在服务器系统方面, .NET Enterprise Server 有点盛名难负,更加直接的来说是一个虚构的名字。为了更加贴近实际情况,微软将新版服务器系统命名为 Windows Server System ,旨在建立一个深度集成的服务器基础结构,而从使 IT 专业人员能够将精力集中到满足业务需求方面。

这一切表明,微软在 .NET 的推广策略上已经趋于务实。事实上,一项新技术,必须有现实的产品支撑。微软一向的做法,是将新技术与自己的强势产品结合,从而让最终用户的需求推动开发者转向微软技术。然而,在 .NET 推广之初,这一策略并没有很好的贯彻。只是经过了这个务实阶段之后,微软才重新回到了自己的正确路线上。将 .NET 技术与 Windows 和 Office 两大拳头产品结合,这表明 .NET 已经迈上稳健发展之路。

未来展望

Longhorn 需要到 2006 年才能够发布,我们完全可以认为,这个就是四年以前微软提出的 .NET 战略时希望达成的梦想之一,集成互联,同时拥有一个非常出色的用户体验。微软当初承诺在三年内实现这些基础架构的建设,现在看来这个时间恰好需要多一倍,也就是整整六年的时间。这个号称完全重新构建的操作系统才能够称得上 .NET 操作系统,关于其中的 Avalon( 图形渲染技术 ) 、 Indigo (通信子系统)、 WinFS (文件存储系统)还有纯粹的 .NET 编程接口 WinFX 。

相信 2006 年的 Longhorn 发布的时候, .NET 应该已经得到业界的认同,并且已经出现了相当部分基于 .NET 的成功案例,对于 .NET 的 FUD(Fear/Uncertainty/Doubt ,恐惧 / 不确定性 / 疑虑 ) 也已经烟消云散, .NET 和 J2EE 真正意义的站在同一个水平线上去对话。

而在 Longhorn 中的 Indigo 子系统,则以一种更加透明的方式来实现系统的部署,于是“一次编写,多次部署”也成为可能。随着 .NET 提出微软一直倡导的 Smart Client 技术也得到完美的体现,这个时候已经可以不去考虑桌面和浏览器的区别,如果说有,那么只是一种部署方式的差异,而解决这个问题的核心在于 XAML 及其和 Win32 API 等同的 WinFX 技术。

“一切皆是 Web Service ”,那个时候的确可以做到当初 .NET 战略希望的所有子系统都通过 Web Service 通信(当然了,那个时候的 Web Service 不再是今天的效率)。期待总是期待,毕竟还有两年的时间去观望,也许到了日后一切全部变了样。

但是我们相信,未来的 .NET 会成功,就如同微软一贯以来的成功,于是今天我们不是考虑是否使用 .NET 而是考虑何时选择 .NET ,当然,每一次的选择和放弃都是一种痛苦。

<p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; BACKGROUND: #f3f3f3; PADDING-BOTTOM: 0cm; BORD

Published At
Categories with Web编程
Tagged with
comments powered by Disqus