代码改变世界

.NET 的灵魂是什么?

2006-10-22 15:37  Cat Chen  阅读(1130)  评论(5编辑  收藏

这是个很有趣的问题,但我觉得Microsoft也不能正面回答这个问题,估计他们会想rephrase这个问题,然后用他们的官方口吻回答。

先说说为什么会提这样的问题。那天和Piggest在逛购书中心,她说那些列很多Photoshop特效制作方法的书看再多都没有用,因为你看一个制作方法就只学到了这一个,而看《选择的艺术》这样的书,你才能领会到Photoshop的核心思想和使用方式,之后你就懂得如何灵活使用了。我接着就想,为什么ASP.NET的书都是那么肤浅,国内的书多数追求如何RAD式使用ASP.NET,国外的书就算在开发层面说得比较深入但都绝不提ASP.NET内部的一些运作机制,导致大部分ASP.NET的开发人员都只能按照一些官方给定的方式拼凑代码无法灵活发挥。为什么没有一本书能够抓得住ASP.NET的灵魂?是不是因为.NET本身就没有灵魂,所以你想抓也抓不到?

首先想一下MS会如何回答这个问题,.NET最有价值的地方就是语言无关。虽然它也好像Java那样应该是平台无关的,但是MS对非Windows平台的.NET Framework基本上毫无贡献,Mono发展至今也无法成为.NET Framework的第二选择。至于语言无关,这个特性的最大得益者似乎是MS而不是程序员,MS通过这招让大量其他语言的程序员转过来.NET。对于程序员来说,语言无关只是让不同语言的使用者能够方便的交流Assembly,但是对于设计与编码来说没有提供任何的核心思想。

接着MS应该会介绍.NET Framework自带的一大堆好好用的namespace,下面却是提供了很多很好用的类,例如ASP.NET 2.0就将Membership、Profile、WebPart等很实用的功能都引入了,大大方便了程序员。但是这又进一步突出了ASP.NET的RAD特性,除了RAD让人看不出它有任何深层次的思想。

那么除了提高开发效率,.NET有什么核心思想引导着所有的.NET开发人员,或许暂时没有。只有等MS慢慢成熟,整个企业塑造出一种除了赚钱和扩张以外的精神之后,.NET才可能有灵魂。