开发环境准备与学习资料清单

前面几篇已经把废话基本说完了,现在准备进入实战阶段。

第一步是把开发环境准备好,下面是本系列所使用的开发工具及其版本。为了避免你无法顺利打开本系列提供的下载示例,建议你最好跟我使用的版本相同。

  • Visual Studio 2013

  • ReSharpe 最新版本,目前版本是8.2.2

ReSharpe是一个VS上面的插件,它不是必须的,但它能够大幅提升你的编码速度和代码质量,特别是采用了像DDD这样的架构,整个系统包含大量的Interface,你需要在接口和多个实现之间来回跳转,VS在这方面缺乏支持,可以使用ReSharpe来弥补这个空缺。

一个例外是你的电脑运行速度非常慢,这种情况下建议不要安装,不然你会完全动不了。

  • NestIn 1.1.1。

NestIn也是VS上的一个插件,主要用来把两个文件嵌套在一起,在某些情况下需要使用。

  • CodeSmith 6.5

CodeSmith是一个模板生成器,用来进行自定义代码生成。

  • Sql Server 2012( 2008也行 )

  • PowerDesigner 16.5

PowerDesigner是建模首选工具,不仅可以进行数据建模,还能进行流程图、类图、序列图等UML设计。

  • XMind 6

XMind是一个思维导图工具,可以用它进行一些分析工作。

以上包含了所需要的开发工具,请你自行下载安装,大部分工具都要收费,不过作为中国人,一个优势是可以采用绿色版本,不用我说大家也知道怎么做了。在安装过程中遇到问题,可以提问,我尽量抽时间给你解决。

除了开发工具以外,开发应用程序框架需要一定的抽象和封装能力,下面我把一些应该具备的基础知识列举如下,并推荐一些经典图书,为避免书有同名,我将作者也一并列出。

  • 面向对象基础

毕竟大家在使用面向对象语言,不管你是否使用DDD这样的面向对象架构,都需要掌握一些基本知识,比如封装、继承、多态、接口、抽象类、抽象方法、虚方法等等。

推荐图书:

  1. UML和模式应用(作者:Craig Larman,这本书是我最喜欢的面向对象著作,从这本书我了解了对象的特征和使用要点)

  2. 面向对象分析与设计 (作者:Grady Booch,作者是UML开山祖师之一,这是他的代表作)

  • 架构模式基础

本系列采用DDD架构进行演示,大家需要对一些常用的架构模式有所了解。

推荐图书:

  1. 企业应用架构模式(作者:Martin Fowler,这本是架构模式的奠基之作,现在出来的架构模式名词,大半是从这本书出来的。Martin Fowler可能是敏捷导师里面名气最大的一位)

  2. 领域驱动设计(作者:Eric Evans,这本书出来以后,就一直是面向对象开发的标杆,是领域模型的标准用法)

  3. 敏捷软件开发-原则、模式与实战(作者:Robert C.Martin,这本也是架构模式方面的顶尖之作,特别是描述了五大架构原则SOLID)

  4. C#企业应用开发艺术-CSLA.NET框架开发实战(作者:Rockford Lhotka,这本是.Net应用程序框架方面能找到的几乎唯一一本从理论到实战系统讲述的著作)

  5. 实现领域驱动设计(作者:Vaughn Vernon,这本书新出来不久,内容非常丰富,是对原始DDD的一次升华)

  6. 领域驱动设计与模式实战(作者:Jimmy Nilsson,作者算是自己人,也是搞.Net开发的,这非常难得,.Net方面DDD的著作很少,在书中描述了他从以数据库为中心的设计,向以对象为中心的设计转变)

  7. Microsoft.Net企业级应用架构设计(作者:Dino Esposito,这本也是.Netl架构设计的一本好书,特别是他们在附录提供了一个Demo-NSK,可以参考)

  8. 领域驱动设计 C# 2008实现(作者:Tim McCarthy,这本是完全以实战为主,为如何创建DDD层超类型提供了一些代码参考,另外还对一些设计和开发中棘手的问题提供了一些解决方案)

推荐博客:

  1. http://www.cnblogs.com/daxnet/archive/2010/11/02/1867392.html,陈晴阳老兄的DDD系列是我见过写得最好的,在此强烈推荐。

  2. http://www.cnblogs.com/happyframework/category/448744.html,这位老兄不知道叫什么名字,他这个DDD系列也很有学习价值,特别是解决了我之前遇到的删除聚合中子对象数据库记录的问题。另外他还开源了一个应用程序框架,叫幸福框架,很值得参考。

  • 设计模式基础

对代码进行抽象,一般需要建立一些灵活性,了解一些常用设计模式是必须的。

推荐图书:

  1. Head First设计模式(作者:Eric Freeman,这本浅显易懂,设计模式入门必看)

  2. 设计模式(作者:Erich Gamma,这本就是设计模式奠基之作,不过示例都是C++写的,相当枯燥难懂,可以作为提高之用)

  • TDD基础(包括TDD、单元测试、重构)

使用TDD进行开发不是必须的,但如果想获得更高的代码质量和健壮性,这个就非常必要,我会在后面的框架实战中采用TDD方式进行演示。

推荐图书:

  1. 测试驱动开发的艺术(作者:Lasse Koskela,这本用来入门)

  2. 测试驱动开发(作者:Kent Beck,Kent Beck是极限编程创始人,这是他在TDD方面的开山之作)

  3. .Net单元测试艺术(作者:Roy Osherove,这本是单元测试方面最实用的一本)

  4. XUnit测试模式-测试码重构(作者:Gerard Meszaros,这本提供了大量在实际工作中进行单元测试碰到问题时的解决方案)

  5. 重构-改善既有代码的设计(作者:Martin Fowler,重构方面的权威著作,帮助你清除代码坏习惯)

  6. 实现模式(作者:Kent Beck,在本书中,极限编程大师演示了大量可以改善代码质量的小技巧)

  7. 代码整洁之道-Clean Code(作者:Robert C.Martin,这是Bob大叔在重构方面的著作)

  8. 重构与模式(作者:Joshua Kerievsky,这本书介绍了使用设计模式更正确的方式-通过重构演化出模式,而不是预先进行大量扩展点设计,这样可以获得更简单的系统)

上面列举了一些经典的设计图书,供希望在.Net开发中有所提升的朋友参考。当然,并不是说你需要把这些书全部看完才可以开始创建你的应用程序框架,而是给你指出一个努力的方向,很多设计问题在看了大师的著作之后会茅塞顿开。

另外,这些书不是小说,你不能指望看一遍就全部搞懂,很多书需要一遍遍的看。哪怕你感觉好像理解了,但却用不起来,如果只在看书的时候懂,搞开发的时候连个影子也想不起来,那还有个屁用。经常看,把一些名词先混个眼熟,然后慢慢在项目上实践,一些常用的模式还是容易搞懂,有些比较生僻的没有用上也没关系,这可能是项目不够复杂。

应用程序框架实战