前言:
有些园友经常问如何正确快速开发,但是我告诉你没有什么帮助文档比自己动手做更加实在,不用代码生成器
这一节专门抽了些时间来非常非常详细演示这个框架的数据流,废话不多说,现在开始!下面看一张图,看看数据如何到前端的就完全明白了!
只看红色部分,这是典型的三层模式。其实这张图只是对我们过去的一个回顾而已!DAL获取数据库数据,交给业务层处理逻辑后交付控制器序列化给前端
从用户请求(View)——>控制器(Controller)——>业务处理(BLL)——>(数据访问)DAL——最后得到数据
-------------------------------------------------------------------------丑陋的分割线----------------------------------------------------------------------------
目录
上面只是一个开篇,下面让我们来快速进入主题吧!大致分以下5步完成:(其实纯看手速,手速快的5分钟就可以运行了)
——————————————————————————
- 约定
- 建立类库与区域
- 相互引用
- 代码生成
- 运行
——————————————————————————
1.约定
其实在写完了权限的时候,我发现了很多重复性编码的东西,所以随便写了个代码生成器,在每次使用代码生成器的时候发现了,代码生成器生成的代码很多都是一样的,所以使用了T4重构了重复部分。
这都是在实际过程中去摸索完善的过程,没有任何架构师,一开始能对一个默生的项目提出最好的架构,只有不断的重构完善,最后才能使框架的维护成本降低!
假如我们是一个大型的应用系统,里面包含的很多业务模块,比如财务管理,人力资源,销售,生产,工作流,那么我是这样分的,也是一种约定
一个好的系统他们是可以被拆分和组合的,所以我这样分模块,一个子模块包含了BLL,DAL,IBLL,IDAL你也可以分文件夹,那都是一样的
以一个样例的模块来演示Sample(Spl),所以我们必须有如下的约定:
数据库表前缀: Spl_
类库的名称: Apps.Spl.XXX
控制器区域: Spl
Models文件夹:Spl
(虽然不是必须执行,但是这也是编码规范)
2.建立类库与区域
分别复制来源于Apps.Base下的所有T4到Apps.Spl对应的BLL,DAL,IDAL,IBLL层
并修改T4的内容的usingName前缀为Spl。(为数据表的约定的前缀)
类库:(如果你的项目是以文件夹而不是类库分类的那么不需要执行这一步)
区域:
并修改路由规则为如下(多语言的正则表达式)
3.类库引用
(如果你的项目是以文件夹而不是类库分类的那么不需要执行这一步)
为了类库的引用,我们先建立两张表,只有表有了T4才能生成,生成后会报错,报错之后有助于我们对库的引用,OK
我这里建立两张表:表的数据来源于SQL2012的示例数据库AdventureWorks2012大家可以通过百度找到下载地址
表结构我是自己建的,比较简单,你可以随便建立你的表!
这是一个产品与类别关系的表!没啥
根据报错信息我们将要分别引用类库,类库需要引用关系如下图所示
只看红色框框内即可,白色为系统原有的类库,别看好像很复杂,手速快的其实就一分钟的事情而已!
千万别忘记注入。在App.Core下的UnityDependencyResolver类库
4.代码生成
新建2个控制器。ProductController与ProductCategoryController
最后进入收尾工作,接下来的事情由代码生成器生成!生成代码后复制进Controller与View就可以
5.运行
运行系统,最后设置好权限和模块
最后刷新一下系统。杠杠的
总结
文章很长,但是很详细,看完对框架认知度至少提高200%。
主要几步来完成。新建类库---->数据库表---->生成代码---->直接运行。速度快的其实只需5分钟,毫无难度可言
几乎没有写一行代码就能实现界面的展示,如果把代码生成器努力优化将能支持多表联合查询,支持复合实际的开发业务,那么编码速度的提升是质的提升
谢谢大家。
下一节将演示如何添加除生成之外的功能!如何使用代码来做其它事