天天看点

一起谈.NET技术,领域驱动设计案例:Tiny Library:简介

  应广大网友的要求,我最近抽空基于ASP.NET MVC + WCF + Entity Framework做了一个案例,该案例以图书馆图书管理、读者借书、还书为业务背景,以领域驱动设计为思想指导,全程采用Microsoft技术进行实践,希望能够给Microsoft技术的狂热者以及领域驱动设计的学者提供实践参考。

本案例选用的业务逻辑非常简单,所以项目取名上我选用了“Tiny Library”,在后面一章我将详细介绍这个案例的业务逻辑、模型设计与系统架构。

  下载案例

  本来打算将项目发布到codeplex上,便于大家交流,也便于代码更新与维护,但由于某些原因,我无法在自己的网络环境中连接codeplex的svn/tfs服务,于是,目前只能以压缩包的形式发布案例源代码,希望大家谅解,等以后有机会更新到codeplex上后再通知大家。

<a href="http://files.cnblogs.com/daxnet/TinyLibrary.rar" target="_blank">【请单击此处下载案例源代码】</a>

  系统需求

Microsoft Visual Studio 2010

Microsoft Patterns &amp; Practices 5.0(v5.0.414.0,Runtime v2.0.50727。请自行到Microsoft官方网站下载安装)

Microsoft ASP.NET MVC 2

Microsoft Entity Framework(注意:是Visual Studio 2010自带的那个版本,而不是最新发布的那个Feature Pack CTP版本)

Microsoft SQL Express 2008 SP1

Apworks Application Development Framework

  请在打开本案例解决方案之前自行安装上述软件和组件!

  安装部署

建立数据库

使用Microsoft Visual Studio 2010提供的Server Explorer功能,在Data Connections上单击鼠标右键,选择Create New SQL Server Database选项,此时出现Create New SQL Server Database对话框,在对话框的Server name中输入(local)\SQLEXPRESS,在New database name中输入TinyLibraryDB,之后单击OK按钮

一起谈.NET技术,领域驱动设计案例:Tiny Library:简介

创建数据库Schema

使用Microsoft Visual Studio 2010打开TinyLibrary解决方案,在TinyLibrary.Domain项目节点下找到TinyLibrary.edmx.sql脚本文件,打开此脚本文件,在SQL Editor区域,点击鼠标右键,选择Connection | Connect菜单,此时弹出Connect to Database Engine对话框,Server选择SQLEXPRESS,然后单击OK

一起谈.NET技术,领域驱动设计案例:Tiny Library:简介

再次在SQL Editor区域点击鼠标右键,选择Execute SQL选项,执行SQL脚本以创建数据库Schema

一起谈.NET技术,领域驱动设计案例:Tiny Library:简介

建立演示数据(Demo Data)

以上述同样的方式,打开TinyLibrary.Domain项目下的TinyLibrary.DemoData.sql脚本并执行

3722端口

Tiny Library的WCF Service采用3722端口作为其服务的固定端口,因此在使用本案例钱,确保该端口未被其它应用程序占用

运行案例

在Microsoft Visual Studio 2010的Solution Explorer上,右键单击TinyLibrary Solution然后选择Rebuild Solution以重新编译解决方案

一起谈.NET技术,领域驱动设计案例:Tiny Library:简介

在TinyLibrary.Services项目下,选中TinyLibraryService.svc,然后单击右键,选择View in Browser,此时会自动打开ASP.NET Development Server,端口占用3722,同时打开WCF Service的页面。此时将WCF Service的页面关闭,仅留下ASP.NET Development Server

一起谈.NET技术,领域驱动设计案例:Tiny Library:简介

右键单击TinyLibrary.WebApp项目,选择Set as StartUp Project选项,然后在Microsoft Visual Studio中按下Ctrl+F5或者Debug | Start Without Debugging选项以启动应用程序

应用程序启动后,可以看到主界面如下

一起谈.NET技术,领域驱动设计案例:Tiny Library:简介

登录账号

测试需要,Tiny Library默认提供三个用户账户:daxnet、acqy和james。用户名、密码如下:

额外说明

时间有限,本案例仅仅是一个基于Microsoft.NET技术的领域驱动设计实践案例,因此,如下内容没有包含在本案例中:

基于AOP和Policy Injection的技术实践。这包括:异常处理、数据验证与系统日志

基于用户/角色验证的图书维护页面

ASP.NET MVC的高级应用

WCF的异常捕获与显示

单元测试

其它的一些技术细节

有兴趣的朋友可以在本案例源代码的基础上进行扩充,以实现一套完整的图书馆管理应用。