fireasy 面世都有六個年頭了,至今依舊是默默無聞,知道它的人可能僅限於本人朋友圈內的人士。本人也在寫一本關於如何使用該框架的書籍,但苦於事務繁忙,至今也才寫了一半,可以說最為實用最為核心的部分,仍然還沒有寫出來。思來想去,還是通過博文這種方式,通過一個實例的講解,讓朋友們對 fireasy 有 ...
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 大家庭中的所有組件,接下來的各篇文章里都會有所提及,對此感興趣的朋友請隨時關註博客的更新。