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

==== 目录 ====

  跟我学: 使用 fireasy 搭建 asp.net core 项目系列之一 —— 开篇

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

  跟我学: 使用 fireasy 搭建 asp.net core 项目系列之三 —— 配置

 

    上篇对 fireasy 大致作了介绍,接下来的几天里,fireasy 将带领大家一起通过实例来学习如何搭建一个小型的项目,以及实现一些系统管理的功能,在此过程中,会对所使用的技术作一些剖析和分享,希望大家能够喜欢。

 

    一、设计项目结构

    这里主要讲解的是 fireasy 的使用方法,因此对于项目的分层,没有那么多讲究,因此使用了精简至上的原则,采用最简单的方案,数据服务层即业务层。

项目名称角色和用途
Fireasy.Zero.Webasp.net core web 项目
Firesay.Zero.Models数据实体模型,定义ORM的实体类型
Fireasy.Zero.Services数据服务层,提供数据交互
Fireasy.Zero.Infrastructure基础设施层
Fireasy.Zero.Helpers辅助类库

                

    二、创建项目

    按照上表中给定的项目,在解决方案里添加各项目,这里除 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 包,因此,它就不需要再安装包了。

 

    三、数据库设计

    一个系统的权限管理后台是必不可少的,因此我就拿这个例子来说说,后台权限管理功能包括模块(菜单)管理、机构管理、用户管理、角色管理、权限管理等等。数据表的设计图如下:

    各表的含义如下:

表名称含义
 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 日志表

 

 

    四、生成代码

    设计好数据库后,使用代码生成工具生成实体类的代码(这些先说说 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值