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
<https://github.com/faib920/fireasy2>,随它开源的还有一个实例项目zero,
https://github.com/faib920/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 等,有能力的朋友可以自己去扩展
。同时,还提供了语法、架构、批量插入、自增量、记录包装等插件服务。

 


<https://img2018.cnblogs.com/blog/273258/201905/273258-20190517165704054-480994219.png>

 

    三、Fireasy.Data.Entity

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

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

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


<https://img2018.cnblogs.com/blog/273258/201905/273258-20190517142849252-1873408669.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 大家庭中的所有组件,接下来的各篇文章里都会有所提及,对此感兴趣的朋友请随时关注博客的更新。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信