==== 目录 ====

跟我学: 使用 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

跟我学: 使用 fireasy 搭建 asp.net core 项目系列之二 —— 准备的更多相关文章

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

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

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

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

  3. 【已解决】IIS搭建 asp.net core 项目后 其他电脑访问不到资源文件

    IIS搭建asp.net core 项目后,访问不到里面的资源文件(图片等),解决方法如下: 1.检查asp.net core发布文件中的资源文件是不是都放到了wwwroot名称的目录中. 2.检查a ...

  4. ASP.NET CORE系列【一】搭建ASP.NET CORE项目

    为什么要使用 ASP.NET Core? NET Core 刚发布的时候根据介绍就有点心里痒痒,微软的尿性都懂的,新东西bug太多,现在2.0也发布很久了,决定研究一下. ASP.NET Core官方 ...

  5. ASP.NET Core Authentication系列(二)实现认证、登录和注销

    前言 在上一篇文章介绍ASP.NET Core Authentication的三个重要概念,分别是Claim, ClaimsIdentity, ClaimsPrincipal,以及claims-bas ...

  6. ASP.NET Core Authentication系列(四)基于Cookie实现多应用间单点登录(SSO)

    前言 本系列前三篇文章分别从ASP.NET Core认证的三个重要概念,到如何实现最简单的登录.注销和认证,再到如何配置Cookie 选项,来介绍如何使用ASP.NET Core认证.感兴趣的可以了解 ...

  7. Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  8. 在Linux(Ubuntu)下搭建ASP.NET Core环境并运行 继续跨平台

    最新教程:http://www.cnblogs.com/linezero/p/aspnetcoreubuntu.html 无需安装mono,在Linux(Ubuntu)下搭建ASP.NET Core环 ...

  9. ASP.NET CORE 项目搭建(2022 年 3 月版)

    ASP.NET CORE 项目搭建(2022 年 3 月版) 自读 沉淀了多年的技术积累,在 .NET FRAMEWORK 的框架下尝试造过自己的轮子. 摸索着闭门造过 基于 OWIN 服务后端. 摸 ...

随机推荐

  1. Python编写的ARP扫描工具

    源码如下: rom scapy.all import * import threading import argparse import logging import re logging.getLo ...

  2. Effective Java - [2. 创建与销毁对象]

    让对象的创建与销毁在掌控中. Item 1: 使用静态工厂方法而非使用构造函数 public static Boolean valueOf(boolean b) { return b ? Boolea ...

  3. 05 referer头与防盗链

    像上图中的这个效果,当我们在网页里引用站外图片时,常出现这样的情况. ??? 服务器是怎么样知道,这个图片是在站外被引用的呢? 还有在网站的统计结果,统计用户从何而来,如下图 ??? 统计时,是如何得 ...

  4. 浅谈 SOAP

    http://www.ibm.com/developerworks/cn/xml/x-sisoap/ 本文对 SOAP 作了一个初步介绍,给出几个简单示例:接着比较 CORBA,DCOM/COM 与 ...

  5. 程序猿的量化交易之路(27)--Cointrader之PriceData价格数据(14)

    转载须注明出处:http://blog.csdn.net/minimicall?viewmode=contents,http://cloudtrade.top/ PriceData:价格数据.价格数据 ...

  6. JavaScript精粹

    序:好书是需要不断品读的!再读语言精粹,顺便做点笔记. 1.NaN是一个数值,它表示一个不能产生正常结果的运算结果.NaN不等于任何值,包括它自己.检测是否为NaN:  isNaN(number). ...

  7. 【R】R语言生成随机数

    1.概述 作为一种语言进行统计分析,R有一个随机数生成各种统计分布功能的综合性图书馆.R语言可以针对不同的分布,生成该分布下的随机数.其中,有许多常用的个分布可以直接调用.本文简单介绍生成常用分布随机 ...

  8. [2017-09-05]Abp系列——Abp后台作业系统介绍与经验分享

    本系列目录:Abp介绍和经验分享-目录 什么是后台作业系统 后台作业系统即BackgroundJob,从需求上讲,是一套基础设施,允许我们定义一个作业,在未来指定的某个时间去执行. 后台作业的一般场景 ...

  9. UVALive - 4867 —— dp

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  10. sort quick

    package com.demo; import java.util.ArrayList; import java.util.List; public class SearchSort { publi ...