==== 目录 ====

跟我学: 使用 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. WordPress升级出现Briefly unavailable for scheduled maintenance. Check back in a minute.

    WordPress升级出现Briefly unavailable for scheduled maintenance. Check back in a minute.   打开博客时提示: Brief ...

  2. php 整合 微博登录

    现在很多网站都整合了便捷的第三方登录,如QQ登录.新浪微博.搜狐.网易等,为用户提供不少方便和节约时间.我们可以选择使用JS或SDK实现第三方提供用户授权API,本文主要讲解 JAVA SDK 新浪微 ...

  3. 【shell】判断一个变量是否为空

    #!/bin/bash argv=" if [ -z "$argv" ] then echo "argv is empty" else echo &q ...

  4. Ruby 文件 FILE

    FileUtils.makedirs(LOCAL_DIR) unless File.exists?LOCAL_DIR require 'fileutils' Dir.mkdir(DATA_DIR) u ...

  5. Data Structure Binary Tree: Check for Children Sum Property in a Binary Tree

    http://www.geeksforgeeks.org/check-for-children-sum-property-in-a-binary-tree/ #include <iostream ...

  6. OTA升级

    除了云端平台这部分,还要有通讯协议层面.云端和汽车端之间指令的接口和协议的制定,不同车厂会有不同诉求.艾拉比既可以支持车厂私有化定制协议的要求,也可以提供基于OMA标准的协议. 第一,它既是云端的工具 ...

  7. 冷门PHP函数汇总

    概述 整理一些日常生活中基本用不到的PHP函数,也可以说在框架内基本都内置了,无需我们去自行使用的函数.量不多.后续在日常开发中如遇到更多的冷门,会更新本文章 sys_getloadavg 获取系统的 ...

  8. POJ1226 Substrings ——后缀数组 or 暴力+strstr()函数 最长公共子串

    题目链接:https://vjudge.net/problem/POJ-1226 Substrings Time Limit: 1000MS   Memory Limit: 10000K Total ...

  9. 无法定位程序输入点glPopAttrib于动态连结库OPENGL.dll上

    已经下载glut.lib glut32.lib glut.h glut.dll glut32.dll并放到了相应的文件夹中运行程序时还提示说缺少opengl.dll,我又下载了一个opengl.dll ...

  10. RQNOJ 328 炮兵阵地:状压dp

    题目链接:https://www.rqnoj.cn/problem/328 题意: 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队. 一个N*M的地图由N行M列组成(N≤100,M≤10), ...