技术开发 频道

.NET十年回顾:微软目标是否实现?

  【IT168 专稿】通过拥抱云计算和开源,微软正在试图不落后于竞争对手,使自己仍然是开发者的首选厂商之一。实际上,早在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的成功之处要大于失败之处,如果微软希望减少未来十年其平台面临的威胁,它至少需要提出某些大胆的新战略。

0
相关文章