.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

成在管理,败在经验;嬴在选择,输在不学!  贵在坚持!

欢迎关注作者头条号 张传宁IT讲堂,获取更多IT文章、视频等优质内容。

   

 个人作品

   

    1、BIMFace.Community.SDK.NET

     开源地址:https://gitee.com/NAlps/BIMFace.SDK

     系列博客:https://www.cnblogs.com/SavionZhang/p/11424431.html

     系列视频:https://www.cnblogs.com/SavionZhang/p/14258393.html

   

    2、ZCN.NET.Common

     开源地址:https://gitee.com/NAlps/zcn.net.common

 技术栈

   

 1、Visual Studio、.C#/.NET、.NET Core、MVC、Web API、RESTful API、gRPC、SignalR、Python

 2、jQuery、Vue.js、Bootstrap

 3、数据库:SQLServer、MySQL、PostgreSQL、Oracle、SQLite、Redis、MongoDB、ElasticSearch、TiDB、达梦DM、人大金仓、 神通、南大通用 GBase、华为 GaussDB 、腾讯 TDSQL 、阿里 PolarDB、蚂蚁金服 OceanBase、东软 OpenBASE、浪潮云溪数据库 ZNBase

 4、ORM:Dapper、Entity Framework、FreeSql、SqlSugar、分库分表、读写分离

 5、架构:领域驱动设计 DDD、ABP

 6、环境:跨平台、Windows、Linux(CentOS、麒麟、统信UOS、深度Linux)、maxOS、IIS、Nginx、Apach

 7、移动App:Android、IOS、HarmonyOS、微信、小程序、快应用、Xamarin、uni-app、MUI、Flutter、Framework7、Cordova、Ionic、React Native、Taro、NutUI、Smobiler

   

 云原生、微服务、Docker、CI/CD、DevOps、K8S;

 Dapr、RabbitMQ、Kafka、分布式、大数据、高并发、负载均衡、中间件、RPC、ELK;

 .NET + Docker + jenkins + Github + Harbor + K8S;

出处:www.cnblogs.com/SavionZhang

作者:张传宁   微软MCP、系统架构设计师、系统集成项目管理工程师、科技部创新工程师。

          专注于微软.NET技术(.NET Core、Web、MVC、WinForm、WPF)、通用权限管理系统、工作流引擎、自动化项目(代码)生成器、SOA 、DDD、 云原生(Docker、微服务、DevOps、CI/CD);PDF、CAD、BIM 审图等研究与应用。

          多次参与电子政务、图书教育、生产制造等企业级大型项目研发与管理工作。

          熟悉中小企业软件开发过程:需求分析、架构设计、编码测试、实施部署、项目管理。通过技术与管理帮助中小企业快速化实现互联网技术全流程解决方案。

         


         

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

如有问题,可以通过邮件905442693@qq.com联系。共同交流、互相学习。

如果您觉得文章对您有帮助,请点击文章右下角【推荐】。您的鼓励是作者持续创作的最大动力!

原文地址:https://www.cnblogs.com/SavionZhang/p/14957289.html