店铺管理系统开发实践-业务逻辑与系统结构

1.   业务逻辑与系统结构

1.1.  业务逻辑

Store系统的业务逻辑主要包括如下几条:

  • 基于多店铺使用。
  • 库存=采购入库-采购退货-销售零售+销售退货
  • 毛利润=(零售价格-采购进价)*零售数量

篇幅有限,我在这里只是简单的列举了便利店管理中的常见业务逻辑,复杂的更细不在这里一一展开了。 

1.2.  系统结构

本案例Store系统采用领域驱动设计,共分为四层:表示层、应用服务层、领域层和基础结构层。

表示层由 Windows窗体和代码隐藏文件组成。Windows窗体只是提供用户操作及界面排版,而代码隐藏文件实现各种控件的事件处理。

应用服务层则是一个WCF Service,主要为了对外提供API以便外部系统可以通过提供的API与本系统进行交互及扩展。

领域层主要是对业务领域的实体属性进行定义;

基础结构层则为整个应用提供了Repository、ORM等的具体实现。

整个系统架构基本上可以以下图描述:

 

需要说明的是,在上图中的表示层(WinApp)依赖于仓储(Repository)的接口和领域层(Domain Model)。仓储(Repository)依赖于仓储(Domain Model)及仓储(Repository)的接口。Store系统采用依赖注入,将仓储(Repository)注射到表示层(WinApp)中,所以表示层(WinApp)根本不依赖于仓储的具体实现方式。

 

Visual Studio 2008解决方案结构

Store系统在Microsoft Visual Studio 2008的解决方案下包含六个项目:CnToSoft.WinApp.Store、CnToSoft.Domain.Store、CnToSoft.Services.Store、CnToSoft.Repositories.Store、CnToSoft.Repositories.Store.Test及CnToSoft.Library。如下所示:

 

  • CnToSoft.WinApp.Store:提供用户界面与交互接口 
  • CnToSoft.Domain.Store:领域模型项目,其中包括了Store系统的领域模型与部分业务逻辑,也是本案例的核心所在。
  • CnToSoft.Services.Store:暂时空着。
  • CnToSoft.Repositories.Store:仓储的具体实现项目。本项目仅包含了针对Nhibernat的仓储实现。
posted @ 2012-08-26 21:13  至软  阅读(661)  评论(0编辑  收藏  举报