跟我学: 使用 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 等,有能力的朋友可以自己去扩展 。同时,还提供了语法、架构、批量插入、自增量、记录包装等插件服务。

640?wx_fmt=png

    三、Fireasy.Data.Entity

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

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

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

640?wx_fmt=png

   四、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 大家庭中的所有组件,接下来的各篇文章里都会有所提及,对此感兴趣的朋友请随时关注博客的更新。


原文地址:https://www.cnblogs.com/fireasy/p/10880617.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 
640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hdu4609 3-idiots

hdu4609 3-idiots 题意: 给出n个木棍以及它们的长度,求取其中三根长度各不相同的木棍组成三角形的概率 题解: 三角形满足条件: 任意两边之和大于第三边 我们设多项式A(x),其中Cixi(Ci是系数)C_ix^i(C_i…

某谷 P1654 OSU!

某谷 P1654 OSU! 题目背景 原 《产品排序》 参见P2577 题目描述 osu 是一款群众喜闻乐见的休闲软件。 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作…

dotnet pack 打包文件版本号引起 Could not load file or assembly 问题

如果不是遇到,真的不会想到,代码世界的问题真是千奇百怪,这次遇到的是 dotnet pack 打包文件版本号引起的问题。之前进行 nuget 打包都是在 Visual Studio build 时进行,版本号时通过 .csproj 中的 VersionPrefix 指定&#xff0c…

FFT/NTT/FMT/FWT题目

快速傅里叶变换FFT hdu4609 3-idiots P4173 残缺的字符串 Hash Function [AH2017/HNOI2017]礼物 CF993E Nikita and Order Statistics 快速沃尔什变换 FWT BZOJ4589. Hard Nim Tree Cutting HDU - 5909 快速莫比乌斯变换 FMT 快速数论变换 NTT P2000 拯救世界

[Wannafly挑战赛2D-Delete]最短路

[Wannafly挑战赛2D-Delete]最短路 题目描述 给定一张 n 个点,m 条边的带权有向无环图,同时给定起点 S 和终点 T ,一共有 q 个询问,每次询问删掉某个点和所有与它相连的边之后 S 到 T 的最短路,询问之间互相独立(即删…

ASP.NET Core MVC 视图

ASP.NET Core MVC中视图的知识和ASP.NET MVC有很多相似之处,学习难度较低。以下内容主要体现了编程中模块化的思想,模块化才应是我们关注的重点。布局用于提供各个页面所需的公共部分,如:菜单、页头、页尾等。在ASP.NET Core中默认…

CF993E Nikita and Order Statistics

CF993E Nikita and Order Statistics 题意: 给你一个数组 a1∼na_{1 \sim n}a1∼n​,对于 k0∼nk 0 \sim nk0∼n,求出有多少个数组上的区间满足:区间内恰好有 k 个数比 x 小。 x 为一个给定的数。 n≤2105n \le 2 \times 10^5n…

ASP.NET Core 通过 Microsoft.DotNet.Watcher.Tools 实现热部署

之前开发前端的时候,webpack 会有热更新工具,在修改了代码之后,自动将代码编译,实时展现到页面上,给开发带来了极大的方便。Java也可以通过第三方插件JRebel实现热部署,不用频繁的重启Tomcat。微软官方也为…

P3825 [NOI2017]游戏

P3825 [NOI2017]游戏 题目描述 小 L 计划进行n场游戏,每场游戏使用一张地图,小 L 会选择一辆车在该地图上完成游戏。 小 L 的赛车有三辆,分别用大写字母A、B、C表示。地图一共有四种,分别用小写字母x、a、b、c表示。其中&#x…

事关SuperSocket发布,寻找YangFan哥哥

SuperSocket近日发布了2.0的第一个预览版《SuperSocket 2.0 Preview1 发布,.NET Socket服务器框架》,在NuGet上以一个包含数个SuperSocket程序集的大包的形式发布。https://www.nuget.org/packages/SuperSocket/2.0.0-preview1我原意以独立小包的形式发布…

P3321 [SDOI2015]序列统计(未解决)

P3321 [SDOI2015]序列统计 题意: 题解: 参考题解: 题解 P3321 【[SDOI2015]序列统计】 【LG3321】[SDOI2015]序列统计 神仙题。。学透再补 代码:

P1963 [NOI2009]变换序列

题目描述 不想水字,详见某谷:P1963 [NOI2009]变换序列 solution 其实 的计算就类似于环上的距离。 对于每一个 都可能有两种位置选择:, 。 所以把它们分别连边,二分图上匈牙利算法求完美匹配即可。 #include&…

一次 .NET Core 中玩锁的经历:ManualResetEventSlim, SemaphoreSlim

最近同事对 .net core memcached 缓存客户端 EnyimMemcachedCore 进行了高并发下的压力测试,发现在 linux 上高并发下使用 async 异步方法读取缓存数据会出现大量失败的情况,比如在一次测试中,100万次读取缓存,只有12次成功&…

BZOJ4589. Hard Nim

BZOJ4589. Hard Nim 题意: Claris和NanoApe在玩石子游戏,他们有n堆石子,规则如下: Claris和NanoApe两个人轮流拿石子,Claris先拿。每次只能从一堆中取若干个,可将一堆全取走,但不可不取&…

P2825 [HEOI2016/TJOI2016]游戏

题目描述 详见 P2825 [HEOI2016/TJOI2016]游戏。 solution 套路题。 一般思路是行列建点跑二分图最大匹配。 此题中的#会分隔行列,因此我们把每行的极大联通块设为点,列同理建点。 再对于每个*对应的行的极大联通块与列的最大联通块编号连边&…

P3033 [USACO11NOV]牛的障碍Cow Steeplechase

P3033 [USACO11NOV]牛的障碍Cow Steeplechase 题目描述 详见:P3033 [USACO11NOV]牛的障碍Cow Steeplechase solution 裸题。 对于每一对相交的线段,连一条边,表示这一对线段不能都取。 显然这样会建立一个二分图(横的线段不…

Tree Cutting HDU - 5909

Tree Cutting HDU - 5909 题意: 一个无根树,n个点,n-1条边,每个节点有一个权值,一棵树的权值就是其节点(包含本身及其子节点)的权值的异或和;求价值为[0,m)的树有多少颗?(所谓的树其实就是原连…

Redis作者antirez:开源维护者的挣扎

这两天,一篇名为《开源维护者的挣扎》的文章被迅速顶至 Hacker News 首页,这是 Redis 作者 antirez 发布的最新博客。几个月前,一名开源项目的维护者向 antirez 发邮件,倾诉自己苦心维护项目多年,这或多或少带来了一些…

CF662C Binary Table

CF662C Binary Table 题意: 有一个 n 行 m 列的表格,每个元素都是 0/1 ,每次操作可以选择一行或一列,把 0/1 翻转,即把 0 换为 1 ,把 1 换为 0 。请问经过若干次操作后,表格中最少有多少个 1 …

P4111 [HEOI2015]小Z的房间

P4111 [HEOI2015]小Z的房间 题目描述 详见&#xff1a;P4111 [HEOI2015]小Z的房间 solution Matrix-Tree裸题。 题意为求一个有障碍的网格图的生成树个数。 因此对于每一个点向左边和上面的节点连边&#xff0c;Matrix-Tree定理求解生成树个数即可。 #include<bits/s…