zoukankan      html  css  js  c++  java
  • 如何让MVC和多层架构和谐并存(一)

    MVC的架构和多层架构,在ORM框架上是不兼容的。MVC的数据库操作需要通过实体框架Entity Framework,多层的数据库操作需要通过DAL层。我们最近刚完成的项目,实现了MVC和多层的并存,有一些心得,记述一下。

    为什么硬要把MVC和多层捆在一起用?有三个原因,首先,新的项目是一个站长工具网站(www.youhuafenxi.com),里面很多查询算法,我们在BLL层里都有积累,可以直接拿来用;其次,MVC的优雅和干净,特别适合我们这个网站;最后,新技术的探索和使用永无止境,不学习就会落后。

    整体项目如下:

    11OO6D19SH9248BGU0_thumb7

    经过考虑,我决定数据操作走多层,放弃Entity Framework。原因在于:1 团队成员很少接触Entity Framework,本来Mvc已经是新东西了,再引入Entity Framework,这次项目中的新东西有点太多,风险过高。我一向觉得一个项目中新东西比例不宜超过30%;2 据我用过的朋友说,Entity Framework性能不太好,当然这个有待实际核实;3 BLL是个公用层,我们写在BLL层里的代码将来还可以被别的项目复用,而Entity Framework写的代码一般只能被本项目使用。

    MVC架构,数据实体是Models这个目录:

    2WPUXP8SR717OEPDN4XY_thumb

    多层的数据实体是Model层:

    _QQ9CDKFPONL_8R62Q6_thumb4

    这两种Model有什么差别呢?多层的Model,是完全和数据库字段一一对应的,很简单,都是属性。MVC的Model,是和View业务逻辑对应的。这个业务逻辑可能和数据库有关联,也可能没有关联,甚至可能和多个数据表有关联,有可能很复杂,比如带List列表。但是,基本的业务逻辑,View的表单元素还是可以和数据表一一对应的。这样,只要把Mvc的Model和多层的Model有相关性的按照相同表字段建立关联,就可以使用到多层的数据操作。

    (未完待续)

  • 相关阅读:
    20210108 android学习
    20210106 android学习
    20210105 android学习
    20210104 android学习
    httpClient请求转发个人理解
    CefSharp如何判断页面是否加载完
    C#/WPF 使用的Task线程程序缺依旧响应缓慢问题
    修改LiveChart的提示显示位置
    Wpf双击放大缩小界面
    WPF设置无边框CefSharp显示不出来问题
  • 原文地址:https://www.cnblogs.com/mayee/p/3621672.html
Copyright © 2011-2022 走看看