Essential Booklist of .Net Framework
这些是我已经读过了的或者是正在读的.net图书,同时也是我在综合了网上及论坛中各方面意见之后,认为在目前的.net框架领域内最值得系统研习的6本核心书籍,而且其编号是根据由易到难、从入门到上手有序排列的,特把它们罗列出来,希望在过年前后能够集中完成其阅读(尤其是后三本书,工作量还是非常大的)。
1. Applied Microsoft .NET Framework Programming, Jeffrey Richter, Microsoft Press, Jan. 2002
2. Essential .NET, Volume I: The Common Language Runtime, Don Box, Addison-Wesley Professional, Nov. 2002
3. Inside Microsoft .NET IL Assembler, Serge Lidin, Microsoft Press, Feb. 2002
4. The Common Language Infrastructure Annotated Standard, Jim Miller, Addison-Wesley Professional, Oct. 2003
5. Shared Source CLI Essentials, David Stutz, O'Reilly, Mar. 2003
6. Distributed Virtual Machines - Inside the Rotor CLI, Gary Nutt, Addison Wesley, Sep. 2004
在整理上述书目的同时,也隐隐产生了一种不是很好的感受,觉得似乎国内软件开发领域出现了明显的断层,关注底层C++对象模型和高层架构、应用模式及软件工厂的多,真正主动地了解中间组件模型、并深知其技术渊源的却很少,形成了一种两头大中间小的技术格局;这可能与中文图书“一窝蜂”的出版方式有关系,或许也同国内流于表面的浮躁风气有关。反观国外,就我比较关注的微软开发技术领域而言,真正熟悉组件模型的牛人们绝大多数均已参与到当前主流产品开发的第一线,如Don Box、Jim S. Miller等,尽管组件模型至今仍不甚完美,但确已成为我们目前不予或缺的实实在在的工作基础,而进一步完善其缺陷则恰恰成为了当前系统软件研发领域最大的发展动力,.net就是一个极好的产品实例。写到这里,有些感受不吐不快,技术宣传有时确实能够蒙蔽多数人的眼睛,这里仅仅只提提微软的几个经典杰作:Web Service的兴起让微软看到了以微软自己的方式来解释“跨平台”、从而打压Java最大优势的潜力和契机;而Common Language则看似能够团结一切可以团结的力量,为最偏执的语言爱好者找到使用.net的理由;Asp.net则提供了一种开发效率更高的组件-对象模型来帮助.net争取服务器端技术方面的主动,我有一种感受,上述种种均只是.net的面,而都不是.net的本质,它们都只是.net作为系统级组件平台发挥其核心竞争力的外在环境而已。
微软的想法确实与Java阵营不同,很多朋友抨击.net缺乏创新及大局观,抨击当前.net的技术发展在目前Java社区中一浪高过一浪的架构-模式研究热潮面前显得是多么的渺小,我倒觉得这恰恰是微软布局的不同:通过扎实修炼内力,依靠.net不断完善的组件模型,以待迎接将来基于框架应用的新一轮组合爆炸阶段,从而因小及大;而事实的另一方面,则是Java碰到了自身不可逾越的障碍,而不得不以引入架构、模式的宏观方式来弥补自身组件模型所存在的种种无法克服的缺陷。以往技术发展的历史仿佛又告诉我们,应用框架的兴起和存在,从某种角度上来看,可以说是一种核心技术得以深化发展的顶点,也可以被视为是其疲态渐显的征兆和另一场核心技术革命的开始,因为从本质上来说框架并不能算是纯粹构件化的,其本身是紧耦合的,从Win32 API、MFC/OWL到可视化,再到分布式应用,这似乎都是很好的历史佐证,作为应用框架的先驱和力行者,微软在这上面是尝过苦头的,不然也不会有COM / DCOM / MTS / COM+等一系列早期面向组件的产品技术的诞生。在硬件性能充裕的前提下,未来软件生产率的极限唯有依靠独立、直观、简洁的组合方式来实现,这是我从.net身上体会到的微软的技术哲学。
当然,上述种种,这只是我的一点略显激进的个人感受罢了,未必成熟,只是因为在网上从未见到过相似观点的讨论,才把它们写了出来,也许时间会改变我的观点,一切的一切,均有待时间的验证。
1. Applied Microsoft .NET Framework Programming, Jeffrey Richter, Microsoft Press, Jan. 2002
2. Essential .NET, Volume I: The Common Language Runtime, Don Box, Addison-Wesley Professional, Nov. 2002
3. Inside Microsoft .NET IL Assembler, Serge Lidin, Microsoft Press, Feb. 2002
4. The Common Language Infrastructure Annotated Standard, Jim Miller, Addison-Wesley Professional, Oct. 2003
5. Shared Source CLI Essentials, David Stutz, O'Reilly, Mar. 2003
6. Distributed Virtual Machines - Inside the Rotor CLI, Gary Nutt, Addison Wesley, Sep. 2004
在整理上述书目的同时,也隐隐产生了一种不是很好的感受,觉得似乎国内软件开发领域出现了明显的断层,关注底层C++对象模型和高层架构、应用模式及软件工厂的多,真正主动地了解中间组件模型、并深知其技术渊源的却很少,形成了一种两头大中间小的技术格局;这可能与中文图书“一窝蜂”的出版方式有关系,或许也同国内流于表面的浮躁风气有关。反观国外,就我比较关注的微软开发技术领域而言,真正熟悉组件模型的牛人们绝大多数均已参与到当前主流产品开发的第一线,如Don Box、Jim S. Miller等,尽管组件模型至今仍不甚完美,但确已成为我们目前不予或缺的实实在在的工作基础,而进一步完善其缺陷则恰恰成为了当前系统软件研发领域最大的发展动力,.net就是一个极好的产品实例。写到这里,有些感受不吐不快,技术宣传有时确实能够蒙蔽多数人的眼睛,这里仅仅只提提微软的几个经典杰作:Web Service的兴起让微软看到了以微软自己的方式来解释“跨平台”、从而打压Java最大优势的潜力和契机;而Common Language则看似能够团结一切可以团结的力量,为最偏执的语言爱好者找到使用.net的理由;Asp.net则提供了一种开发效率更高的组件-对象模型来帮助.net争取服务器端技术方面的主动,我有一种感受,上述种种均只是.net的面,而都不是.net的本质,它们都只是.net作为系统级组件平台发挥其核心竞争力的外在环境而已。
微软的想法确实与Java阵营不同,很多朋友抨击.net缺乏创新及大局观,抨击当前.net的技术发展在目前Java社区中一浪高过一浪的架构-模式研究热潮面前显得是多么的渺小,我倒觉得这恰恰是微软布局的不同:通过扎实修炼内力,依靠.net不断完善的组件模型,以待迎接将来基于框架应用的新一轮组合爆炸阶段,从而因小及大;而事实的另一方面,则是Java碰到了自身不可逾越的障碍,而不得不以引入架构、模式的宏观方式来弥补自身组件模型所存在的种种无法克服的缺陷。以往技术发展的历史仿佛又告诉我们,应用框架的兴起和存在,从某种角度上来看,可以说是一种核心技术得以深化发展的顶点,也可以被视为是其疲态渐显的征兆和另一场核心技术革命的开始,因为从本质上来说框架并不能算是纯粹构件化的,其本身是紧耦合的,从Win32 API、MFC/OWL到可视化,再到分布式应用,这似乎都是很好的历史佐证,作为应用框架的先驱和力行者,微软在这上面是尝过苦头的,不然也不会有COM / DCOM / MTS / COM+等一系列早期面向组件的产品技术的诞生。在硬件性能充裕的前提下,未来软件生产率的极限唯有依靠独立、直观、简洁的组合方式来实现,这是我从.net身上体会到的微软的技术哲学。
当然,上述种种,这只是我的一点略显激进的个人感受罢了,未必成熟,只是因为在网上从未见到过相似观点的讨论,才把它们写了出来,也许时间会改变我的观点,一切的一切,均有待时间的验证。