通过拥抱云计算和开源,微软正在试图不落后于竞争对手,使自己仍然是开发者的首选厂商之一。实际上,早在2000年微软已经通过引入.NET开始了一场巨大的平台转移行动。.NET最初在2000年阿姆斯特丹举行的TechED大会上被宣布,然后在后来的微软专业开发者大会上更多信息得以披露。在此后的10年中,.NET是否实现了微软所承诺的东西?
微软推.NET背景
如果你考虑一下微软推出.NET时的处境,就会更好的理解它这么做的原因。当时,Windows的核心地位不仅正在被互联网所侵蚀,而且受到了Sun的Java语言和运行时的强力挑战。使用Java编程更轻松,它具有现代化的设计和自动内存管理,而且具有自己的跨平台,当时已被IBM和甲骨文等IT巨头大力支持。
微软曾试图增加诸如COM组件等Windows特定功能到Java中,但得到的是来自Sun公司的10亿美元法律诉讼,称其做法破坏了跨平台兼容性。COM是一个用于应用程序整合的自带Windows组件。
微软的开发者工具也看上去疲态尽显。Visual Basic存在不足,明显动力不足,受初学者欢迎却不为专家级开发者所接受。Visual C++和Windows类库却又对所有人较难。同时,使用COM和ASP的Web开发又显得非常杂乱和不堪一击。
针对上述情况微软给出的解决答案非常大胆。总经理迈克尔里斯(Michael Risse)在2000年TechEd大会上表示,我们计划推出一个名为Microsoft .NET Platform的全新平台,它由三部分组成。首先,它有一个新的公共语言运行时,它除了支持Visual Basic和C++等现有语言外,还支持一个名为C#的新语言,该语言由Borland Delphi著名的Anders Hejlsberg设计,拥有许多来自Java的类似概念。
其次,它有众多组件块(Building Block)服务,是通过互联网借助于XML网络服务进行访问的一整套服务,其中微软Passport是早期的一个例子。
最后,所有微软现有的服务器产品被重新加工为.NET服务器,使用XML作为统一协议。里斯将下一代应用称为世界性的画布,由不同单个Web服务合适的搭配在一起的集合。在他宣布了.NET之后,服务器产品BizTalk作为示范被演示,里斯希望它可以合理协调这些服务。
.NET十年得失
如果.NET的目标是赶走Java,那么它至少取得了一定程度上的成功。Java虽然没有灭亡,但企业版Java却身陷过于复杂的泥潭,从而使得.NET成为一个更富有成效的选择。C#在不断的变得更加普及,现在已经是多数Windows应用开发的首选语言。ASP.NET则已经成为一个倍受欢迎的Web框架。公共语言运行时则证明了自己的稳定性和灵活性。
据分析机构提供的数据显示,市场对C#人才的需求一直在稳步增长,在英国IT编程领域,与C#相关的招聘职位数量所占份额已经达到32%,超过了Java的26%。
尽管如此,.NET的发展并非一切按微软的预定计划进行。其组件块服务理念在提出后次年即遭到打击,在2001年微软专业开发者大会上微软推出了HailStorm理念,但它无法推广把自己定位成全球性服务提供商的理念。两年后在2003年微软专业开发者大会上,该公司宣布了Longhorn的三大改进,试图实现一个具有.NET用户界面的Windows版本,此举也遭遇失败,后来仓促被Windows Vista所取代。
其它事情进展的缓慢程度也超出了所有人的预期。尽管C#取得了成功,但现有Visual Basic开发者发现,很难移植它们的项目到一个名称相同但实际完全不同的语言。.NET框架中的Windows Form部分占用资源极大,而且.NET运行时的部署也时而出错。
微软又花了8年时间提出了一个Client Profile的理念来实现精简安装。.NET控制在浏览器中安全替代Active X的理念从未实现,部分原因是其运行时不够普及,部分原因是以合理方式实现这一点的技术在2008年Silverlight问世之前从未真正到位。
如果微软使用它会怎样?
一个长期的抱怨是微软本身也一直迟迟未能采用.NET。微软的Tony Goodhew在2000年TechEd大会上曾表示,微软未来将使用.NET框架。但是,该公司一直继续使用本机代码和C++作为Windows和Office的主要开发平台。COM从未真正离去,对那些希望使用新Windows 7 API的.NET开发者来说,必须使用了一个包装函式库来实现这一点。
换句话说,微软逐渐将.NET定位成一个企业应用平台,而非它原先所说的创建所有东西的基础平台。
2000年,微软骄傲的宣称,C#和公共语言基础架构将被ECMA标准化,矛头直指Sun,后者已决定在它自己的Java社区化进程中来维护Java,而不是将其交给一个公共标准组织。
尽管这带来了诸如开源Mono等一些有趣的项目,该框架的类库和ASP.NET依然徘徊于标准化进程之外,而且便携式.NET应用的理念从未实现。微软不可能把这一点看作一个失败,但实际这就是一个失败。
现在即将进入新的十年, 尽管.NET的成功之处要大于失败之处,如果微软希望减少未来十年其平台面临的威胁,它至少需要提出某些大胆的新战略。
CSDN声明:CSDN登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。