跟我學: 使用 fireasy 搭建 asp.net core 項目系列之一 —— 開篇

来源:https://www.cnblogs.com/fireasy/archive/2019/05/17/10880617.html
-Advertisement-
Play Games

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 大家庭中的所有組件,接下來的各篇文章里都會有所提及,對此感興趣的朋友請隨時關註博客的更新。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 登錄實現 HTML代碼 CSS: PHP: 註冊實現 HTML: CSS: PHP: ...
  • 目錄操作 mkdir 創建目錄 opendir 打開目錄 readdir 讀取打開目錄中的一個文件 scandir 列出指定路徑下的文件和目錄 closedir 關閉目錄 is_dir 判斷是否為目錄 rmdir 刪除非空目錄 讀取目錄中有兩個特殊的文件 . 和 .. 分別代表當前目錄和上一級目錄 ...
  • 在Sqlserver資料庫的字元串操作中,截取字元串是最常見的操作,sql server提供了3個常用截取字元串方法,LEFT()、RIGHT()、SUBSTRING(),如果從第一個字元即最左邊位置開始截取規定長度,則可用Left函數,如果從最後的字元往前截取固定長度則可使用Right函數,SUB ...
  • 在C#程式開發過程中,很多時候可能需要將字元串根據特定的分割字元分割成字元或者List集合,例如根據逗號將字元串分割為數組,或者根據豎線將字元串分割成數組,C#中提供了Split()函數來快速將字元串分割成數組形式,如果需要轉換為List集合,可在分割完成後使用數組的ToList()方法即可轉換為L ...
  • 在ASP.NET開發過程中,安全性是必須要重中之重需要考慮的,其中一種情況是要防止用戶輸入惡意腳本入侵的情況,惡意腳本入侵指的是用戶在提交內容中提交了包含特殊Javascript腳本程式等非法信息,如包含<script></script>等信息。這些腳本信息如果沒有做相應的處理,伺服器將這些內容信息 ...
  • 在C#的編程開發過程中,很多時候涉及到數據類型的轉換,可使用強制轉換的方式,不過強制轉換數據類型有時候會拋出程式異常錯誤,可以使用as關鍵字來進行類型的轉換,如果轉換成功將返迴轉換後的對象,如果轉換不成功則不會拋出異常而是返回NULL。 如將A類型的對象modelA轉換為B類型的對象,可使用下列語句 ...
  • 為了方便查詢系統出錯弄個錯誤日誌出來對於維護運維來說是很有必要的。 1、在Asp.Net MVC項目中的App_Start添加一個用於處理異常類的文件ErrorLog讓他繼承HandleErrorAttribute類並重寫OnException方法 在視圖裡面的shared文件夾下麵加一個Error ...
  • 再winform中使用ProcessCmdKey處理快捷鍵響應,針對單一快捷鍵響應沒有任何問題。但是針對組合鍵總是無法響應,如下: protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, Keys key ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...