.NET Core/.NET5/.NET6 開源項目匯總10:實用工具


開源項目是眾多組織與個人分享的組件或項目,作者付出的心血我們是無法體會的,所以首先大家要心存感激、尊重。請嚴格遵守每個項目的開源協議后再使用。尊重知識產權,共建和諧開源社區。

以下開源項目(含組件),從網絡搜集,后期會不斷補充。

9、負載測試/壓力測試工具 NBomber

NBomber是一個開源的 .NET 框架,開源協議是Apache 2.0, NBomber 用於對多種服務進行負載測試,包括 Web、消息隊列、數據庫等。  今年5月份發布了 NBomber 2.0版本。NBomber 類似於JMeter,但是和JMeter 不一樣的地方是, NBomber 是通過F#/C#/JSON 代碼來表達測試場景。

  1. NBomber 背后的主要原因是為編寫負載測試提供了一個輕量級框架,您可以使用它來測試任何系統並模擬任何生產工作負載。我們只想提供一些抽象,以便我們可以描述任何類型的負載,並且仍然有一個簡單、直觀的 API。

  2. 另一個目標是提供構建塊,通過應用任何復雜的負載分布來驗證您的 POC(概念驗證)項目。

  3. 使用 NBomber,您可以測試任何 PULL 或 PUSH 系統(HTTP、WebSockets、GraphQl、gRPC、SQL Databse、MongoDb、Redis 等)。

  4. 使用 NBomber,您可以輕松地將一些集成測試轉換為負載測試

NBomber 作為一個現代框架提供:

  • 零依賴協議(HTTP/WebSockets/AMQP/SQL)

  • 對語義模型的零依賴(Pull/Push)

  • 非常靈活的配置和非常簡單的 API (F#/C#/JSON)

  • 集群支持

  • 實時報告

  • CI/CD 集成

  • 數據饋送支持

NBomber的使用 比較簡單,跟着入門文檔走一遍就學會了 :https://nbomber.com/docs/overview

官網:https://nbomber.com

8、ConsoleTableExt

ConsoleTableExt是在C#控制台應用程序中使用打印格式良好的表的開源庫。

功能特性

  • 支持框圖形字符
  • 表對齊(左右和中間)
  • 柱對齊(左/右/中)
  • 表可以有標題,可以更改文本顏色和標題背景顏色,支持標題對齊(左/右/中)
  • 支持power char映射,強大的定制能力
  • 包含一些流行的形式,如標記表。。。
  • 支持文本格式化程序(包括標題)
  • 支持多種數據類型:DataTable、List。。。
  • 支持元數據行(放置在表的頂部或底部)
  • 柱最小長度
  • 支持.NET Framework>=3.5、.NET Core

開源地址:https://github.com/minhhungit/ConsoleTableExt

7、FluentFTP

FluentFTP 是 C#.NET 下最好用的Ftp傳輸開源庫。它是一個完全管理的FTP和FTPS庫,適用於.NET和.NET Standard,針對速度進行了優化。它提供廣泛的FTP命令、文件上載/下載、SSL/TLS連接、自動目錄列表解析、文件哈希/校驗和、文件權限/CHMOD、FTP代理、FXP傳輸、UTF-8支持、異步/等待支持、Powershell支持等等。

開源地址:https://github.com/robinrodricks/FluentFTP

開發文檔:https://github.com/robinrodricks/FluentFTP/wiki

6、DotnetSpider
DotnetSpider 是C#.NET開發的輕量、靈活、高性能、跨平台的分布式網絡爬蟲框架。可以幫助 .NET 工程師快速的完成爬蟲的開發。整個爬蟲設計是純異步的,利用消息隊列進行各個組件的解耦,若是只需要單機爬蟲則不需要做任何額外的配置,默認使用了一個內存型的消息隊列;若是想要實一個純分布式爬蟲,則需要引入一個消息隊列即可。具體查看官方在線文檔 https://github.com/dotnetcore/DotnetSpider/wiki

開源地址:https://github.com/dotnetcore/DotnetSpider

5、攜程 Apollo

Apollo(阿波羅)是攜程框架部門研發的分布式配置中心,能夠集中化管理應用不同環境、不同集群的配置,配置修改后能夠實時推送到應用端,並且具備規范的權限、流程治理等特性,適用於微服務配置管理場景。

服務端基於Spring Boot和Spring Cloud開發,打包后可以直接運行,不需要額外安裝Tomcat等應用容器。

Java客戶端不依賴任何框架,能夠運行於所有Java運行時環境,同時對Spring/Spring Boot環境也有較好的支持。

.Net客戶端不依賴任何框架,能夠運行於所有.Net運行時環境,參考《.Net客戶端使用指南》

更多產品介紹參見Apollo配置中心介紹

本地快速部署請參見Quick Start

產品特性

  • 統一管理不同環境、不同集群的配置

    • Apollo提供了一個統一界面集中式管理不同環境(environment)、不同集群(cluster)、不同命名空間(namespace)的配置。
    • 同一份代碼部署在不同的集群,可以有不同的配置,比如zk的地址等
    • 通過命名空間(namespace)可以很方便的支持多個不同應用共享同一份配置,同時還允許應用對共享的配置進行覆蓋
    • 配置界面支持多語言(中文,English)
  • 配置修改實時生效(熱發布)

    • 用戶在Apollo修改完配置並發布后,客戶端能實時(1秒)接收到最新的配置,並通知到應用程序。
  • 版本發布管理

    • 所有的配置發布都有版本概念,從而可以方便的支持配置的回滾。
  • 灰度發布

    • 支持配置的灰度發布,比如點了發布后,只對部分應用實例生效,等觀察一段時間沒問題后再推給所有應用實例。
  • 權限管理、發布審核、操作審計

    • 應用和配置的管理都有完善的權限管理機制,對配置的管理還分為了編輯和發布兩個環節,從而減少人為的錯誤。
    • 所有的操作都有審計日志,可以方便的追蹤問題。
  • 客戶端配置信息監控

    • 可以方便的看到配置在被哪些實例使用
  • 提供Java和.Net原生客戶端

    • 提供了Java和.Net的原生客戶端,方便應用集成
    • 支持Spring Placeholder,Annotation和Spring Boot的ConfigurationProperties,方便應用使用(需要Spring 3.1.1+)
    • 同時提供了Http接口,非Java和.Net應用也可以方便的使用
  • 提供開放平台API

    • Apollo自身提供了比較完善的統一配置管理界面,支持多環境、多數據中心配置管理、權限、流程治理等特性。
    • 不過Apollo出於通用性考慮,對配置的修改不會做過多限制,只要符合基本的格式就能夠保存。
    • 在我們的調研中發現,對於有些使用方,它們的配置可能會有比較復雜的格式,如xml, json,需要對格式做校驗。
    • 還有一些使用方如DAL,不僅有特定的格式,而且對輸入的值也需要進行校驗后方可保存,如檢查數據庫、用戶名和密碼是否匹配。
    • 對於這類應用,Apollo支持應用方通過開放接口在Apollo進行配置的修改和發布,並且具備完善的授權和權限控制
  • 部署簡單

    • 配置中心作為基礎服務,可用性要求非常高,這就要求Apollo對外部依賴盡可能地少
    • 目前唯一的外部依賴是MySQL,所以部署非常簡單,只要安裝好Java和MySQL就可以讓Apollo跑起來
    • Apollo還提供了打包腳本,一鍵就可以生成所有需要的安裝包,並且支持自定義運行時參數

Gitee地址:https://gitee.com/lepdou/apollo

4、輕量級配置中心AgileConfig

基於.NetCore開發的輕量級(相對Apollo而言)配置中心,部署簡單、配置簡單,使用簡單,可以根據個人或者公司需求采用。

  • 部署簡答,最少只需要一個數據節點,支持docker部署
  • 支持多節點分布式部署來保證高可用
  • 配置支持按照應用隔離,應用內配置支持分組隔離
  • 使用長鏈接技術,配置信息實時推送到客戶端
  • 支持IConfiguration、IOptions模式讀取配置,原程序幾乎不用改造
  • 配置修改支持版本記錄,隨時回滾配置
  • 所有所有節點都故障,客戶端支持從本地緩存讀取配置

配置完成后即可進入系統

GitHub地址:https://github.com/kklldog/AgileConfig

GitHub中文文檔:https://github.com/kklldog/AgileConfig/blob/master/README_CN.md

開發作者的文章:https://www.cnblogs.com/kklldog/p/agile-config.html

參考博客:https://mp.weixin.qq.com/s/Cah7GgpkDa5XJxfLM_7Z8A

3、DotNetCommon

搜集.neter開發常用的功能,運行環境:.net4.7;.netstandard2.0;net5.0;

功能列表

  1. 通用數據模型

  2. 樹狀結構&平鋪數據的訪問

  3. 序列化

  4. 注冊表

  5. 編碼和加解密

  6. 分布式id&分布式流水號

  7. 校驗框架

  8. 壓縮&解壓縮

  9. 驗證碼生成

  10. 漢字轉拼音

  11. Dto和Entity轉換之Mapper擴展

  12. 遞歸篡改對象的屬性值之Modify擴展

  13. 將Dto屬性投影到Entity之ModifyByDto擴展

  14. 不同數據類型間的轉換之To方法

  15. 隨機數

  16. 對象池

  17. 基於內存的並發消息隊列

  18. 反射工具

  19. 主機診斷報告

  20. 對象深度比對工具

  21. 網絡幫助類

  22. 單位轉換器(B/KB/MS/GB)

  23. 金額大小寫轉換

  24. 枚舉類型擴展方法

  25. 常用擴展方法

開源地址:https://gitee.com/jackletter/DotNetCommon/wikis/

2、Files

Files 是一個用C#開發的文件管理器,它利用了 Windows 平台的最新功能,包括 Fluent Design、無縫更新和 API,可實現用戶期望的性能和生命周期行為。無論您是想簡化您的文件體驗還是嘗試新事物,Files 都是一個一站式解決方案,可幫助您快速瀏覽文件。

Files 的願景是使其成為最好的文件管理器,同時保持簡單易用。

特點

  • Fluent Design 
  • 多選項卡模式
  • 支持7zip
  • 支持快速查看

可以從以下兩個地方下載:

微軟應用商店:https://www.microsoft.com/store/apps/9NGHP3DX8HDX

開源地址:https://github.com/files-community/Files

1、FastTunnel 內網穿透框架

如果在內網部署一個網站或應用,也只有處於內網之中的其他網絡設備才能訪問;但如果你想讓公網上任何人都可以訪問你的內網應用,則必須要采取一些手段,內網穿透在這種背景下應用而生。

FastTunnel是用 .NET Core 開發的一款跨平台內網穿透工具,它可以實現將內網服務暴露到公網供自己或任何人訪問。

  • FastTunnel是一款高性能跨平台內網穿透工具,使用它可以實現將內網服務暴露到公網供自己或任何人訪問。
  • 與其他穿透工具不同的是,FastTunnel 項目致力於打造一個易於擴展、易於維護的內網穿透框架。
  • 你可以通過引用 FastTunnel.Core 的 nuget 包構建出自己的穿透應用,並針自己所需的業務擴展功能。

FastTunnel榮獲開源中國2020最有價值開源項目。

FastTunnel應用場景

  • 家中建站
  • 微信開發
  • 遠程桌面
  • ERP互通
  • SVN代碼倉庫
  • 端口轉發
  • IOT物聯網
  • 其他場景

官網:https://suidao.io
Gitee:https://gitee.com/Hgui/FastTunnel
GitHub::https://github.com/SpringHgui/FastTunnel

 


參考文獻:

  • https://mp.weixin.qq.com/s/sBAYvBqg8aZcAi70_BRFAw
  • https://mp.weixin.qq.com/s/n3uWijjb7KwVHcxFIW1ZTw


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM