使用Apworks开发基于CQRS架构的应用程序(一):前言
在Apworks框架发布Alpha版本的时候,我已经针对其开发案例:Tiny Library CQRS写了Walkthrough文档,地址是:http://apworks.org/custom/documents/wlkthr_BuildAppsUsingApworks/。为了走国际化道路,这篇文章是全英文的,社区里有不少网友表示难以理解。趁着这几天不算很忙,我抽空将其又翻译回中文,并加入更多的批准内容,供爱好DDD、CQRS和架构设计的朋友阅读参考,也希望大家能够积极参加讨论。
简介
Apworks是一套应用程序开发框架,软件架构师和开发人员可以使用这套开发框架开发出面向领域(Domain-Centric)并基于CQRS架构风格的应用程序。在本系列文章中,我将向大家介绍,如何使用Apworks开发一套面向领域的、松耦合的分布式应用系统。
本系列文章所使用的案例,就是之前我介绍的Tiny Library CQRS应用程序。之前也有一个系列文章是介绍这个项目的,不过那些文章都是介绍Tiny Library CQRS的一些功能要点和实现思想,并不是一套完整的How To演练文档。到写这篇文章为止,那个系列文章还没有写完,不过在我完成这个系列后,我会继续将其更新完善。
本系列文章将向读者朋友介绍,如何白手起家,使用Apworks开发应用程序。
业务场景
之前了解过Tiny Library CQRS项目的朋友对业务场景应该会非常熟悉,可直接跳过此段。在接下来的几章中,我们将开发一个应用程序,通过这个应用程序,用户可以对“读者”和“图书”进行管理。“读者”可以从图书馆“借书”,在看完后,可以“归还”给图书馆。系统用户可以创建“读者”和“图书”的信息,并且可以查询“读者”的“借书”、“还书”情况以及“图书”的借出历史和归还状态。
先决条件
为了保证你能够顺利地按照本系列文章的介绍,逐步创建能够运行的应用程序,你的系统必须符合下面的先决条件:
- Microsoft .NET Framework 3.5 SP1
- Microsoft Visual Studio 2010
- Microsoft Patterns & Practices Enterprise Library 5.0 (April 2010)
- Microsoft SQL Server 2005 (Express) or above
- Microsoft ASP.NET MVC
- Apworks Development Framework,可以【点击这里】直接下载(需要同意LGPL 2.1的License)
在Visual Studio中创建解决方案
现在,我们开始在Visual Studio 2010中创建解决方案。为了描述方便,我们给解决方案取个名字,称为“TinyLibraryCQRS”,所有项目的命名空间都会基于这个名称。为了能够更好地使用Apworks框架来开发应用程序,通常我们的解决方案会包含以下项目:
- TinyLibrary.Domain(C# Library)- 该项目包含了领域模型
- TinyLibrary.Events (C# Library)- 该项目包含了对所有领域事件的定义
- TinyLibrary.EventHandlers(C# Library)- 该项目包含了所有领域事件的处理器定义
- TinyLibrary.Commands(C# Library)- 该项目包含了所有客户端命令的定义
- TinyLibrary.CommandHandlers(C# Library)- 该项目包含了所有处理客户端命令的命令处理器定义
- TinyLibrary.QueryObjects(C# Library) - 该项目为整个应用程序提供了查询机制和查询对象
- TinyLibrary.Services(C# WCF Service Application)- 一个C#的WCF Service项目,用来向客户端提供应用程序服务接口
- TinyLibrary.WebApp(C# ASP.NET MVC应用程序)- 一个采用ASP.NET MVC开发的客户端程序
现在,让我们在Visual Studio 2010中创建TinyLibraryCQRS的解决方案:
- 打开Microsoft Visual Studio 2010
- 单击 File | New | Project 菜单,这将打开 New Project 对话框
- 在 Installed Templates 选项卡下,选择 Other Project Types | Visual Studio Solutions,然后选择 Blank Solution
- 确保在对话框上的Framework版本选择区内,选择了.NET Framework 4.0
- 在 Name 文本框中,输入 TinyLibraryCQRS 然后单击 OK 按钮
至此,Visual Studio的Solution Explorer中只显示了一个节点,就是我们刚刚新建的TinyLibraryCQRS解决方案,在后续的文章中,我们将了解到项目的整个开发过程。
额外说明
- 在本系列文章的操作步骤描述中,界面元素的名称还是英文的,这是因为工作需要,我的开发环境是英文的,为了不至于产生歧义,我没有将这些界面元素的名称翻译成中文写在这里,也没来得及搭建一个中文环境去比对,所以目前也只能把英文的名称原封不动地写下来,我想应该不会给读者造成太大的阅读障碍吧
- Apworks目前发布的是Alpha版本,下一个版本也正在开发中,所以文章的内容目前只适应于Alpha版本