==== 目錄 ====html
跟我學: 使用 fireasy 搭建 asp.net core 項目系列之一 —— 開篇mysql
跟我學: 使用 fireasy 搭建 asp.net core 項目系列之二 —— 準備git
跟我學: 使用 fireasy 搭建 asp.net core 項目系列之三 —— 配置github
fireasy 面世都有六個年頭了,至今依舊是默默無聞,知道它的人可能僅限於本人朋友圈內的人士。本人也在寫一本關於如何使用該框架的書籍,但苦於事務繁忙,至今也才寫了一半,能夠說最爲實用最爲核心的部分,仍然尚未寫出來。思來想去,仍是經過博文這種方式,經過一個實例的講解,讓朋友們對 fireasy 有個瞭解吧。web
首先,得先說說這個fireasy是用來幹嗎的。redis
fireasy 是一個靈活度比較高的開發框架,它秉承靈活、開放的態度,包容萬事萬物。它包括 Common、Data、Entity 三個核心類庫,集成了 mvc、easyui、redis、mongodb、rabbitmq、nlog、log4net 等框架,使之可以輕鬆搭建基於 .net framework 或 .net core 的項目。sql
從面世至今,本人我的及公司的全部項目,均使用 fireasy 進行搭建,能夠說無時無刻不在完善和優化。同時呢,fireasy 也發佈到了 nuget,對於安裝和更新來講絕對是再方便不過了。mongodb
在 nuget 裏搜索 fireasy 關鍵詞,全部最新的組件都以最新的時間更新於此。數據庫
fireasy 是開源的,git 倉庫位於 https://github.com/faib920/fireasy2,隨它開源的還有一個實例項目zero,https://github.com/faib920/zero,感興趣的朋友能夠前去了解,記得給星哦,但願你隨時給本人提出好的建議,若是你和我趣味相投,也歡迎一塊兒維護和完善它。json
fireasy 有不少的組件,下面先讓你們對它們有個大概的認識。
1、Fireasy.Common
Fireasy.Common 是通用的組件庫,經過它能夠實現配置、日誌、緩存、消息訂閱、AOP、IOC、動態/靜態編譯、json/xml/binary 序列化、加密解密等。Common 中還提供了大量的擴展方法。
這些組件抽象出來的接口,可由外部的第三方進行適配,好比日誌組件,可由 NLog、log4net 等來適配,緩存組件,可由 redis、memcached 等來適配。消息訂閱組件可由 redis、rabbitMQ 等來適配,只需實現標準的接口抽象,而後經過配置就可使用了。
AOP 和動態編譯貫穿整個 fireasy,爲實體框架層提供了很好的解決方案(後面會介紹),IOC 能夠與 .net core 相融合。
2、Fireasy.Data
Fireasy.Data 是數據層組件庫,IDatabase 爲抽象出來的數據庫操做接口,經過它能夠實現數據庫的增、刪、改、查等操做,它是經過 IProvider 進行擴展的,目前支持的數據庫類型有 sqlite、sqlserver、mysql、oracle、firebird、postgresql 等,有能力的朋友能夠本身去擴展 。同時,還提供了語法、架構、批量插入、自增量、記錄包裝等插件服務。
3、Fireasy.Data.Entity
顧名思義,即實體框架組件庫,與 Entity Framework 比較類似,其 linq 語法支持基本上徹底一致,對於用過 Entity Framework 的朋友來講,要上手徹底不須要什麼學習成本。
使用 Fireasy Entity 較之 Entity Framework 有一些明顯的好處,好比接近於原生sql的 Insert、Update、Delete語法,實體的按需更新,Select 裏複雜的構造,json序列化時對於延遲加載的處理等等,這些都會在之後的實例中一一講解。
Entity 組件也是基於靈活的接口配置,好比你要引入 mongodb ,只須要配置 MongoDbProvider 便可,業務層沒有任何的改變。
4、Fireasy.Web.Mvc
Fireasy.Web.Mvc 爲 asp.net mvc 提供了一些底層的支持,好比 json 模型的綁定和序列化、異常處理等等。
5、Fireasy.Web.EasyUI
Fireasy.Web.EasyUI 是 easyui 的擴展庫,爲 IHtmlHelper 添加擴展方法,同時將實體驗證的特性附加到 easyui 中。
6、其餘
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