.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
posted @ 2021-07-01 09:08  张传宁  阅读(3554)  评论(9编辑  收藏  举报
页脚 HTML 代码