.NET Core/.NET5/.NET6 开源项目汇总10:实用工具
开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激、尊重。请严格遵守每个项目的开源协议后再使用。尊重知识产权,共建和谐开源社区。
以下开源项目(含组件),从网络搜集,后期会不断补充。
NBomber是一个开源的 .NET 框架,开源协议是Apache 2.0, NBomber 用于对多种服务进行负载测试,包括 Web、消息队列、数据库等。 今年5月份发布了 NBomber 2.0版本。NBomber 类似于JMeter,但是和JMeter 不一样的地方是, NBomber 是通过F#/C#/JSON 代码来表达测试场景。
-
NBomber 背后的主要原因是为编写负载测试提供了一个轻量级框架,您可以使用它来测试任何系统并模拟任何生产工作负载。我们只想提供一些抽象,以便我们可以描述任何类型的负载,并且仍然有一个简单、直观的 API。
-
另一个目标是提供构建块,通过应用任何复杂的负载分布来验证您的 POC(概念验证)项目。
-
使用 NBomber,您可以测试任何 PULL 或 PUSH 系统(HTTP、WebSockets、GraphQl、gRPC、SQL Databse、MongoDb、Redis 等)。
-
使用 NBomber,您可以轻松地将一些集成测试转换为负载测试。
NBomber 作为一个现代框架提供:
-
零依赖协议(HTTP/WebSockets/AMQP/SQL)
-
对语义模型的零依赖(Pull/Push)
-
非常灵活的配置和非常简单的 API (F#/C#/JSON)
-
集群支持
-
实时报告
-
CI/CD 集成
-
数据馈送支持
NBomber的使用 比较简单,跟着入门文档走一遍就学会了 :https://nbomber.com/docs/overview
ConsoleTableExt是在C#控制台应用程序中使用打印格式良好的表的开源库。
功能特性
- 支持框图形字符
- 表对齐(左右和中间)
- 柱对齐(左/右/中)
- 表可以有标题,可以更改文本颜色和标题背景颜色,支持标题对齐(左/右/中)
- 支持power char映射,强大的定制能力
- 包含一些流行的形式,如标记表。。。
- 支持文本格式化程序(包括标题)
- 支持多种数据类型:DataTable、List。。。
- 支持元数据行(放置在表的顶部或底部)
- 柱最小长度
- 支持.NET Framework>=3.5、.NET Core
开源地址:https://github.com/minhhungit/ConsoleTableExt
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
开源地址:https://github.com/dotnetcore/DotnetSpider
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
基于.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
搜集.neter开发常用的功能,运行环境:.net4.7;.netstandard2.0;net5.0;
功能列表
-
通用数据模型
-
树状结构&平铺数据的访问
-
序列化
-
注册表
-
编码和加解密
-
分布式id&分布式流水号
-
校验框架
-
压缩&解压缩
-
验证码生成
-
汉字转拼音
-
Dto和Entity转换之Mapper扩展
-
递归篡改对象的属性值之Modify扩展
-
将Dto属性投影到Entity之ModifyByDto扩展
-
不同数据类型间的转换之To方法
-
随机数
-
对象池
-
基于内存的并发消息队列
-
反射工具
-
主机诊断报告
-
对象深度比对工具
-
网络帮助类
-
单位转换器(B/KB/MS/GB)
-
金额大小写转换
-
枚举类型扩展方法
-
常用扩展方法
开源地址:https://gitee.com/jackletter/DotNetCommon/wikis/
Files 是一个用C#开发的文件管理器,它利用了 Windows 平台的最新功能,包括 Fluent Design、无缝更新和 API,可实现用户期望的性能和生命周期行为。无论您是想简化您的文件体验还是尝试新事物,Files 都是一个一站式解决方案,可帮助您快速浏览文件。
Files 的愿景是使其成为最好的文件管理器,同时保持简单易用。
特点
- Fluent Design
- 多选项卡模式
- 支持7zip
- 支持快速查看
可以从以下两个地方下载:
微软应用商店:https://www.microsoft.com/store/apps/9NGHP3DX8HDX
开源地址:https://github.com/files-community/Files
如果在内网部署一个网站或应用,也只有处于内网之中的其他网络设备才能访问;但如果你想让公网上任何人都可以访问你的内网应用,则必须要采取一些手段,内网穿透在这种背景下应用而生。
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