==== 目录 ====

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

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

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

fireasy 面世都有六个年头了,至今依旧是默默无闻,知道它的人可能仅限于本人朋友圈内的人士。本人也在写一本关于如何使用该框架的书籍,但苦于事务繁忙,至今也才写了一半,可以说最为实用最为核心的部分,仍然还没有写出来。思来想去,还是通过博文这种方式,通过一个实例的讲解,让朋友们对 fireasy 有个了解吧。

首先,得先说说这个fireasy是用来干嘛的。

fireasy 是一个灵活度比较高的开发框架,它秉承灵活、开放的态度,包容万事万物。它包括 Common、Data、Entity 三个核心类库,集成了 mvc、easyui、redis、mongodb、rabbitmq、nlog、log4net 等框架,使之能够轻松搭建基于 .net framework 或 .net core 的项目。

从面世至今,本人个人及公司的所有项目,均使用 fireasy 进行搭建,可以说无时无刻不在完善和优化。同时呢,fireasy 也发布到了 nuget,对于安装和更新来说绝对是再方便不过了。

在 nuget 里搜索 fireasy 关键词,所有最新的组件都以最新的时间更新于此。

fireasy 是开源的,git 仓库位于 https://github.com/faib920/fireasy2,随它开源的还有一个实例项目zero,https://github.com/faib920/zero,感兴趣的朋友可以前去了解,记得给星哦,希望你随时给本人提出好的建议,如果你和我趣味相投,也欢迎一起维护和完善它。

fireasy 有很多的组件,下面先让大家对它们有个大概的认识。

一、Fireasy.Common

Fireasy.Common 是通用的组件库,通过它可以实现配置、日志、缓存、消息订阅、AOP、IOC、动态/静态编译、json/xml/binary 序列化、加密解密等。Common 中还提供了大量的扩展方法。

这些组件抽象出来的接口,可由外部的第三方进行适配,比如日志组件,可由 NLog、log4net 等来适配,缓存组件,可由 redis、memcached 等来适配。消息订阅组件可由 redis、rabbitMQ 等来适配,只需实现标准的接口抽象,然后通过配置就可以使用了。

AOP 和动态编译贯穿整个 fireasy,为实体框架层提供了很好的解决方案(后面会介绍),IOC 可以与 .net core 相融合。

二、Fireasy.Data

Fireasy.Data 是数据层组件库,IDatabase 为抽象出来的数据库操作接口,通过它可以实现数据库的增、删、改、查等操作,它是通过 IProvider 进行扩展的,目前支持的数据库类型有 sqlite、sqlserver、mysql、oracle、firebird、postgresql 等,有能力的朋友可以自己去扩展 。同时,还提供了语法、架构、批量插入、自增量、记录包装等插件服务。

三、Fireasy.Data.Entity

顾名思义,即实体框架组件库,与 Entity Framework 比较相似,其 linq 语法支持基本上完全一致,对于用过 Entity Framework 的朋友来说,要上手完全不需要什么学习成本。

使用 Fireasy Entity 较之 Entity Framework 有一些明显的好处,比如接近于原生sql的 Insert、Update、Delete语法,实体的按需更新,Select 里复杂的构造,json序列化时对于延迟加载的处理等等,这些都会在以后的实例中一一讲解。

Entity 组件也是基于灵活的接口配置,比如你要引入 mongodb ,只需要配置 MongoDbProvider 即可,业务层没有任何的改变。

四、Fireasy.Web.Mvc

Fireasy.Web.Mvc 为 asp.net mvc 提供了一些底层的支持,比如 json 模型的绑定和序列化、异常处理等等。

五、Fireasy.Web.EasyUI

Fireasy.Web.EasyUI 是 easyui 的扩展库,为 IHtmlHelper 添加扩展方法,同时将实体验证的特性附加到 easyui 中。

六、其他

Fireasy.Redis 为redis 的支持类库,引用该类库后,只要完成 redis 的参数配置,就可以在 fireasy 里使用 redis 作为缓存和消息队列了。

Fireasy.NLog 和 fireasy.log4net 分别为 nlog 和 log4net 提供了适配。

Fireasy.RabbitMQ 为 rabbitmq 提供适配,使 fireasy 能够使用 rabbitmq 来处理消息队列。

Fireasy.MongoDB 使 fireasy 能够使用 mongodb,而不需要改动实体模型及业务层。

Fireasy.WebSockets 作为 websocket 通信的组件,借鉴了 singnalR 的思想,使用 handler 来提供方法进行消息交换。

以上就是 fireasy 大家庭中的所有组件,接下来的各篇文章里都会有所提及,对此感兴趣的朋友请随时关注博客的更新。

==================================相关资源==================================

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 项目实战之权限管理系统(1) 使用AdminLTE搭建前端

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

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

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

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

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

  8. Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL

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

  9. Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现

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

随机推荐

  1. RANDOM 的用法

    random 用法 1.利用RANDOM取随机数 shell有一个环境变量RANDOM,范围是0--32767 如果我们想要产生0-25范围内的数:$(($RANDOM%26),在$(()) 是可以省 ...

  2. javac 编译源文件出现"java:1: 需要为 class、interface 或 enum"、" [javac] 锘縫"错误

    [javac] HelloWorld.java:1: 需要为 class.interface 或 enum [javac] 锘縫ackage com.csdn.demo; [javac] ^ [jav ...

  3. [TroubleShooting]Neither the partner nor the witness server instance for database is availble

    Problem: You are trying to setup a mirroring on a Database called xxxDB(SQL server 2012). You are ge ...

  4. JVM--内存区的划分

    转自:http://www.jianshu.com/p/7ebbe102c1ae Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域. java虚拟机运行时数据区 一. ...

  5. Linux PPTP拨号

    试验环境:Linux marsboard 3.4.90 #9 SMP PREEMPT Thu Mar 3 18:28:43 CST 2016 armv7l armv7l armv7l GNU/Linu ...

  6. JS表自动取值赋值

    /* * * V1.0.0 表单自动取值.赋值插件 * 表单类型:text radio select-one checkbox textarea * 注意项: * 1.表单必须设置name属性 * 调 ...

  7. ls bash: cannot create temp file for here-document: No space left on device

    出现这种问题,一般是磁盘空间满了,或者是inode满了 使用命令: df -h查询磁盘空间 df -i 查询inode占用 Filesystem Inodes IUsed IFree IUse% Mo ...

  8. 05-树8 File Transfer(25 point(s)) 【并查集】

    05-树8 File Transfer(25 point(s)) We have a network of computers and a list of bi-directional connect ...

  9. gcc error - "iostream: No such file or directory"

    #include <iostream> using namespace std; int main(void) { cout<<"Hello World!\n&quo ...

  10. jqueryeasyUI dialog 弹出窗口超出浏览器,导致不能关闭的bug解决方案

    jqueryeasyUI dialog 弹出窗口超出浏览器,导致不能关闭的bug解决方案 2014年8月30日 3233次浏览 相信很多前端朋友都用过jqueryeasyUI,jqueryeasyUI ...