`
king_tt
  • 浏览: 2113148 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

MVC实用架构设计(〇)——总体设计

 
阅读更多

系列导航

  1. MVC实用架构设计(〇)——总体设计
  2. MVC实用架构设计(一)——项目结构搭建
  3. MVC实用架构设计(二)——使用MEF应用IOC
  4. MVC实用架构设计(三)——EF-Code First(1):Repository,UnitOfWork,DbContext
  5. MVC实用架构设计(三)——EF-Code First(2):实体映射、数据迁移,重构
  6. MVC实用架构设计(三)——EF-Code First(3):使用T4模板生成相似代码
  7. MVC实用架构设计(三)——EF-Code First(4):数据查询
  8. MVC实用架构设计(三)——EF-Code First(5):二级缓存
  9. MVC实体架构设计(三)——EF-Code First(6):数据更新
  10. 未完待续。。。

〇、目录

一、前言

二、结构图

三、结构说明

一、前言

  一直以来都想写这个系列,但基于各种理由(主要是懒惰),迟迟没有动手。今天,趁着周末的空档,终于把系列的目录公布出来了,算是开个头,也给自己一个坚持写博客的理由吧。

  这个架构是从我近期在做的一个项目中剥离出来的,这个项目由我从0开始一手搭建,在整个过程中不断学习(在博客园中参考了很多大牛的作品)与思考中不断完善,项目的结构也从一个普通的类PetShop三层结构演变成了现在这样,一切以实用为目的,所以项目的改造过程中并不太严格遵守传统三层的定义,这个在下篇《项目结构搭建》及以后的系列文章中都会提及到,也会与传统三层结构进行对比。

  写这个系列的目的之一也是想把当前项目的架构抽象出来,以希望得到高手大牛们的指点,指出不足之处,以求发展改进。

  本系列使用的开发环境为:Windows 7 SP1、 Visual Studio 2012 (Update2)、TFS2012 (微软TFS云服务)、SQL Server 2008+,并使用 Resharper 7.1 进行代码优化。

二、结构图

  上图是本构架的设计图,纵向中间一列为架构主体部分,两边的小列为周边的依赖项,如果横向有交集,则说明主体部分对周边存在依赖。比如GMF.Demo.Core.Data依赖于Domain Models与EntityFramework,但GMf.Demo.Site.Web与GMF.Demo.Site对Entityframework不存在依赖。同样,Log模块也仅为GMF.Demo.Site.Web服务等等,这些在下面的结构说明中也会详加说明。

三、结构说明

  1. Infrastructure(基础设施层):提供系统中与业务无关的基础设施功功能
    1. GMF.Component.Tools:工具组件,提供通用辅助操作功能,扩展方法,异常定义,日志记录定义与实现等功能
    2. GMF.Component.Data:数据组件,提供与业务无关的EF数据上下文,单元操作,仓储操作,EF二级缓存等功能的定义与实现
  2. Core (业务核心层):提供与业务实体密切相关的业务功能
    1. GMF.Demo.Core.Models:业务实体模型,定义用于系统核心业务实现的数据模型的定义
    2. GMF.Demo.Core.Data:业务数据访问定义与实现:提供与业务相关的数据访问功能的实体映射,数据迁移,仓储操作的定义与实现
    3. GMF.Demo.Core:业务核心功能定义与实现:提交与客户端(网站,桌面端,移动端)无关的业务逻辑的实现,业务核心层主要特征如下:
      1. 此层是业务逻辑处理的核心,数据载体为业务实体
      2. 此层所有类为抽象类,需要在相应的客户端(网站,桌面端,移动端)进行继承后才能被展现层调用
      3. 此层要做到客户端(网站、桌面端、移动端)状态(如网站的Cookie,Session等)无关性,所有客户端特有的业务都要在相应的派生层中进行处理,转换为状态无关后再调用此层进行运算
      4. 对于不同客户端(网站、桌面端、移动端)的数据,只需要转换为业务实体即可调用此层代码进行运算,解决相同业务在不同客户端代码重复的问题
  3. Application (站点应用层)
    1. GMF.Demo.Site.Models:网站业务视图模型:定义用于网站业务实现的视图模型的定义
    2. GMF.Demo.Site:网站业务实现,此项目继承于GMF.Demo.Core,主要职能如下:
      1. 对业务执行权限进行检查
      2. 负责把从网站接收的业务视图实体转换为核心业务模型,传给业务核心层进行业务处理
      3. 处理与Http密切相关的数据(Session、Cookie等),处理成与Http状态无关后再交由核心层进行处理
  4. Presentation (展现层)
    1. GMF.Demo.Client.Consoles:业务控制台,可对功能代码段,核心业务等功能进行调用测试。
    2. GMF.Demo.Site.Web:网站UI展现
      1. 对Action执行权限进行检查
      2. 接收用户输入并转交给站点业务层进行处理
      3. 记录功能操作的日志记录与异常日志
分享到:
评论

相关推荐

    Web架构——MVC

    Web架构——MVC Web架构——MVC Web架构——MVC Web架构——MVC

    MVC三层架构——超市订单管理系统

    MVC三层架构——超市订单管理系统使用纯Servlet和JSP实现,没有用到任何框架,内含mysql数据库文件,订单管理和供应商管理没做分页,具体分页操作参考用户管理的分页

    MVC架构(模式)

    主要包括MVC的设计思想、实现和原理,以及和其他人的理解。 一、MVC设计思想 二、MVC设计模式的实现 三、MVC设计模式的扩展 四、MVC的优点 五、MVC的不足

    PHPMVC架构搭建

    PHPMVC架构搭建

    PureMVC实现与实践——教程.pdf

    PureMVC实现与实践——教程.pdf 不错的pdf讲解的挺详细,大家下来看看。 PureMVC实现与实践——教程.pdf 不错的pdf讲解的挺详细,大家下来看看。 PureMVC实现与实践——教程.pdf 不错的pdf讲解的挺详细,大家下来看...

    MVC+EF+架构设计示例源码2012626

    MVC+EF+架构设计示例源码 源码描述: 步骤说明 首先 我们现在数据库建一个表 Product表 在CinDou.EFramework层中建立 CinDouDbContext.cs 文件 在 CinDou.Model 项目中建立 Product.cs 在BFactoy和DFactory层中分别...

    传统MVC架构和前后端分离架构模式对比

    通过多维度对传统的MVC和前后端分离架构进行对比,深入对比了两种架构方式的优缺点,还有MVC和MVVM的区别与联系。

    标准企业 MVC 三层架构

    标准企业 MVC 三层架构 标准企业 MVC 三层架构 标准企业 MVC 三层架构

    Qt使用mvc架构进行编程

    Qt使用mvc架构进行编程

    MVC多层架构模式

    帮助初学者理解MVC多层架构模式开发流程图及说明.

    asp.net mvc多层架构源码

    一个学习使用ASP.NET MVC架构进行商业开发的好例子

    基于WinForm的MVC2架构

    基于WinForm的MVC2架构,一般所见的都是Asp.net MVC2 Web结构的,此例是WinForm窗体结构下的MVC2应用,能正常运行调试。

    ASP.NET MVC架构设计模式入门实例

    ASPNETMVC架构设计模式入门实例 对于ASP.NET MVC,很多开发者持欢迎的态度。不过在吸引了更多人目光的同时,我们也应该看到有很多开发人还不太了解ASP.NET MVC。本文的作用在于给大家一个简单易懂的ASP.NET MVC教程

    MVC三层架构

    MVC三层架构基础介绍简单来说,Design Patten 就是一个常用的方案。 在我们的开发过程中,经常会遇到一些相同或者相近的问题,每次我们都会去寻找一个新的解决方法,为了节省时间提高效率,我们提供一些能够解决这些...

    基于MVC架构的Java项目实训

    基于MVC架构的Java项目实训,含有完整代码以及文档说明,适合初学者使用

    设计模式——MVC模式

    MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。 View...

    asp.net MVC三层架构

    例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。 MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。这个适合刚接触三层架构的来学习,...

    C#mvc三成架构购物车

    C#mvc三成架构购物车

    C#基于mvc架构的物流管理系统源码(课程设计).zip

    C#基于mvc架构的物流管理系统源码(课程设计).zip 代码完整下载可用,确保可以运行。 C#基于mvc架构的物流管理系统源码(课程设计).zip 代码完整下载可用,确保可以运行。C#基于mvc架构的物流管理系统源码...

    Java高级架构知识总汇——源码分析,分布式,微服务,性能优化

    Java源码分析与常用设计模式,分布式架构的框架结构,底层原理。手写spring mvc,微服务架构 spring 5新特新与源码解析。

Global site tag (gtag.js) - Google Analytics