C# 常用三方库

news2024/11/17 7:48:12

C# 第三方库

  • C# 第三方库
    • 日志工具库
    • REST 客户端
    • JSON 处理
    • App.config 文件自定义ConfigSection 的 auto 配置
    • ORM 工具
    • 嵌入数据库
    • 条码/二维码
    • 通讯类组件
      • 串口通讯 https://www.nuget.org/packages/GodSharp.SerialPort/
      • Modbus 通讯组件
      • 西门子通讯组件
      • Fins协议通讯组件,
    • 报表
    • 组件包(winform)
    • Docking 控制组件 (WinForm)
    • Grid 组件(WinForm)
    • Winform 下工控组件包
    • winform 下的 AGauge
    • Chart 组件 , winforms 下使用 scottChart , Blazor 下使用 livechart2 (基于 svg, 美观度要求不高的场景)
    • Redis 客户端 StackExchange.Redis
    • 轻量级的Web 框架 Nancy 和 Nancy.Hosting.Self
    • Winform 下的 RichTextBox 增强
    • Template engine
    • syntax highlight text editor
    • diagram
    • litedb, 嵌入型的mongodb
    • ObjectListView
    • ReoGrid
    • morelinq 和 ZZZ project 提供的 System.Linq.Dynamic
    • Masuit.Tools 工具类包
    • String处理类库
    • ZZZ project 提供的工具类包
    • autoMapper, Model类和DTO/ViewModel类转换工具
    • 最重要的参考项目, git extensions , 可以学到很多东西
    • MiniExcel 和 NPOI 包
    • Spire.XLS 和 Spire.Pdf Excel和PDF 商业组件(国产)
    • 表达式组件
    • Fody 的 ToString
    • Fody 的 NullGaurd
    • Glob 库
    • 混淆器
    • ID 生成算法包 NewId, https://www.nuget.org/packages/NewId
    • 依赖注入框架
    • 分布式MQ

C# 第三方库

基本上选用的都是 https://www.nuget.org 分类中最流行的那个库

日志工具库

NLOG 和 serilog

Stackify.com 简单入门文章 https://stackify.com/nlog-vs-log4net-vs-serilog/

NLog 支持结构化log输出, 下面是两种写法:

#json format log
logger.Info("{@actionDetails}", 
	new {person="harry", action="buy a book", book="Master C# in 21 days"});
#key=value format log 
logger.Info("{actionDetails}", 
	new {person="harry", action="buy a book", book="Master C# in 21 days"});

Nlog 可以直接将日志输出到richtextbox 文本框中, 非常实用.

REST 客户端

RestSharp 和 FlUrl, HttpClient 客户端 https://flurl.dev/

JSON 处理

Newtonsoft.Json

App.config 文件自定义ConfigSection 的 auto 配置

https://github.com/edpollitt/Nerdle.AutoConfig

ORM 工具

Dapper https://dapper-tutorial.net/

嵌入数据库

System.Data.SQLite

条码/二维码

QRCoder 和 ZXing.Net

通讯类组件

串口通讯 https://www.nuget.org/packages/GodSharp.SerialPort/

Modbus 通讯组件

NModbus 包 https://github.com/NModbus/NModbus

西门子通讯组件

Snap7 或者 S7.net https://www.bilibili.com/read/cv27227756/ https://zhuanlan.zhihu.com/p/364106300

Fins协议通讯组件,

.net Framework 类库 https://github.com/ping9719/OmronFinsTCP.Net
.net core 类库 https://github.com/ricado-group/dotnet-omron

报表

FastReport 开源版限制很多, 不能用于Winform项目不能导出PDF, 所以还是推荐使用 FastReport .net 商业版

QuestPDF 是另一个选择, 开源无功能限制, https://www.questpdf.com/

组件包(winform)

澳洲 ComponentFactory 出品的 Krypton , 2006~2014年是商业组件包, 由于销售不佳, 现在已经转为开源, 可见开发工具厂商即使是在澳洲, 也不太好生存.

https://github.com/ComponentFactory/Krypton

这个仓库有nuget 的下载链接, https://github.com/Wagnerp/Krypton-NET-Version-Dashboard

nuget 下载 Wagnerp 发布的, 注意版本 naming rule ,比如 Wagnerp Krypton 版本 5.472 对应的是.Net 4.7.2

Docking 控制组件 (WinForm)

Krypton 包也包含dock panel, 这个 dockpanelsuite 组件包, 这个是 WeifenLuo.WinFormsUI.Docking 后续版本

https://github.com/dockpanelsuite/dockpanelsuite

简单入门: 开源组件 DockPanelSuite使用

Grid 组件(WinForm)

曾经用过 AdvancedDataGridView, 问题很多, 现在使用 objectListView 非常好用.

Winform 下工控组件包

SeeSharpTools 和 HZH_Controls

有一些很实用的通用组件, 更有一些工控类控件,

winform 下的 AGauge

https://www.nuget.org/packages/AGauge_V2/2.0.2

https://github.com/Code-Artist/AGauge

Chart 组件 , winforms 下使用 scottChart , Blazor 下使用 livechart2 (基于 svg, 美观度要求不高的场景)

Redis 客户端 StackExchange.Redis

StackExchange.Redis 是 Stackoverflow 公司开源的, 质量有保证.

轻量级的Web 框架 Nancy 和 Nancy.Hosting.Self

 引入 Nancy 不是开发 Web 应用,  是开发 RPC 服务器,  Nancy 是一个轻量级的Web 框架, Nacy.Hosting.Self 是一个轻量级的Web 服务器.

Winform 下的 RichTextBox 增强

https://www.nuget.org/packages/RichTextBoxEx

Template engine

如需要功能强大的, 可选 scriban, 语法和 Jinja2/Liquid 类似,

https://github.com/lunet-io/scriban

如仅需要基本功能, 可以选用 https://github.com/thomaslevesque/NString , 下面是示例:

//NString模板示例:使用 Dictionary<string, object> 为模板传参,dictionary类型必须是<string,object>
Dictionary<string, object> dict = new Dictionary<string, object>();
dict.Add("Name", "a");
dict.Add("DateOfBirth", "b");
string text = StringTemplate.Format("{Name} was born on {DateOfBirth}", dict, false);
Console.WriteLine(text);

//NString模板示例:使用对象为模板传参
var joe = new { Name = "Joe", DateOfBirth = new DateTime(1980, 6, 22) };
string text2 = StringTemplate.Format("{Name} was born on {DateOfBirth:D}", joe);
Text = text2;
Console.WriteLine(text2); 

syntax highlight text editor

https://github.com/StefH/ICSharpCode.TextEditorEx

diagram

https://github.com/dalssoft/diagramnet

litedb, 嵌入型的mongodb

https://www.litedb.org/

ObjectListView

免费的ListView, 支持treelist, 分组和Master-Detail 呈现

ReoGrid

免费的 spreedsheet 组件, 强大到令人发指, 甚至可以比拟 Excel

morelinq 和 ZZZ project 提供的 System.Linq.Dynamic

Masuit.Tools 工具类包

类似于Java 的 Hutool

String处理类库

NString https://github.com/thomaslevesque/NString

ZZZ project 提供的工具类包

https://github.com/zzzprojects/Z.ExtensionMethods

autoMapper, Model类和DTO/ViewModel类转换工具

最重要的参考项目, git extensions , 可以学到很多东西

MiniExcel 和 NPOI 包

用于 导出Excel

MiniExcel 速度更快,

NPOI 可支持更老的Framework 版本, 参考代码: https://www.thecodebuzz.com/read-and-write-excel-file-in-net-core-using-npoi/

Spire.XLS 和 Spire.Pdf Excel和PDF 商业组件(国产)

表达式组件

.net framework版 表达式计算 Ncalc, https://github.com/ncalc/ncalc

.net core 版表达式组件 https://github.com/mparlak/Flee

zzz project 的 z.expression.eval 收费

Fody 的 ToString

Fody 的 NullGaurd

Glob 库

按照文件名通配符搜索文件 https://www.nuget.org/packages/Glob/

混淆器

ConfuserEx 稳定性好

ID 生成算法包 NewId, https://www.nuget.org/packages/NewId

依赖注入框架

.net framework 下使用 NInject , .net core 使用微软官方即可

分布式MQ

RabbitMQ+EasyNetQ, 使用RabbitMQ作为偏事务型的分布式MQ, 可靠性还是最好的. EasyNetQ 客户端提供了reconnect 等开箱即用的特性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2242038.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【桌面应用程序】Vue-Electron 环境构建、打包与测试(Windows)

前言 Vue 与 Electron 环境构建、打包与测试。 目录 前言 一、基本环境准备 二、配置npm源 三、创建Vue项目 四、添加Electron支持 五、应用启动 ​六、添加UI框架 ElementUI ​七、打包 一、基本环境准备 npm版本&#xff1a;8.6.0node版本&#xff1a;v18.0.0Vue/…

C#获取视频第一帧_腾讯云媒体处理获取视频第一帧

一、 使用步骤&#xff1a; 第一步、腾讯云开启万象 第二步、安装Tencent.QCloud.Cos.Sdk 包 第三步、修改 腾讯云配置 图片存储目录配置 第四步、执行获取图片并保存 二、封装代码 using System.Text; using System.Threading.Tasks;using COSXML.Model.CI; using COSXML.A…

Jav项目实战II基于微信小程序的助农扶贫的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在当前社会…

ffmpeg+D3D实现的MFC音视频播放器,支持录像、截图、音视频播放、码流信息显示等功能

一、简介 本播放器是在vs2019 x86下开发&#xff0c;通过ffmpeg实现拉流解码功能&#xff0c;通过D3D实现视频的渲染功能。截图功能采用libjpeg实现&#xff0c;可以截取jpg图片&#xff0c;图片的默认保存路径是在C:\MYRecPath中。录像功能采用封装好的类Mp4Record实现&#x…

springboot 之 整合springdoc2.6 (swagger 3)

版本 springboot 3.3.5 jdk 17 springdoc 2.6.0 依赖pom <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.6.0</version> </dependency>注解对比…

ADS学习笔记 5. 微带天线设计

基于ADS2023 update2 参考书籍&#xff1a;卢益锋老师《ADS射频电路设计与仿真学习笔记》 更多笔记&#xff1a;ADS学习笔记 1. 功率放大器设计ADS学习笔记 2. 低噪声放大器设计ADS学习笔记 3. 功分器设计ADS学习笔记 4. 微带分支定向耦合器设计 目录 0、设计指标 1、微带…

TypeORM在Node.js中的高级应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 TypeORM在Node.js中的高级应用 TypeORM在Node.js中的高级应用 TypeORM在Node.js中的高级应用 引言 TypeORM 基本概念 1. 实体&am…

【软件测试】一个简单的自动化Java程序编写

文章目录 自动化自动化概念回归测试常见面试题 自动化测试金字塔 Web 自动化测试驱动 Selenium一个简单的自动化示例安装 selenium 库使⽤selenium编写代码 自动化 自动化概念 自动的代替人的行为完成操作。自动化在生活中处处可见 生活中的自动化可以减少人力的消耗&#x…

【云岚到家】-day10-2-冷热处理及统计

【云岚到家】-day10-2-冷热处理及统计 3.7 历史订单3.7.1 冷热分离方案1&#xff09;冷热分离需求2&#xff09;分布式数据库3&#xff09;冷热分离方案 3.7.2 订单同步1&#xff09;创建历史订单数据库2&#xff09;订单同步3&#xff09;测试订单同步4&#xff09;小结 3.7.3…

Python学习------第八天

函数 函数的传入参数 掌握函数返回值的作用 掌握函数返回值的定义语法 函数的嵌套调用&#xff1a; 函数的局部变量和全局变量 局部变量的作用&#xff1a;在函数体内部&#xff0c;临时保存数据&#xff0c;即当函数调用完成后&#xff0c;则销毁局部变量。 money 5000000 n…

新人如何做好项目管理?|京东零售技术人成长

“管理是一种实践&#xff0c;其本质不在于知&#xff0c;而在于行”——彼得德鲁克 作为一名初入职场的校招生&#xff0c;你是否有过这样的疑问&#xff1a;项目经理究竟扮演着怎样的角色&#xff1f;是老板的传声筒&#xff0c;单纯地传达上级的指令&#xff1f;还是团队的…

MySQL社区版的启动与连接

1.启动&#xff1a; 注意&#xff1a;MySQL是默认开机自启的 方式一&#xff1a; 1.WinR 的命令行中直接输入services.msc 2.在服务中找到数据库名称&#xff0c;然后鼠标右键点击启动 方式二&#xff1a; 1.在开始选项中搜索“cmd”命令提示符&#xff0c;使用管理员身份运行 …

FFmpeg 4.3 音视频-多路H265监控录放C++开发十四,总结编码过程,从摄像头获得数据后,转成AVFrame,然后再次转成AVPacket,

也就是将摄像头采集到的YUV 的数据换成 AVFrame&#xff0c;然后再次转成 AVPacket&#xff0c;那么这AVPakcet数据要怎么办呢&#xff1f;分为三种情况&#xff1a; 一种是将AVPacket存储成h264文件&#xff0c;由于h264编码器在将avframe变成avpacket的时候就是按照h264的格…

TCP(下):三次握手四次挥手 动态控制

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持! TCP(上)&#xff1a;成熟可靠的传输层协议-CSDN博客 &#x1f95d;在上篇博客中&#xff0c;我们针对TCP的特性,报文结构,连接过程以及相对于其他协议的区别进行了探讨&#xff0c;提供了初步的理解和概览。本…

24 年第十届数维杯国际数模竞赛赛题浅析

本次万众瞩目的数维杯国际大学生数学建模赛题已正式出炉&#xff0c;无论是赛题难度还是认可度&#xff0c;该比赛都是数模届的独一档&#xff0c;含金量极高&#xff0c;可以用于综测加分、保研、简历添彩等各方面。考虑到大家解题实属不易&#xff0c;为了帮助大家取得好成绩…

菲涅耳全息图

菲涅耳全息图&#xff1a;记录介质在物光波场的菲涅耳衍射区(物体到记录介质表面的距离在菲涅耳衍射区内)。 一、点源全息图的记录和再现 1.1 记录 设物光波和参考光波是从点源O(xo, yo, zo)和点源 R(xr, yr, zr)发出的球面波, 波长为λ1, 全息底片位于z0 的平面上, 与两个点源…

Pygame坦克大战游戏开发实验报告

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

微搭低代码入门05循环

目录 1 for 循环2 while 循环3 do...while 循环4 break 语句5 循环展示组件总结 在编程中&#xff0c;循环是一种非常强大的控制结构&#xff0c;它允许我们重复执行一段代码直到满足某个条件为止。在微搭中&#xff0c;我们一般用循环来处理我们数据库返回的结果。 在微搭中&a…

C++:基于红黑树封装map和set

目录 红黑树的修改 红黑树节点 红黑树结构 红黑树的迭代器 红黑树Insert函数 红黑树的默认成员函数 修改后完整的红黑树 set、map的模拟实现 set map 测试封装的set和map 红黑树的修改 想要用红黑树封装map和set&#xff0c;需要对之前实现的key-value红黑树进行修…

【深度学习基础 | 预备知识】数据预处理

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…