zoukankan      html  css  js  c++  java
  • CRUD全栈式编程概述

    业务场景

      CRUD,从数据驱动的角度几乎所有的的业务都是在做这样的事情。
      几乎所有的操作都是在做对表的增删改查。
      假设我们将数据库数据规个类:
      分为基础/配置数据和业务/增长数据,或者说静态数据和动态数据。
      其中静态数据是由后台管理员编辑的产生,动态数据是由客户产生。
      那么这部分中的静态数据往往伴随着完整的增删改查逻辑。
      完整的增删改查逻辑指的是,有对数据库某个表数据的查询。
      一条或者几条数据的添加,删除,修改。
      再直白一点就是有个界面,上面有查询,添加,删除,修改,导入,导出的按钮。


    设计描述

    我针对这上面的情况做了这个设计,技术上用到asp.net mvc和 entityframework的codefirst模式。

    由于涉及到从web界面到最底层的数据库设计 所以我把它叫做CRUD全栈式设计

    整体架构如图所示:

    简要说明:

    ListLayout是列表页的布局页
    AddOrEditLayout是添加和修改页面的布局页
    CrudController 是所有Controller的基类,继承自Controller
      其中ViewModel是泛型扩展的模型这个维度,为必须
      SearchModel是泛型扩展的查询实体这个维度,可选
      OrderModel是泛型扩展的排序实体这个维度,可选
    ICrudService 是所有服务接口的父接口
      其中三个为泛型扩展维度,和CurdControler一样
    CurdService为所有服务的基类,并且继承自ICrudService,其中Entity是efcodefirst的实体
    Repository 这里借用了NLayerApp中的Repository设计
      SortExpression部分借用了ApWorks中的设计
    DB 这里我们用codefirst的话,db我理解起来等同于ef的dbcontext


    后续

    陆续会有几篇文章详细说明这个设计  

      1,数据层的设计
      2,服务层的设计
      3,控制器的设计
      4,界面层的设计
      5,mvc扩展的设计
      6 , 导入导出的设计
      7 , 更精简的设计
      8 , 总结

  • 相关阅读:
    莫队
    NOIP2010_T4_引水入城 bfs+贪心
    拉灯游戏 搜索
    种花小游戏 随机化搜索
    [usaco2003feb]impster
    P1265 公路修建 (prim)
    P3378 【模板】堆
    并查集 模板
    P2661 信息传递
    P1828 香甜的黄油 Sweet Butter (spfa)
  • 原文地址:https://www.cnblogs.com/Skyven/p/5618842.html
Copyright © 2011-2022 走看看