==== 目录 ====html
跟我学: 使用 fireasy 搭建 asp.net core 项目系列之一 —— 开篇git
跟我学: 使用 fireasy 搭建 asp.net core 项目系列之二 —— 准备github
跟我学: 使用 fireasy 搭建 asp.net core 项目系列之三 —— 配置web
上篇对 fireasy 大体做了介绍,接下来的几天里,fireasy 将带领你们一块儿经过实例来学习如何搭建一个小型的项目,以及实现一些系统管理的功能,在此过程当中,会对所使用的技术做一些剖析和分享,但愿你们可以喜欢。数据库
1、设计项目结构mvc
这里主要讲解的是 fireasy 的使用方法,所以对于项目的分层,没有那么多讲究,所以使用了精简至上的原则,采用最简单的方案,数据服务层即业务层。框架
项目名称 | 角色和用途 |
Fireasy.Zero.Web | asp.net core web 项目 |
Firesay.Zero.Models | 数据实体模型,定义ORM的实体类型 |
Fireasy.Zero.Services | 数据服务层,提供数据交互 |
Fireasy.Zero.Infrastructure | 基础设施层 |
Fireasy.Zero.Helpers | 辅助类库 |
2、建立项目asp.net
按照上表中给定的项目,在解决方案里添加各项目,这里除 Fireasy.Zero.Web 以外的项目其余,能够建成 .net standard,也能够建成 .net core,建成 ..net standard 的好处是,不只仅 .net core 能够用,也可使 .net framework 4.5 及如下的框架所使用,因此,若是你还有 asp.net mvc 5 的项目,能够考虑建成 .net standard 类库。数据库设计
按照下图为项目添加 nuget package,同时创建项目之间的引用关系。注,.net core 项目有个好处,互有依赖的包能够只需添加最末的那个,它们之间就会创建依赖关系了,好比 Web 须要添加 Fireasy.Web.Mvc 和 Fireasy.Web.EasyUI 两个包,可是因为 Fireasy.Web.EasyUI 依赖于 Fireasy.Web.Mvc 所以,只需添加后者便可。再好比 Services,它是须要引用 Fireasy.Data.Entity 的,可是它所引用的 Models 已经安装了 Fireasy.Data.Entity 包,所以,它就不须要再安装包了。工具
3、数据库设计
一个系统的权限管理后台是必不可少的,所以我就拿这个例子来讲说,后台权限管理功能包括模块(菜单)管理、机构管理、用户管理、角色管理、权限管理等等。数据表的设计图以下:
各表的含义以下:
表名称 | 含义 |
sys_org | 机构表 |
sys_user | 用户表 |
sys_module | 模块(菜单)表 |
sys_operate | 操做(工具栏菜单)表 |
sys_role | 角色表 |
sys_module_permission | 模块权限表,即角色具备的模块权限 |
sys_operate_permission | 操做权限表,即角色具备的操做权限 |
sys_org_permission | 数据权限表,即角色具备哪些机构的数据查看权限 |
sys_user_role | 用户角色对应表,即用户拥有哪些角色 |
sys_dict_type | 字典类别表 |
sys_dict_item | 字典项表 |
sys_log | 日志表 |
4、生成代码
设计好数据库后,使用代码生成工具生成实体类的代码(这些先说说 DBFirst 模式,后面会介绍 CodeFirlst 模式),这里推荐使用 CodeBuilder 来生成,它能够生成实体类,以及 DbContext ,甚至是 mvc 的 View 和 Controller。
CodeBuilder 的下载地址为 http://www.fireasy.cn/soft/codebuilder/CodeBuilder2setup.exe。
打开 CodeBuilder,配置一个数据源(你的数据源能够是 SqlServer、MySql,也能够是 PowerDesign 的设计文档),而后链接数据源选择要生成的表。在生成代码以前,要设置如下几个参数:
NameMode 是命名规则,通常是使用 Pascal,刚刚数据模型你也看到了,全部表和字段的名称都是小写加下划线的,我但愿生成的代码仍是遵循 Pascal 命名规范,所以只须要将这个 NameMode 设为 Pascal 就好了,若是要沿用原来的命名,则改成 Inherit。
Namespace 是项目的命名空间,是前面一级的,这里设置为 Fireasy.Zero,它会以此为前缀,生成 Models 项目中实体类文件。
ProjectName 和 Author 是在备注中生成项目的名称以及做者。
TableRegex 是对表名的正则替换,若是表名称中有前缀,如 TB_ ,咱们能够把这些前缀去掉,好比如今,全部表都是以 sys 开头,那么咱们能够设 TableRegex 为 sys_ 。
接下来,从模板里选择 T4 Template 中的 Fireasy for C# 模板,最后点生成便可。
这个模板会生成 Models 下的全部实体类文件,以及 DbContext,还有 MVC 下的 View 和 Controller,固然后二者只提供一个参考,具体的业务代码仍是本身动手去实现。你能够本身去写 T4 模板来知足你的生成须要。
生成的文件以下:
将生成的 Models 里的全部文件拷贝到 Fireasy.Zero.Models 项目下,将生成的 Data 目录下的 DbContext 拷贝到 Fireasy.Zero.Services 项目下。MVC 的 View 和 Controller 就不使用了,仅做参考。
好了,准备工做都完成了,接下来就要开始一步一步地来实现业务功能。敬请期待下一篇。
==================================相关资源==================================
fireasy源码: https://github.com/faib920/fireasy2,
zero源码: https://github.com/faib920/zero
代码生成器: http://www.fireasy.cn/soft/codebuilder/CodeBuilder2setup.exe