业务场景
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
后续
陆续会有几篇文章详细说明这个设计