您的位置:知识库 » IT业界

从.NET说开去(我的.NET 4.0系列课程开讲)

作者: 金旭亮  来源: 博客园  发布时间: 2010-02-24 18:25  阅读: 788 次  推荐: 0   原文链接   [收藏]  

  微软公司宣布,预计于2010年4月发布.NET 4.0和Visual Studio 2010。从1999年开始,.NET走过了10年的风雨历程。

  李开复博士在其自传《世界因你不同》中回顾了.NET最初的故事:

  1999年时,互联网有了爆发性的增长,在这个时代背景下,微软的“掌门人”比尔盖茨一直在思索着一个对微软公司的发展非常关键的问题——微软是继续专注于Windows,还是向互联网发展,将微软的各种软件产品移植到互联网上?

  比尔盖茨认为,互联网是一个大趋势,于是成立了一个.NET部门,进行这方面的探索。

  被命名为.NET的新战略就是所谓的“新一代网络平台”,这其实就是互联网时代的“视窗”。将来的视窗包括无线通讯、智能家电,也包括新一代的人机界面,而更多的终端将可以实现互联网的功能。

  比尔盖茨的这个决定在微软公司内部引发了激烈的争论,Windows的“元老们”对Windows拥有很深的感情,无法接受这一产品在公司产品线中的核心地位被动摇,而另一批“变革派”则认为:网络将盖过Windows,浏览器将变成一个平台,将会有越来越多的软件在浏览器中运行,因此,微软公司应该将Windows的功能逐步移到浏览器上,冻结对Windows的投资,因为Windows即将完成它的历史使命,会在十年内走到它的生命尽头。

  所谓“.NET战略”,简单地说就是微软将开发一个“超级浏览器”,它可以运行所有软件。这就是.NET最初的构想——.NET要“革”Windows的命。很明显,.NET战略过于激进了,在大多数情况下,一个技术上的创新不可能平空发生,往往要建立在原有技术基础之上,完全抛弃原有的东西既不可能也不必要。

  在“守旧派”与“变革派”激烈的争论中,比尔盖茨最终做了妥协,取消原先的.NET计划,仍将重点放到Windows上,并且将.NET建构于Windows之上。

  作为一个妥协的产物,.NET从Windows的“挑战者”变成了“合作者”,变成了一个新的Windows软件运行平台。

  记得是2002年3月,我在北京参加了.NET 1.0和Visual Studio 2002发布大会,当时约有3000名软件工程师和业界代表参与大会,在会上,微软郑重宣布:.NET为未来十年的软件技术做好准备。也正是从那时起,我开始学习、研究和应用.NET技术,一直到今天。

  很自然地,.NET 4.0成为了我非常关注的一个热点。从装在Virtual PC中的VS2010 CTP开始,我总是在第一时间下载新版本, CTPàBETA1àBETA2àRC,Visual Studio各版本一个没拉地依次在我的电脑上“安营扎寨”,在学习与探索之余,我在CSDN和博客园的个人博客上写了不少介绍和剖析.NET 4.0的技术文章。

  回顾过去近8年的.NET之路,不禁颇有感触。我在CSDN博客上发表的《.NET 4.0并行计算基础》系列文章的结束语中,绘出了 .NET各版本的发布时间与功能扩充示意图:

 

  看着这张图,再想想李开复博士讲述的故事,有何感触?是不是看到了微软公司一步一步的前进脚步?

  这里,我谈谈我对微软公司的感觉:

  这是一个“可怕”的拥有巨大影响力的公司。

  这是一个有点霸道的、有时会使用一些带有点“无赖”性质的手段去战胜对手的公司。想想它是如何挖人,如何将浏览器市场从NetScape中夺回的历史就明白了。

  这是一个“看上去不可战胜”的公司。数十年来,多少公司盛极一时,如今却灰飞烟灭,而不怎么讨人喜欢的微软却活下来了,还活得很不错。事实证明:想跟微软做对,没本事没实力还真不行。

  这是一个会犯错误但总能从错误中得到教训,并及时做出调整的公司。它虽时常“后知后觉”,但最终往往总能“后来居上”。这就是本事。

  记得C#诞生之日,正是Java红火之时,当时不少人都认为C#不过是Java一个拙劣的追随者罢了,然而历经“8年抗战”,C#与.NET Framework互相配合,不断完善:C#1.0乏善可陈,多是炒Java的冷饭,到了2.0就引入泛型,C#3.0引入了LINQ,C#4.0又引入了动态编程语言的特性,从未止步不前。

  而Java这一方面则在走下坡路, 2009年的一大新闻是Sun公司被Oracle收购,Java之父James Gosling 在其博客上贴了一幅图片,令人感伤:

 

 

  不管怎样,微软在这一回合中小胜一局,因为它活下来了,虽然仍然有Google和IBM这种旗鼓相当的对手,但只有活下来,才有你说话的机会。

  我期望Java还有机会重整旗鼓,继续与C#竞争下去,因为只有竞争才能带来进步。

  Sun公司的没落和微软的“东方不败”,实际上再次说明了一点:在IT领域,仅有技术是不行的。公司出色的商业运作和利用技术所获得“真金白银”利润的能力,是技术这一“上层建筑”的“经济基础”。

  看看微软是如何推动技术进步的吧。

  在即将发布的.NET 4.0中,我看到了一轮新的技术变革到来的讯号,而微软在积极地应战,这体现在哪个方面呢?

  (1)在.NET 4.0中,微软为.NET新增了对并行计算的支持,让多线程应用程序的开发变得前所未有的简单,这实际上是在迎接“多核”时代的到来。

  (2)微软首次在Visual Studio 2010中集成“云计算”应用系统的开发功能,这一点意义不用多说。

  (3)微软在Visual Studio 2010中集成了由开源社区支持的ASP.NET MVC、MEF等框架,标志着微软在悄悄地由“封闭”走向“开放”,虽然步伐不大,但这其实也是大势所趋。

  (4)微软充分利用已有的资源,将多种技术进行融合,尝试让软件开发模式具有“统一性”。举个非常典型的例子:比如WCF Data Service实际上是ADO.NET实体框架与WCF相结合的产物,而我们又可以在“Windows Azure”中看到其(指WCF Data Service)“若隐若现”的身影。微软的云计算平台为每个云计算应用提供了一个“跑着Windows的虚拟机”,让云计算应用开发尽可能地接近于传统的Windows平台软件开发体验。

  (5)……

  还有更多的例子,我就不举了,很明显,微软在努力地争取在软件技术下一个十年中获得竞争优势。

  微软成功地建立起了一个微软帝国,我不知道它什么时候会倒下。至少在目前,我看不到它有此可能。因为它以实实在在的产品满足用户需求,以不断更新的技术持续不断地提升软件开发的效率,以灵活的商业策略去赢取利润,善于从对手身上学习,能从失误中总结教训,而且很有耐心。更重要的,微软聚集了一批世界一流的人才,甚至会为一个员工的去留而不惜与竞争对手走上法庭。

  我想,排除感情因素,多数人不得不承认,微软是一个“可怕”的对手。

  前段时间,我看了好评如潮的大片“阿凡达”,为其3D特效目瞪口呆之余也感叹:中国电影业实在差得太远。

  我们总在玩别人玩剩下的东西。

  软件业不也如此?中国有希望能追赶上别人的脚步吗?

  中国软件业的期望在哪里?国内有多少家公司可以和微软、Google等一起“逐鹿世界”?

  我想,承认差距是第一步,奋起直追则是第二步。

  2009年底,北大教授韩毓海写了一本磅薄大气的社会学著作《五百年来谁著史——1500年以来的中国与世界》,书中韩毓海先生站在世界的全局角度分析为何经济总量世界第一的明朝会亡于李自成、张献忠之流的“流寇”和仅区区数十万人的满清的“两面夹击”。

  韩毓海先生指出“流寇”与“外寇”实非明朝亡国之根本原因,明朝亡国之根本原因在于近500年以来,中国国家组织力一直都是持续下降的。明朝的官员多为走科举之路出来的书呆子,于国家经济治理极为无能,导致整个中国实际上被“吏”和地方豪门所左右,此即“官无封建而吏有封建”。另一方面普通百姓又是一盘散沙,管理成本非常之高,于是,明朝时期的中国,最上层的政府根本无力管理最下层的百姓,中间层次的“吏”和地方豪门势力独大,盘根错节,任何不符合其利益的政策是不可能被执行的。

  终明一朝,国家组织力持续下降的趋势不可逆转,于是无法建立起独立自主的国家财政体系,只能通过大量进口美洲白银,以“输血”式的方式维持表面的繁荣。所以,明非亡于流寇和满清,实亡于经济的崩溃。

  清朝建立以后,全盘接收了明的体制,也重复了“明朝的故事”,其结果是从1840年开始,西方列强区区数千人的军队,就可以在拥有数亿人口的“大清”领土上纵横驰骋,无人可挡。悲夫!

  孙中山是个伟大的探索者,然而,他的探索失败了,其关键原因在于:他只关注了中国的上层,过于依赖“精英”的“独立奋斗”,依靠这个军阀打那个军阀,有用吗?

  所以,辛亥革命虽然推翻了满清,但中国社会的架构没有任何变化,最下层的民众仍是一盘散沙,没有受到任何触动(看看鲁迅的系列小说就明白了),国民政府仍然是一个组织力极为低下的政府,所以一点也不奇怪,一个小日本就可以把诺大个中国打得无还手之力,如果不是日本鬼子人神共愤地凶残,上天安排让其野心膨胀到贪心不足蛇吞象的程度,中国的抗战,远非区区8年所能结束。

  韩毓海先生指出,Mao Zhe Dong所领导的革命之所以成功,是因为 Mao 很敏锐地看到了中国的关键,他领导中国G_C_D从底层开始重塑整个中国,致力于将一盘散沙的中国底层民众组织起来,走农村包围城市的道路,这是一个中国社会近500年以来的重大改变,从而使得国家的组织力强大而有效,而原先一盘散沙的中国底层民众组织起来以后,其合力大到远远超出当时世人想象的程度,于是建国之初,一穷二白的新中国就敢和世界第一强国硬碰硬而不落下风!

  抚今追昔,不禁让人感触万千。

  让我们把视野从历史拉回现实,再来看看中国软件业的希望在哪里!

  借鉴黄仁宇、韩毓海等社会历史学者的研究成果,我个人觉得,中国软件业的希望在于需要有一大批优秀的从事“底层”和“一线”开发的普通软件工程师(还包括所有在软件企业基层其他工作岗位的劳动者),提升他们的平均素质是中国软件业的希望所在。

  中国软件业需要一个“从底向上”的努力。

  其中,教育是一个突破口,中国应致力于培养出大批合格和优秀的软件人才,在此基础之上,才可能催生出一批优秀的软件企业,方能通过长期的(可能达数十年)的努力,不断地缩短与美国等发达国家在软件领域的差距。

  软件强国靠钱堆不出来,靠行政命令也不可能,只能靠中国能拥有一大批高水平高素质的软件人才,只能靠中国数百万的普通IT工作者辛勤的工作才有可能。指望仅靠少数的一些“精英”和少数几个“牛企”就可以强国,是个不切实际的梦想。

  中国软件产业的未来,取决于中国教育能否用数十年的时间,培养出几代不讲特别优秀至少是合格的软件工程师。

  除此之外,我看不到有其他的路。

  而当代中国的悲哀也在此。正是中国教育出了大问题,不是育人而是毁人废人,所以我们的软件业才无法成长起来,这是中国成为软件弱国的重要(可能是最根本的)原因。

  与其坐而论道不如起而行之。

  我是一名普通的教育工作者,想作一些力所能及的工作,为此,新学期我将利用讲授《面向对象技术与方法》课程的机会,在北京理工大学率先讲授.NET 4.0系列技术,包容.NET开发最主要的技术领域:

n 并行计算

n MEF4

n ASP.NET MVC2

n WCF4

n WPF4

n WF4

n Silverlight4

n ……

  本人虽才疏学浅,于.NET技术研究不透,水平不高,但至少可以起到帮助大家以较高的效率去了解微软平台软件技术最新进展的目的。其实,学习不是目的,应用和创造才是目的。我期望能通过这些课程,帮助听课的朋友掌握.NET这一强大的工具,从而能将软件技术与自己的专业及所从事的具体领域和实际工作结合起来,切切实实地应用和创造。

  以下是我这学期的开课时间和地点,第1次课是2010年3月16日周二。

  20-081200-110-07 面向对象技术与方法

  班次:1 学时:36 教师:金旭亮

  上课安排:

  上课时间 : 第2周 -- 第10周,周2第3大节,上课地点 : 研究生楼405

  上课时间 : 第2周 -- 第10周,周4第2大节,上课地点 : 研究生楼405

  欢迎所有对.NET技术感兴趣的在校学生和有时间有兴趣的业界软件工程师旁听、交流和指正。

  如果每个中国软件人都能在自己的岗位上辛勤工作,我想,我们不会永远落后于人的。以下古语,与诸君共勉:

  千里之行,始于足下,国家兴亡,匹夫有责。

0
0

IT业界热门文章

    IT业界最新文章

      最新新闻

        热门新闻