【IT168 评论】作为.NET的粉丝,你可知道今年对.NET 框架来说是多么不平凡的一年?因为就在十年前的6月22日,在佛罗里达州奥兰多召开的微软专业开发者大会上全新的.NET框架公开亮相。
C#的成功 为迷失开发者指明方向
在十年前的发布会上,最难忘的莫过于C#新编程语言的发布,当然也有新的Visual Basic(VB),关于垃圾回收,Java和.NET,C#和VB.NET,C++和VB6的性能对比等高潮看点。作为微软.NET框架的标志性语言,C#在微软的开发战略中扮演了一个非常关键的角色。随着该语言呈现出动态和功能编程语言的特性,其角色也在不断向前发展。
一转眼,现在已经用到C# 4了。C# 4与COM互操作性、对后期绑定模型的支持也更友好,而当C#之父Anders Hejlsberg讨论动态类型如何能够简化COM接口处理和其它复杂的交互时,有一些程序员担忧C#会向新的方向分化。Hejlsberg表示他知道经常修改语言功能所带来的危险。不过他表示,“你不能对语言的底层经常进行修改。对于C#来说,它的核心设计是一个命令式的面向对象编程语言。你可以对其增加从功能编程语言和动态编程语言所借鉴来的功能,但是其核心设计并非发生改变。”但有点讽刺意味的是,都10年了,C#才开始重视对COM的支持!笔者猜是微软接受了COM不死的事实,尽管COM有缺陷。
云计算的前车之鉴
最近云计算很火爆,Apple,Google和Amazon都在朝云服务商发展,但微软曾在2000年提出过“互联网云”的概念,并描绘了.NET如何融入到HTTP-SOAP和XML中,.NET战略在计算布局方面几乎已经走了8年的弯路,直到.NET 4中,云的影子清晰起来,我们看到了微软的云Windows Azure。
借助.NET,微软虽然创造了整个家族的开发工具,但之前几年对于开源的谨慎态度耽误了不少时机;虽然Windows Server 2000、2003、2008不断支持越来越大型的互联网应用,但相对开源的Linux,总体投资成本也没有太明显的价格优势。开发工具和操作系统的选择会直接影响到“S+S”在软件一端的天平。
.NET在计算布局方面的失误完全可以被微软“云”计划进行借鉴。坚信计算、存储会越来越多的在网络上,但要从中获得收益,首先自己要更加开放。
.NET:Java语言的终结者?
那个时候正是Java停滞不前的时候,那次发布会上可以看到.NET的潜力和微软的强大推动力——一个有希望终结Java的框架诞生。微软的ASP.NET在当时来看可以说是一个辉煌的进步。作为战略产品,微软为ASP.NET 设计了这样一些策略:易于写出结构清晰的代码,代码易于重用和共享,可用编译类语言编写等等,目的是让程序员更容易的开发出Web 应用,满足计算向Web 转移的战略方向的需要。你可以给网络应用程序编码,就像给桌面应用程序编码那么简单。随着时间的推移,ASP.NET已经变得不是那么有吸引力了。 ASP.NET是一个允许你使用多种不同编程语言的框架,此外,它还号称拥有出色的面向对象编程模型。确实如此,可是这却带来了速度上的降低。2009年ASP.NET模型-视图-控制器首次面世,为人们提供了一个更简洁、更快速、更可测并且与网址向导表述性状态转移(REST)更为一致的的替代方案。
十年前最吸引人的两个演示
第一个演示是在苹果电脑上用非微软浏览器访问IIS Web服务器上的ASP.NET页面,由它动态创建一个网页,然后产生SOAP调用Linux上的多个Apache服务器,Linux上的SOAP服务又调用Windows服务器上基于C#的.ASMX SOAP-XML Web服务,这个Web服务又再调用内部的一个COBOL.NET应用程序。
第二个演示是围绕跨语言多态性展开的,由一个VB.NET程序调用一个C#程序,C#程序给现有用COBOL.NET编写的方法添加了一个重载方法,COBOL.NET编写的方法实际上是一个调用VB.NET的封装方法,而这一切都是在同一个进程空间中完成的。
在那之前,开发者多年的编程经历从未见过那种跨进程、跨语言的工作能表现得那么完美,自那以后,有很多开发者都变成.NET的粉丝了,
十年了,如果没有.NET和C#语言,很那想象微软平台会变成什么样子。虽然.NET框架并不完美,有些事情还是没有能够按照预选设想的进行,但我们看到它在一步一个脚印,踏实稳健地往前走,每当看到新的特性时,仍然忍不住内心的激动,.NET阵营的战友们,一起祝贺.NET生日快乐吧!。