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

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 @   至软  阅读(662)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示