ASP.NET MVC5+EF6+EasyUI 后台管理系统(61)-如何使用框架来开发
前言
这篇文本讲述了这个框架的使用方式,及一些疑问的答疑,更加精准的使用这个框架来建立功能 经过几个版本的迭代,系统使用更加方便,代码更加简洁也更加的智能,所以之前61节的文章也需要重新编排
对项目的了解
项目没有特别难以理解的类库, 就当成一个普通的MVC,三层项目看待即可
目录
我们只需要分为几步就能快速的建立一个具有权限的功能
- 表设计及约定
- 生成代码(代码生成器及TT模板)
- 配置(URL的配置及权限设置)
1.表设计及约定
框架表的设计必须遵循约定来设计,否则生成的代码需要再重载,而约定只需要遵守2个原则即可 1.表名必须有前缀(前缀即是功能的目录),比如Flow_(工作流) 格式:Flow_Table 2.表必须有主键Id,及字段CreateTime (创建时间datetime类型)
标准的设计(建立好表之后,可以对表的字段进行描述【数据库设置】非强制性,TT模板会根据字段的说明生成最后呈现在界面,省去手动编写说明的目的,后面会有说明用法)
CREATE TABLE [dbo].[Spl_Sample]( --Spl_ (必须)
[Id] [varchar](50) primary key, --主键 (必须)
[Name] [varchar](50) NULL, --名称
[Age] [int] NOT NULL, --年龄
[Bir] [datetime] NOT NULL, --生日
[Photo] [varchar](250) NULL, --图片路径
[Note] [text] NULL, --说明
[CreateTime] [datetime] NOT NULL --创建日期(必须)
)
设计好的表格将其加入到EF中
2.生成代码
生成分为两部分【第一部分为TT第二部分为代码生成器】
TT模板
保存了EF之后我们需要让TT模板生成对应的类,分别为:IBLL,BLL,IDAL,DAL,Models及注入的配置
生成的方式很简单,打开TT模板按下保存就可以,会根据EF来生成,生成后无需要操作
(这里特别说明一个数据设置说明的用法,设置后会生成注释,这些属性会带到前端作为显示,非常方便)
代码生成器
1.打开代码生成器
2.选择要生成的表,点击【导出生成】
3.复制到项目中
注:Spl为区域,在建立区域的时候根据表的前缀来建立就好(代码生成器可以生成连表,需要数据体现设置好表的管系)
3.配置
1.运行系统依次打开:【系统权限管理---->人事管理---->模块维护】
注:1.添加成功后后台会自动追加操作码,操作码即Action方法(按钮) 2.紫色框代表操作码,蓝色框代表字段的权限(字段权限与数据库字段对应,在下一步中可以设置角色是否有权限查看及修改该列)
2.添加好URL之后:打开【角色权限设置】为管理员设置权限
3.重新登录看到运行的结果
在结果中,红色标注的说明是我们第一步设置数据字段时候,在数据库设置的说明,很方便,都带过来了!
总结:
约定大于配置,我们按照约定,设置好数据库的表及说明,通过生成器生成一系列的结果! 当生成的代码无法满足业务时,我们只需要依葫芦画瓢,很快就能重载或新建新的处理方法,关注点只在业务层 代码生成器经过几个迭代之后也很聪明,能根据类型生成上传图片或者日期选择框
- Python爬虫股票评论,snowNLP简单分析股民用户情绪
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(十一)SVN服务器进阶
- node服务的监控预警系统架构
- Maven构建项目速度太慢的解决办法
- 分析函数之窗口子句(r4笔记第3天)
- node模块加载层级优化
- 使用ajax方法实现form表单的提交
- 翻译:如何使用CSS实现多行文本的省略号显示
- node中子进程同步输出
- Java开源博客My-Blog之docker容器组件化修改
- 几个行列转换的实用小例子(r4笔记第2天)
- History API与浏览器历史堆栈管理
- node中创建服务进程
- 数据挖掘工程师:如何通过百度地图API抓取建筑物周边位置、房价信息
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Springboot2 整合redis发布订阅 解决订阅多个频道重复代码过多 创建很多bean问题
- 爬虫选择器算法漫谈
- Java 类加载机制及双亲委派模型
- Python函数
- Effective C++条款3 我可以不使用const?
- t想成为微信斗图之王么?你需要这款开源工具的力量!
- 蛋糕被切成了几块
- 偿还技术债(1)-EventBus源码详解
- 两万六千字带你Kotlin入门
- 从源码看 Jetpack(7)-SavedStateHandle源码详解
- 从源码看 Jetpack(6)-ViewModel源码详解
- linux配置c++11编译环境
- Java 多线程编程(聊聊线程池)
- Java 多线程编程(“锁”事碎碎念)
- Spring Cloud Alibaba技术栈(下)