• 第三章 项目结构


    源代码GitHub:https://github.com/ZhaoRd/Zrd_0001_AuthorityManagement

    1.介绍

          中秋节前后回了一趟老家,搁置了博客的更新,回到无锡后补了补工作上的事情,今天挤点时间来谢谢博客。

          本篇主要介绍本Demo的分层结构、项目组织以及引用关系的内容。该demo是使用DDD推荐的分层结构,主要包括基础设施层、领域层、应用层和展示层;项目组织通过解决方案文件夹进行组织,通过解决方案文件夹,可以对项目进行分门别类的进行管理;在引用关系上,依据依赖倒转原则,上层类库不依赖底层实现类库,底层实现类库依赖上层类库接口。

    2.DDD分层结构(参考 http://www.cnblogs.com/mienreal/p/4534598.html)

            2.1  基础设施层(Infrastructure)

                   基础设施层主要包括两个程序集,一个是项目中需要依赖的公共资源,必须加密解密等等一些工具;另一个是实现数据持久化的项目,实现领域层定义的仓储接口,可以使用ORM工具,例如EntityFramework.

            2.2  领域层(Core)

                   项目的核心层,所有与项目有关的核心算法和实现放在这一层,主要包括领域对象、值对象、仓储、领域服务、领域事件等内容

            2.3  应用层(Application)

                   协调领域层资源,提供服务方法供展示层调用,不包含业务逻辑。

                   使用dto和automapper

            2.4  展示层(Presentation)

                   使用不同的展示技术提供用户操作界面,实现用户交互操作。

                   该demo主要使用mvc4,前端使用angularjs

    3.项目组织结构

       该demo改用的结构如下,参考郭明峰博客

    d0cf8357-277b-455b-8d64-31d3edb85a1a

       1-Infrastructure 主要放基础设施层的程序集

       2-Core 主要是放和项目有关的的程序集

       3-Applicatgion 主要是实现展示层定义的接口,依赖Core

       4-Presentation 主要包括展示层使用的接口和一个web项目

    4.引用关系

    54ffa437-d6b6-4e9f-9289-029f3ca90c57

    引用关系图如上所示,其中青色的线表示程序集实现依赖另一个程序集,粉红色的是依赖。

    1-Infrastructure里的Data.dll是数据持久层的实现,依赖Core.Domain.dll,仓储接口定义在Core.Domain.dll

    展示层使用的接口定义在 Presentations.dll里,Applications.dll实现Persentations.dll定义的接口,在Applications.dll里配置automapper的初始化

    依赖倒转主要是使用IOC容器实现的,本案例采用autofac实现IOC

     

     

    推荐QQ群:

    278252889(AngularJS中文社区)

    5008599(MVC EF交流群)

    134710707(ABP架构设计交流群 )

    59557329(c#基地 )

    230516560(.NET DDD基地 )

    本人联系方式:QQ:351157970

  • 相关阅读:
    数据库
    Python基础
    flask 文件的上传下载和excel操作
    Django 知识点补充
    Django部署时为什么要用 uWSGI与 Nginx? 以及 WSGI,uwsgi等协议
    Memcached 补充
    websocket基本概念
    Tornado 异步非阻塞
    Tornado 自定义session,与一致性哈希 ,基于redis 构建分布式 session框架
    functools 和 itertools
  • 原文地址:https://www.cnblogs.com/zhaord/p/4854090.html
Copyright © 2020-2023  润新知