.NET的一点历史故事:招兵买马和聚义山林

曾几何时,Java 的兴起得益于众多大公司的涌入,Sun、IBM、SGI、网景、甲骨文、Borland 都在第一时间关注并投入大量资源来推动它的发展。比较典型的例子就是 IBM 做了自己的 Java SDK,并且做出了 SWT 界面框架,后面又开源了自己的 Visual Age for Java 开发工具,建立了 Eclipse 这个影响深远的平台。微软通过 Visual J++ 在 Java 这个领域插了一脚之后,很快就被 Sun 领头的大集团扫地出门。

从1998年10月6号到2000年6月22号,微软在开发工具领域就进入了一个缄默期,缺乏新鲜东西。而这个阶段,Java 正借着 J2EE 平台的不断升级在企业计算领域攻城略地。所以当微软终于在 Fortune 2000会议上由 Bill Gates 公布全新 .NET 平台战略时,对于熟知 Java 的程序员来说,明显绑死在微软 Windows 平台上的这些新技术即使看起来很美好,却并没有什么广大的前景。只有从 Windows 这只碗里取食的开发者,才会真正严肃的考虑它所带来的改变。

  • 全新设计的 C# 语言,兼有 Java 的严谨,Visual Basic 的简练,和 C++ 的全面。

  • 为 Visual Basic 社区开发了真正面向对象的 Visual Basic .NET 语言,和代码迁移路径。

  • 为 J++ 和 Java 社区开发了具有一定兼容性的 J# 语言。

  • 为 C++ 社区开发了 Managed C++ 扩展。

  • CLR 和 MSIL 和单一编程语言解耦,潜在支持更多的编程语言。

  • 语言和虚拟机的设计考虑了很多和既有技术(ActiveX、COM、COM+、DCOM、Win32 API)的集成问题,从而能够快速用来开发桌面、服务器端应用程序,完全取代老版本的 Visual C++ 和 Visual Basic。

在开发这个产品的漫长过程中,微软投入了不少明星研发人员,如 Anders Hejlsberg。Anders 在供职于 Borland 公司的十几年内,成功领导了 Turbo Pascal 和 Delphi 两个重量级产品的开发工作。而在加入微软公司后,又在 Visual J++ 6.0 和 C# 语言开发过程中发挥了关键作用。C# 语言可以看过是 Java/Delphi/Visual Basic三种语言的融合,汇集了三者的精华,所以也很快流行起来。

同时,也有新鲜血液在这个研发过程中脱颖而出,例如1997年5月才从 Duke 大学毕业的 Scott Guthrie 由于领导了 ASP.NET 框架的设计而受到关注。1999年11月他晋升为 ASP.NET 的 Lead Program Manager,而2001年1月就升为微软 Web Platform and Tools 的 Product Unit Manager,开始掌舵 Web 相关开发技术的研发。当然由于出色的领导才能,Scott 在后面的岁月里步步高升,如今已经是微软公司核心领导层不可或缺的支柱。

不过即使准备如此充分,甚至从2000年起微软就先后发布了多个测试版本以便开发者熟悉和了解这个新的技术平台,2002年2月13日正式发布的 .NET Framework 1.0 和 Visual Studio .NET 2002 也并没有覆盖到一个开发者日常开发所需要的所有工具层面。这个关键时候微软技术社区及时的填补了空白。几个很早就由社区领导的项目在这方面显得尤为重要:

  1. NUnit 单元测试框架早在2000年6月便出现了。早期是 JUnit 的简单模仿,而后期开始使用 attributes 等 .NET 独有的特性来简化用户体验。

  2. SharpDevelop 开源 IDE 于2000年9月11号开始启动,提供了一个免费而且比 Visual Studio 更加轻量级的开发工具。

  3. 2000年11月,GNOME 项目的领导人 Miguel de Icaza 考虑将 .NET 和 C# 带到 Linux 操作系统,使得 CLR 和 MSIL 成为跨平台的技术。Mono 项目应运而生,并与2001年6月30号正式启动。

  4. 2001年1月 Lutz Roeder 开始发布免费的 .NET Reflector 反编译工具,使得反向工程他人代码成为一个十分简便的过程。

  5. 2001年6月,Neoworks Limited 公司开始模仿 log4j 项目来开发 log4net,并与2004年2月将它捐赠给 Apache 基金会。

  6. 2001年7月5日,Gerry Shaw 启动了 NAnt 项目,尝试模仿 Ant 项目建立一个适合 .NET 项目的编译引擎。

  7. 2001年9月29日,Kral Ferch、Jason Diamond等人启动了 NDoc 项目,灵感来自 JavaDoc。

微软也建立了一个名为 GotDotNet 的站点来聚合这些社区项目,以及数以百计的范例代码。

这个阶段的 .NET 依然处于一个十分初级的阶段,表现为

  • 模仿 Java,尤其是社区项目基本都是 Java 领域对应项目的克隆。

  • 微软设计的 Windows Forms 和 ASP.NET 框架虽然简便易用,和 Windows 平台已有技术的集成也很完善,但完全绑定在 Windows 平台上。

  • 更为重要的是,微软没有能够设计出可以比拟 J2EE 平台的企业级开发框架。 

在后来的数年之中,Java 技术一直在广度上压过 .NET 一头,很多新兴技术例如 Hadoop 都使用 Java 开发。这既于 Java 跨平台的天生优势有关,也得益于 Sun 多年后开源 Java 平台的努力。

微软未来将会如何推动 .NET 平台的发展呢?下节我们继续回顾。


相关文章:

原文地址:http://weibo.com/ttarticle/p/show?id=2309404102044121223524


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值