写在前面
有段时间没有更新博客了,一方面因为工作繁忙,另一方面则是我最近一直在坚持设计和完善基于DDD的应用系统开发框架Apworks。读过我《领域驱动设计案例:Tiny Library》这一系列文章的朋友一定听说过Apworks框架,虽然这个框架至今仍未成熟到能够用在真正的系统开发上,但它已经实现了CQRS体系结构模式,已经可以用于软件架构设计的演示上了。从这一讲开始,我将逐步介绍如何采用CQRS架构实现Tiny Library的业务。你可能会听得烦了:又是Tiny Library,能不能换点别的?呵呵,我开始时想做一个简单的论坛出来,不过为了能让读者朋友在经典DDD实践和CQRS实践上做个对比,我决定继续使用Tiny Library的业务。
扩展阅读
在阅读本系列文章之前,如果您对领域驱动设计(DDD)、命令与查询职责分离(CQRS)、事件溯源(Event Sourcing)、事件存储(Event Store)、WCF、ASP.NET MVC等概念和技术不了解的话,请自己先对这些内容做个了解。这里我给出一些链接,希望能对您有所帮助。
- 《领域驱动设计精简版》
- 《EntityFramework之领域驱动设计实践【扩展阅读】:CQRS体系结构模式》
- 《Martin Fowler: Event Sourcing》
- 《Evolution of DDD: CQRS and Event Sourcing》
- 《Wikipedia: Domain-driven design》
- 《Wikipedia: Data Context and Interaction》
- 《Wikipedia: Command-query separation》
下载案例
请读者朋友到http://tlibcqrs.codeplex.com站点下载源代码。单击进入站点首页,然后在Source Code选项卡下,选择最新的Change Set,在打开的Change Set页面中,单击Download按钮下载源代码包。
系统需求
- Microsoft .NET Framework 3.5 SP1
- Microsoft Patterns&Practices Enterprise Library 5.0 (April 2010)
- Microsoft SQL Express 2008
- Microsoft Visual Studio 2010 (打开解决方案时需要VS2010)
- Apworks DDD framework (http://apworks.codeplex.com)。 Apworks的程序集已经被包含在Tiny Library CQRS的源代码包中,您无需单独下载Apworks
注意:目前Apworks框架只能用于演示,仍在开发中,请不要用于实际项目!
安装部署
请按下列步骤安装部署Tiny Library CQRS:
- 打开Microsoft Visual Studio 2010
- 打开Server Explorer
- 邮件单击Data Connections, 选择Create New SQL Server Database option
- 在Create New SQL Server Database对话框中,在Server name中输入.\SQLEXPRESS,然后在 New database name 中输入 TinyLibraryEventDB
- 使用上面同样的方法创建另一个数据库,取名为TinyLibraryQueryDB
- 在Microsoft Visual Studio 2010中,打开 TinyLibraryCQRS 解决方案
- 在Additions 目录下,执行 TinyLibraryEventDB.sql 和 TinyLibraryQueryDB.sql 脚本
- 编译整个解决方案
- 在Solution Explorer上, 邮件单击 TinyLibrary.Services.CommandService.svc 文件, 选择 View in Browser, 这将启动 ASP.NET Development Server,端口号是1421
- 将TinyLibrary.WebApp项目设置成启动项目,然后按下CTRL+F5以启动应用程序
运行案例应用程序
启动应用程序后,将出现如下界面:
请使用默认的账户登录系统:用户名:daxnet,密码:123456
从下一讲开始,我将详细介绍Tiny Library CQRS的体系结构和设计思路。敬请期待!