迷惘
经过一年多的喧嚣,.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,当然,每一次的选择和放弃都是一种痛苦。
不知道是刻意或是纯粹出于偶然,营销名词和技术名称以及通用词汇竟然都在同一个时间点代表了同样的意义:过去与现在,传统与流行。