目录

孟岩荐应用框架的设计与实现

孟岩荐《应用框架的设计与实现》

.NET 开发者应读的一本好书

孟岩

http://gocom.primeton.com/blog/resserver.php?blogId=23&resource=appfw.jpg

2000

7

月微软

PDC

大会上宣布

.NET

计划开始算起,

.NET

问世已经超过五年了。作为世界上最强大的软件公司,微软在推广

.NET

技术方面可谓不遗余力。在微软的强大推动力之下,不少

.NET

技术网络社区迅速崛起,一批

.NET

技术的高手成长起来,推动

.NET

应用快速向前发展。不过在技术图书领域,

.NET

类图书的表现一直乏善可陈。如果让我们列举出目前已经出版的堪称经典的

.NET

技术图书,恐怕一只手就数得过来。这一方面是因为

.NET

技术比较新,积累不足,另一方面也跟作者和出版方策划思路有关。在前

.NET

Win32

COM

时代,技术与应用之间的关系简单直接,要开发出稳定、灵活、优质的应用程序,必须对技术概念及细节有高人一筹的认识。很难想象一群技术功底不扎实的开发者能够开发出复杂的

3D

游戏,并在市场上获得成功。因此这个时期的图书“技术味”很浓厚,很多经典图书都在如何洞悉计算机底层运作机制,通过精巧机制实现出人意表的功能方面表现突出。

Win32

COM

时代的几本经典著作,如

Charles Petzold

Programming Windows

Jeff Richter

Advanced Windows

Don Box

Essential COM

Sells

兄弟的 Inside ATL

David Solomon

Inside Windows

John Robbins

Debugging Application for Windows

,以及侯捷先生的《深入浅出

MFC

》等,都是以技术剖析见长。

.NET

的推出,一方面是微软技术自身变革的必然,另一方面也是微软面对新时期新挑战所做出的回应。在这个新的时代里,技术与应用之间的关系变得微妙起来。洞悉底层技术的细节,并不一定能够给应用程序带来直接的好处,所以传统意义上的编程高手未必就能开发出优质的应用,在企业应用开发方面尤其如此。而在另一方面,那些飘浮在“建模、体系、架构、模式”等高层概念上的架构师们,如果对具体技术缺乏理解,同样是纸上谈兵,无法完成具体的工作。事实上,技术的重要性依旧,只不过现在的问题变成了:“哪些技术是重要的?”

很遗憾,在这个问题上,很多

Win32/COM

时代的老牌明星作者似乎并没有给出令人满意的回答。目前国内外出版的

.NET

图书,大部分都停留在初学者入门教程的程度上,少数的佳作,如

Jeff Richter

Applied .NET Framework

Don Box

Essential .NET

Ingo Rammer

Advanced .NET Remoting

等,则仍然沿袭了

Win32/COM

时代的技术剖析思路,在底层技术细节上下足功夫。虽然非常精彩,对于开发者理解

.NET

技术大有好处,但是对于大型应用的开发并没有直接的帮助。还有一些图书,一上来就高举高打,脱离具体的技术去谈企业应用的架构与模式,以空对空,无法给实践者提供直接的帮助,反而有误导他人的弊端。目前来看,反而是一些面向具体应用领域的“大全”类图书更为实用,比如

Stephen Walther

ASP.NET Unlashed

。但是这样的图书确实又欠深刻,不耐咀嚼,难入“经典”门墙。因此我接触到的不少水平较高的开发者纷纷抱怨,

.NET

无好书可读。我虽然不把自己视为

.NET

开发者,但在应用

.NET

开发一些具体应用的时候也感到,既能够对项目提供很好的指导作用,又能具有较高理论水准的图书非常少见。我在以前的一些书评中推荐过

Rockford Lhotka

Expert C#/Visual Basic .NET Business Object

Juval Lowy

Programming .NET Components

,都是

.NET

方面实实在在的好书。不过可惜这样的好书还太少了一点,而且其内容的覆盖面也显得不够。

最近我看到博文视点出版公司翻译出版的一本新书《应用框架的设计与实现》。这本书虽然名气不是很大,不过比较细致地浏览过一遍之后,我发现这本书是当前已出版的

.NET

技术图书中非常难得的佳作,既能够对项目实践提供一定的指导,又具有比较丰富的技术养分,值得细细咀嚼。虽然一本书是否能够成为经典,需要时间的考验,但是我相信这本书能够给今天的

.NET

开发者带来实实在在的帮助。

本书作者是一位华人技术专家,在美国从事软件开发多年,特别擅长于微软体系下企业解决方案的开发,在业内有着丰富的成功经验和很高的声望。在写作本书之前,作者曾发表过

BizTalk

方面的著作,体现了他在企业解决方案方面的造诣。相比于从

Win32/COM

底层技术走来的技术专家,作者对于企业应用具有更高的视点和更丰富的经验,很清楚地知道对于企业应用开发来说,

.NET

技术中哪些技术更加重要,并且在这本书中通过一个示范性的应用框架将自己的观点与经验展现出来。事实上,在

.NET

企业开发中,面向大型复杂应用的框架具有特别重要的意义,企业应用解决方案开发中涉及到的关键技术和重要思想,在框架的开发中都会得到反映。因此,认真地研究应用框架的设计思想和实现技术,是掌握平台技术、提高技术水准、改善工作质量和效率的捷径。因此这本书对于企业应用开发者来说,具有很好的指导性。

本书篇幅虽然不大,但是技术内容却相当丰富。书中通过一个简单而又颇具启发性的示例应用程序框架

SAF

展示了

.NET

平台应用框架设计的各个方面,比如对象的动态创建,配置、缓存、事件通知等基本服务,以及事务、消息队列、

Windows Services

、授权和安全性服务等企业级服务。特别值得赞赏的是,作者不仅关注纯技术的方面,而且对于文档层服务、工作流等比较新的、接近业务的高层次企业服务也做了言简意赅的介绍,并且将随时测试的思想贯穿全书。我认为这本书中所介绍的内容对于今天的企业应用开发者具有特别重要的意义。事实上,在

.NET

这样的平台上,除了系统级工具的开发者之外,大部分开发者并不需要对于垃圾收集机制有十分深入的理解,也不需要自己动手调整

CLR

运行时,或者基于原始的

.NET API

自行开发完整的远程对象服务。这些中级的服务已经在

.NET

中得到了很好的支持,我们的主要任务是认真地了解

.NET

提供的这些中级服务,根据实际需要在项目中良好地加以利用。另一方面,详细介绍如何开发精美界面、如何连接数据库等具体工作的内容虽然有意义,但是从网络中已经可以方便快捷地获得相关资料,图书在这方面的意义已经被削弱。而本书所讲授的技术内容才是读者真正需要的,即企业应用开发中的实用技术和技术运用的专家经验。作者通过一个框架项目将这些知识与经验串接起来,一方面使得系统性大大加强,另一方面也展示了技术之间的协作之道。对于某些读者来说,或许可以以

SAF

为基础,根据本领域的特点开发自己的专用应用框架,如果是这样,那么这本书的价值将能够得到大大的扩展。

从写作风格上看,本书跟国外的一些典型技术图书比较接近,行文风趣活泼,可读性较好。但是涉及到技术部分,则语言相当精炼,没有拖泥带水的感觉。也正因为如此,作者才能够在短短的

400

页空间里容纳大量的技术内容。我本人非常欣赏这种风格。

总之,我认为这本书是我近期看到的一本难得的

.NET

技术佳作,非常适合于具有一定经验的读者阅读学习和研究。对于那些基本掌握了一门

.NET

编程语言的读者来说,虽然这本书的程度稍显高了一些,但是稍加努力使完全可以领会的,并且将帮助你走上

.NET

企业应用开发的捷径。当然,这本书并不是包容一切的。一个有抱负的读者,还应该阅读一些其他的好书来加深和拓宽自己的技术。例如前面提到的

Programming .NET Components

,与这本书在技术上形成了很好的互补,而

Expert C#/Visual Basic .NET Business Objects

,在主题上于本书接近,而观点又有所区别,在解决方案整体结构的讲述上略胜一筹,很适合读者比较鉴别,这种比较对于读者提高技术水平大有裨益。我也希望看到越来越多的优质、实用、技术养料丰富的

.NET

大量出现,从而将

.NET

这项优秀技术平台的实际应用推向真正的高峰。