博客
关于我
Asp.net mvc项目架构分享系列之架构概览
阅读量:461 次
发布时间:2019-03-06

本文共 1221 字,大约阅读时间需要 4 分钟。

Asp.net mvc项目架构分享系列之架构概览

项目简介

本项目基于ASP.NET MVC5+EF6开发,主要面向内部管理系统及报表处理模块的开发。该项目采用分层架构设计,通过清晰的模块划分和技术选择,确保系统的可维护性和扩展性。

项目解决方案分层方案

本项目的解决方案分为五大主要层次,每个层次承担着特定的功能模块:

  • UI 层

    • Web(网站主项目):主要负责用户交互界面,包括后台管理界面和报表展示界面。
    • AdminLogic(管理员控制器逻辑):负责实现管理员的核心操作逻辑。
    • WebHelper(web帮助类库):提供通用功能模块,支持多种业务逻辑需求。
    • Web.Tests(单元测试):目前尚未加入项目,计划未来使用NUnit进行单元测试。
  • Service 层

    • IBLL(业务逻辑接口层):定义业务逻辑的接口,确保各层模块对业务逻辑的统一定义。
    • BLL(业务逻辑实现层):实现IBLL定义的业务逻辑接口。
  • Repository 层

    • IDAL(数据库服务接口层):提供数据库操作的通用接口,确保各层模块对数据库操作的统一定义。
    • MSSQLDAL(MSSQLServer数据服务实现层):负责MSSQL数据库的数据操作实现。
    • MYSQLDAL(MySQL数据服务实现层):已从解决方案中移除。
  • Infrastructure 层

    • Core(框架基础核心方法类库):提供通用功能模块,包括数据处理、日志记录等基础功能。
    • Models(数据模型层):定义和管理系统中所有数据模型,确保数据结构的统一性。
  • 所用到的技术

  • 日志框架——log4net:用于系统日志记录,支持多种日志级别配置。
  • 数据层ORM——EF CodeFirst:通过代码第一模式,自动生成数据库表结构,简化数据操作。
  • 报表相关——NPOI:用于Excel、Word等格式的报表生成。
  • 基于接口编程——通过反射获取相应的接口实现类:实现灵活的接口扩展。
  • 项目引用关系

    各层模块之间的引用关系如下:

    • Models:核心数据模型 layer,所有层都依赖。
    • Core:基础功能类库 layer,所有层均依赖。
    • IDAL:核心数据库服务接口 layer,依赖Models和Core。
    • MSSQLDAL:具体实现MSSQL database操作,依赖IDAL、Core和Models。
    • MYSQLDAL:已移除。
    • IBLL:业务逻辑接口 layer,依赖IDAL、Core和Models。
    • BLL:业务逻辑实现层,依赖IBLL、IDAL、Core和Models。
    • WebHelper:web辅助类库,依赖IBLL、Core和Models。
    • AdminLogic:管理员逻辑控制器,依赖WebHelper、Core和Models。
    • Web:主网站项目,依赖AdminLogic、WebHelper、Core和Models。

    通过清晰的层次划分和引用关系,确保了系统的高效维护和可扩展性。

    转载地址:http://kpubz.baihongyu.com/

    你可能感兴趣的文章
    npm报错TypeError: this.getOptions is not a function
    查看>>
    npm报错unable to access ‘https://github.com/sohee-lee7/Squire.git/‘
    查看>>
    npm淘宝镜像过期npm ERR! request to https://registry.npm.taobao.org/vuex failed, reason: certificate has ex
    查看>>
    npm版本过高问题
    查看>>
    npm的“--force“和“--legacy-peer-deps“参数
    查看>>
    npm的安装和更新---npm工作笔记002
    查看>>
    npm的常用操作---npm工作笔记003
    查看>>
    npm的常用配置项---npm工作笔记004
    查看>>
    npm的问题:config global `--global`, `--local` are deprecated. Use `--location=global` instead 的解决办法
    查看>>
    npm编译报错You may need an additional loader to handle the result of these loaders
    查看>>
    npm设置淘宝镜像、升级等
    查看>>
    npm设置源地址,npm官方地址
    查看>>
    npm设置镜像如淘宝:http://npm.taobao.org/
    查看>>
    npm配置安装最新淘宝镜像,旧镜像会errror
    查看>>
    NPM酷库052:sax,按流解析XML
    查看>>
    npm错误 gyp错误 vs版本不对 msvs_version不兼容
    查看>>
    npm错误Error: Cannot find module ‘postcss-loader‘
    查看>>
    npm,yarn,cnpm 的区别
    查看>>
    NPOI
    查看>>
    NPOI之Excel——合并单元格、设置样式、输入公式
    查看>>