zoukankan      html  css  js  c++  java
  • 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之二 —— 准备

    ==== 目录 ====

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

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

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

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

        一、设计项目结构

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

    项目名称 角色和用途
    Fireasy.Zero.Web asp.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

    作者:黄旭东
    出处:http://fireasy.cnblogs.com
    版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
  • 相关阅读:
    【分享】自己写的一个可空的DateTimePicker控件-附源码
    思达报表工具Style Report基础教程—创建多表关联、多表多列关联的数据块
    思达报表工具Style Report基础教程—通过Mirror,子表和Union将逗号分隔的字段内容处理成多行数据
    思达报表工具Style Report基础教程—创建一个多数据块的联合(Union)、镜像(Mirror)
    思达报表工具Style Report基础教程—在数据块中设置SQL、JS公式列
    思达报表工具Style Report基础教程—数据块
    思达报表工具Style Report基础教程—创建数据源连接
    思达报表工具Style Report基础教程-五步创建一个报表
    java 报表工具技巧--在报表软件Style Report中实现固定行分页分组合计报表
    Java报表软件--如何在报表系统Style Report中制作ABC分析数据图表
  • 原文地址:https://www.cnblogs.com/fireasy/p/10885652.html
Copyright © 2011-2022 走看看