分析公司项目使用的架构

下面的架构设计是公司项目中实际使用的,希望大家不吝指教,沟通改进。

架构设计图

分析公司项目使用的架构

架构说明

一个标准的三层架构包含如下三个部分:

  1. 展示层,负责系统与客户的交互

  2. 业务逻辑层,负责处理系统的业务

  3. 数据访问层,负责处理数据,与不同的数据库打交道

我们在此三层架构的基础上进行一些小的扩展,增加了一个服务层,使其方便与其他系统进行数据交互和业务集成。

公共组件则是抽象了系统中可以共用和重用的部分。

组件设计图

分析公司项目使用的架构

组件说明

  1. App——页面展示

采用MVC 3.0框架,使用Jquery脚本库,控件选用Easyui。

  1. BLL——业务逻辑

业务逻辑的操作,包括业务处理,事务,日志。

  1. DAL——数据访问

数据库访问的操作,数据实体,业务实体,数据校验,使用Entity Framework。

  1. IBLL——业务接口

业务逻辑层的方法对外暴露的接口和服务契约。

  1. Common——公共组件

整个应用程序使用的公共辅助方法。

  1. ModelingProject——模型设计

在此设计项目的图例,如:架构图。

  1. WcfHost——服务宿主

为对外的服务提供宿主,使用微软WCF技术,采用HTTPS通讯协议。

  1. WFActivitys——工作流活动层

定义了工作流的活动,使用微软WF技术。

  1. WFDesigner——工作流设计器

可以让实施人员自由配置工作流的设计器,使用微软WPF技术。

以上是在架构图的框架下设计的9个组件,让每个层职责独立,松耦合,适合团队开发。

在架构图中我们看到有"数据实体"、"业务实体"和"页面模型",他们之间的关系呢?数据实体是数据库表和表关系的映射,是Entity Framework自动生成的;但在不同的业务领域,数据实体无法满足需求,就需要我们在数据实体的基础上扩展或者自定义,于是就有了业务实体的概念;务实体经过业务处理后,需要展示给客户的模型就叫做页面模型,页面模型是一个页面动态数据的载体,每个页面都对应着自己的页面模型。如果我们只是做一个单表的增删改查,那么"数据实体"、"业务实体"和"页面模型"是一样的,但在复杂业务中,三者就有差别了。

"数据实体"在DAL层中,是Entity Framework自动生成的实体;

"业务实体"也在DAL层中,是基于"数据实体"进行扩展的实体

"页面模型"则比较复杂,简单的页面模型,可以直接使用业务实体,复杂的页面模型则需要自定义,放在了Modles文件夹下。

相关推荐