跟我学: 使用 fireasy 搭建 asp.net core 项目系列之二 —— 准备

==== 目录 ====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

相关文章
相关标签/搜索