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》

  • 相关阅读:
    java_oop_方法2
    POJ 3276 Face The Right Way(反转)
    POJ 3276 Face The Right Way(反转)
    POJ 2566 Bound Found(尺取法,前缀和)
    POJ 2566 Bound Found(尺取法,前缀和)
    POJ 3320 Jessica's Reading Problem(尺取法)
    POJ 3320 Jessica's Reading Problem(尺取法)
    POJ 3061 Subsequence(尺取法)
    POJ 3061 Subsequence(尺取法)
    HDU 1222 Wolf and Rabbit(欧几里得)
  • 原文地址:https://www.cnblogs.com/angben/p/3025780.html
Copyright © 2011-2022 走看看