zoukankan      html  css  js  c++  java
  • 实战架构设计

    在微软的阵营中,将其在不同领域提出的技术解决方案利用一个项目,串起来,融会贯通,例如底层采用ef,展示层使用mvc,自定义一个业务层,让两者串联,就成一个简单的三层架构,这是催动其他多层架构的内功。

    在一个好的架构下编程,不仅对于开发人员是一件赏心悦目的事情,更重要的是软件能够表现出一个健康的姿态;而架构设计的不合理,不仅对于开发人员是一件受苦受难的事情,软件本身的质量更是受到严重威胁。

    架构设计图

    架构说明

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

    1. 展示层,负责系统与客户的交互
    2. 业务逻辑层,负责处理系统的业务
    3. 数据访问层,负责处理数据,与不同的数据库打交道
    4. 服务层,负责与其他系统进行数据交互和业务集成

    我们在此四层架构的基础上进行一些扩展,就是将业务逻辑的方法抽象出业务接口层(IBLL)。

    调用关系请结合下面的组件图一起来看,如下:

    展示层(App)调用业务接口层(IBLL),业务逻辑层(BLL)实现了接口层(IBLL),业务逻辑层(BLL)调用数据访问层(DAL),公共组件(Common)则是抽象了系统中可以共用和重用的部分,每个层都可以调用。

    另外,增加了一个服务层(WcfHost),将接口层(IBLL)暴露给其他系统,使其方便与其他系统进行数据交互和业务集成。

    注意:此处没有让展示层(App)调用服务层(WcfHost),是为了性能的考虑。

    组件设计图

    组件说明

    1. App——页面展示

    是BS架构的项目,选择最新的MVC框架,使用Jquery脚本库。

    1. BLL——业务逻辑

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

    1. DAL——数据访问

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

    1. IBLL——业务接口

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

    1. Common——公共组件

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

    1. ModelingProject——模型设计

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

    1. WcfHost——服务宿主

    为对外的服务提供宿主,使用微软WCF技术。

    1. WFActivitys——工作流活动层

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

    1. WFDesigner——工作流设计器

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

    以上是在架构图的框架下设计的9个组件,我们结合架构图一起分析:

    1. 展示层,包含App和WFDesigner项目
    2. 业务逻辑层,包含BLL,IBLL和WFActivitys项目
    3. 数据访问层,包含DAL项目
    4. 服务层,包含WcfHost项目
    5. 公共组件层,包含Common项目

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

    "业务实体"是基于"数据实体"进行扩展的实体,或者自定义的实体。因为是基于Entity Framework自动生成的数据实体,所以也放在DAL层中。另外,数据实体和业务实体集成了数据验证的作用。

    注意:因为"业务实体"也放在DAL访问层中,所以展示层(App)也需要引用数据访问层,但此处约定不许在展示层做数据库操作。

    下一个我们探讨一下《2数据访问层.doc》

  • 相关阅读:
    烯烃(olefin) 题解
    二分图的考验 题解
    树上的好题
    [SDOI2013]直径 题解
    [ZJOI2010]数字计数 题解
    神在夏至祭降下了神谕 题解
    洛谷 P4198 楼房重建 题解
    [HAOI2010]软件安装 题解
    [POI2011]ROT-Tree Rotations 题解
    可并堆之左偏树浅谈
  • 原文地址:https://www.cnblogs.com/angben/p/3025780.html
Copyright © 2011-2022 走看看