.NET, 想说爱你不容易

原创 2005年04月23日 17:11:00
微软的.NET框架从诞生至今应该有四年多了吧?这四年是怎样的四年?微软又在多大程度上达到了当初所憧憬的美丽蓝图?我不敢说我对.NET有多么深的了解,但是我似乎越来越发现微软已逐渐背离了最初的美好愿望,或者说,背离了早期力推.NET技术时在广大开发人员中树立的美好图景?

通常,一个好的点子,或者说一套先进的想法,加上微软这样的公司,我们似乎没有必要怀疑它的成功。我们倾向于这样看待微软的产品:成功只是迟早的问题,或者,就算最终计划落空,你也不用太伤心,有那么大一个软件帝国垫背。于是,很多人在左右为难的时候,选择了微软的产品和技术路线。.NET更是被微软戴上了前所未有、鲜艳夺目的光环,我们从各种渠道听到这样的声音:.NET是微软的未来,是微软面向未来至少十年的技术;要跟着微软,就要学习.NET,使用.NET;.NET让你的代码更加安全;未来的微软产品线都会依赖于.NET技术。Bill Gates这次确实是认真的:.NET是微软的远大理想,是微软无论如何都要达到的目标。

平心而论,.NET的核心思想是很不错的,从CLR和IL的设计上就能够看得出来,在吸取了之前诞生的各种不同技术之精髓以后,又大胆的进行创新,实用、易用为先,绝对有实力成为未来大部分计算机应用的统一平台,成为整合企业和个人现有应用的绝佳框架。我相信大部分人在看到这些特点后都对.NET的未来充满希望。

然而最近不知从哪里吹来一股子坏味道:微软自己对.NET的定位发生了变化吗?还是说.NET本来就是个幌子?从微软自己的角度,我们似乎到现在也没有看到微软的哪个重量级产品和产品线是基于.NET的,几乎都还是混血儿或者干脆就是贴牌而已,众所期待的.NET操作系统Longhorn最终也放弃了 WinFS,让人怀疑Longhorn还会不会是当初微软声称的样子;从.NET基础库来看,似乎有相当一部分API只是对原有API的简单包装,原有的优势还在,bug也还在;从我们常见的代码来看,似乎到处都还充斥着[DllImport]这样的标签,是我们的程序员们怀旧吗?我还记得很早以前就有人提出了对.NET的反感,当时我不以为然,现在似乎也有些理解了。其中有一个大家普遍觉得不太满意的地方就是:为什么以前不超过100K的程序为了要用. NET,就必须让客户端下载安装25MB之巨的.NET环境呢?

我本人虽然是做Java出身,对.NET技术本身还是很感兴趣,也是支持的,但是对微软的有些做法有些不解:这是在给开发人员怎样的信息呢?.NET不可靠了吗?也许我们应该这样想:.NET绝对不是微软的全部,也不可能解决所有编程问题。诚然。但是.NET不就是为了解决大部分常见的编程问题吗?既然提供了这种便利和安全性,为什么自己都不广泛采用呢?感觉是:微软有一个很好的起点和一个远大的目标,但是为了照顾到所有Windows平台的既得利益者,或者说保护Windows这一商标的既得利益,.NET变得越来越杂,越来越畸形,大概需要静下来好好整理一下了吧?

在.NET的圈内圈外都有不少观望的人:圈内的人在观望.NET是不是将要沦为一种粘合剂而不是以一代多的统一平台?.NET真的只是吸引开发人员到 Windows平台的幌子吗?圈外的人在观望.NET到底是不是微软未来绝对的主力军?是不是他们应该定下的下一个学习目标去投资呢?其实让这一大群人安心的最佳途径也许是微软出面构建一套完全基于.NET的像模像样的大型软件产品(最好是桌面应用),但是微软准备这样做吗?我不知道,但是很怀疑。对于微软来说,也许他们不言而喻的一个心理底线就是:不论技术如何进步,如何创新,都不能动摇Windows和Office在操作系统市场上现有的地位。

.NET,你可真是让人欢喜让人忧啊。




通过这两天从不同渠道了解到的信息,我想我原先对.NET的认识和理解是有偏差的,至少是有些过时或者偏颇的。下面这一篇选自MSDN,是很好的一篇文章,相信可以说清楚很多在我的这篇随笔中的疑问:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnreal/html/realworld06012004.asp

也许是我的Java背景,我倾向于从虚拟机和平台中立的角度去看待.NET,或者说,我希望.NET是这样的一个框架。但是事实上,.NET也许从来就没有打算要100%的平台中立,甚至它在很大程度上、在未来很长一段时间之内还需要依赖原有的COM和Win32 API,它更是一个runtime而非VM,它是打算在Windows平台上增加另一个有价值的抽象,使我们针对Windows的编程变得前所未有的容易。

(在这篇MSDN文章之外需要补充的是:近两年SUN也倾向于把自己的虚拟机/运行时叫做JRE – Java Runtime Environment,尤其是推出HotSpot技术以后,Java程序会被动态分析和部分编译成本地代码执行。)

但是这正说明了一种我也许无法接受的微软作风:想当年,微软何其郑重其事的将.NET Framework的一个子集:JScript、C#和CLI,注意,是CLI不是CLR,拿到ECMA去申请标准化,多么开放的姿态。(也许正是微软这个举动让我误以为.NET会平台中立吧。)如今,MONO项目已经说明不了什么了,或者说,已经没有什么说服力,这些标准化的进程又带来了多大的技术上的进步和创新?

在我看来,开放的姿态对于一个大型的框架/技术的发展和完善而言是相当有好处的,但是由于微软对的.NET的绝对控制,.NET走的是跟Java截然不同的路线,这对我来说是一种无奈。

最近,另外一种现象也引起了广泛的关注:那就是微软在.NET社群已经有了相对成熟的Log4NET、NAnt、NUnit、Spring.NET、 NHibernate等等工具/框架之后,准备推出自己的一套东西并集成进Visual Studio .NET,这也许会引起一些人的不满,不过也许就像 I坐标 所说,这个是微软的本性。

对于开发人员来讲,我们当然会在一定程度上有选择的自由,每个人对.NET,对微软,乃至对C++,对Java等等也有不同的看法,一旦选定了自己的方向和对策,就一如既往的坚持走下去吧,不要被包括我在内的许多人和媒体的“片面之辞”蒙蔽了双眼。对于这些观点、看法,大家有选择看和不看的自由,也有选择信与不信的自由,信息社会嘛,就是这么简单。

还是那句话,我认为.NET和Java两个社群需要多多交流,相互学习,而不是言语上的相互攻击和对立。唯有虚心的、对事不对人的态度和探讨才有价值。

ERP想说爱你不容易.doc

  • 2009年05月22日 13:16
  • 30KB
  • 下载

想说爱你不容易

软考路上,收获的点点滴滴,与大家分享交流.

婚恋网想说爱你不容易

无论是婚恋网的创业者还是婚恋网的顾客,未婚男女,对目前的婚恋网总体感觉都是婚恋网想说爱你不容易。...

红黑树-想说爱你不容易

红黑树-想说爱你不容易 http://www.cnblogs.com/SeaSky0606/p/4753856.html 前言:   记得在大一懵懵懂懂的时候就接触了...

想说爱你不容易——致Javascript社区的一封信

关于我们开源社区,有一个问题我需要在这里着重讨论一下。 我是社区里很多开源项目(如Babel、Flow、Yarn、Lerna等)的贡献者和维护者。在社区里,我度过了许多美好的时光,同时也有过一些不愉...
  • msbls5
  • msbls5
  • 2016年12月24日 22:39
  • 262

中国linux国产操作系统 想说爱你不容易!

日前CCTV新闻频道“新闻直播间”栏目播报了“谁来替代WindowsXP,工信部希望用户使用国产操作系统”报道。中国工程院倪光南院士指出,操作系统是信息系统的基石,其自主能力事关国家信息安全。同时,央...
  • xzsgyy1
  • xzsgyy1
  • 2014年05月22日 16:35
  • 294

Ajax Control Toolkit Animation 想说爱你不容易

Ajax control Toolkit Animation效果很酷,可以节省我们很多的开发时间。但是昨天发现了Animation缺乏灵活性的一点,这让我们一度陷入被动. 下面是示例代码里面的一段: ...

红旗2000陷造假门 国产软件想说爱你不容易

http://www.linuxdiyf.com/viewarticle.php?id=182326  西太平洋大学这个学校一度是让很多名人获取最高学位的地方,如今估计没有多少人愿意跟它扯上关系了。打...
  • ztguang
  • ztguang
  • 2016年03月30日 10:00
  • 135

一个题目做了好久,java,想说爱你不容易!

做这道题的时候,思路不太正确刚开始的时候,想的是把学生对象和总分当做键值对存储,后来发现不对,可以直接让学生类具有比较性,然后复写compareTo方法 直接在compareTo方法中对总分进行比较...

大话重构连载13:自动化测试——想说爱你不容易

正如许多事情都有其两面性一样,测试方法也是这样。要保证测试方法正确,最简单、最直观地想法就是多写些测试用例,从更多地角度去测试,但这必然增加我们的测试成本。小步快跑要求我们频繁进行测试,假如我们重构的...
  • mooodo
  • mooodo
  • 2014年09月09日 10:58
  • 645
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET, 想说爱你不容易
举报原因:
原因补充:

(最多只允许输入30个字)