GitHub地址:https://github.com/borisdj/EFCore.BulkExtensions
- Zack.EFCore.Batch【国产、推荐】
Zack.EFCore.Batch是一个支持在Entity Framework Core中高效删除和更新数据的开源库。我们知道,EF Core中不支持高效的删除和更新数据,所有的更新和操作都是逐条数据处理。
组件特性
- 基于实体关系的数据过滤
- 支持数据的批量插入BulkInsert()底层使用各个数据库的BulkCopy机制实现数据插入,因此插入效率非常高。目前有如下两个缺点:不支持关联数据的自动插入,对于关联的对象,请同样调用BulkInsert()进行插入;由于PostgreSQL的.NET Core Provider还没有支持BulkCopy,所以目前Zack.EFCore.Batch暂不支持PostgreSQL,我后面再去想办法解决。
- 支持Take()、Skip()来限制删除和更新数据的范围
- 批量删除和批量更新都支持通过Take()、Skip()来实现部分删除和部分更新。
- 支持多数据库
GitHub地址:https://github.com/yangzhongke/Zack.EFCore.Batch/blob/main/README_CN.md
5、日志组件
- NLog
NLog是一个灵活和免费的日志平台,适用于各种.NET平台,包括.NET Standard。NLog使写入多个目标变得容易(数据库、文件、控制台)并动态更改日志记录配置。
官 网:https://nlog-project.org/?r=redirect
源码下载:https://nlog-project.org/download
- Log4.NET
log4net库是Apache log4j框架在Microsoft.NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。
官 网:http://logging.apache.org/log4net/index.html
开源地址:https://github.com/apache/logging-log4net/
- Serilog
Serilog是.NET应用程序的诊断日志库。它易于设置,具有整洁的API,并在所有最近的.NET平台上运行。尽管它在最简单的应用程序中也很有用,但Serilog对结构化日志的支持在检测复杂、分布式和异步应用程序和系统时也很有用。
开源地址:https://github.com/serilog/serilog
- Exceptionless
【Exceptionless】一词的定义是:无异常。Exceptionless为您的JavaScript、Node、.NET Core、ASP.NET、Web API、WebForms、WPF、控制台和MVC应用程序提供实时错误报告。它将收集到的信息组织成简单的可操作数据,这将帮助你的应用程序变得无异常!
开源地址:https://github.com/exceptionless/Exceptionless
4、Office 操作组件
- NPOI
开源高性能Office操作组件,不依赖Office。可以操作Excel、Word。
开源地址:https://github.com/topics/npoi
https://github.com/dotnetcore/NPOI
- ExcelReport【国产】
ExcelReport是一个Excel模板渲染引擎。 它基于关注点分离的理念,将数据与表格样式、字体格式分离。
其中模板承载的表格样式、字体格式在可视化的情况下编辑。开发人员只需要绑定数据与目标标签的对应关系。ExcelReport就可以以数据驱动的方式渲染出目标报表。
模块组成
ExcelReport家族现在有四个成员。
- ExcelReport负责报表的渲染逻辑。
- ExcelReport.Driver为ExcelReport提供了操作Excel文档的抽象接口。
- ExcelReport.Driver.NPOI是使用NPOI对ExcelReport.Driver的实现。支持xls、xlsx两种格式的Excel文档。
- ExcelReport.Driver.CSV是针对csv格式的Excel文档对ExcelReport.Driver的实现。
Template:模板承载的表格样式、字体格式、占位标签等。
Render:指定模板标签与数据的关系。
Data:注入模板的数据。整个渲染过程也是数据驱动渲染的。
Output:输出文件
开源地址:https://github.com/hanzhaoxin/ExcelReport
- iTextSharp.LGPLv2.Core.Fix
典型应用:.Net Core 使用 itextsharp.lgplv2.core 把Html转PDF https://www.cnblogs.com/ping9719/p/12759848.html
.Net Core 使用 itextsharp.lgplv2.core 生成PDF https://blog.csdn.net/weixin_30737363/article/details/96669770
开源地址:https://github.com/VahidN/iTextSharp.LGPLv2.Core
https://github.com/itext/itextsharp
- DocX
DocX是一个.NET库,允许开发人员以简单直观的方式操作word2007/2010/2013文件。DocX速度快,重量轻,最重要的是它不需要安装microsoftword或Office。
DocX是Xceed Words for.NET的免费开源版本。最初由Cathal Coffey编写,由Przemyslaw Klys维护,现在由Xceed维护。从v1.5.0开始,这个免费的开源产品是根据Xceed社区许可协议提供的(用于非商业用途)。包含以下功能
- 可以将Word文档转换为PDF。
- 添加属性以将文本环绕图片/表格/形状。
- 添加图片裁剪。
- 添加形状(目前为矩形)。
- 添加包含文本的文本框或形状。
- 从段落中获取形状。
- 从段落中获取图表,并可以修改其类别/值。
- 图表配置中的更多属性,如轴标签位置和系列宽度。
- 至少比DocX版本提前了两个版本。
- 订阅中包含专业技术支持。
- 在.NET Standard 2.0上可用于.NET Core 2.0应用程序。
- 可以自动更新文档中的字段。
- 在Word文档中插入html/rtf文本(带标记)或html/rtf文档。
- 克隆列表或表。
- 添加或修改复选框。
- 设置图片透明度。
- 基于引用的超链接创建格式化的超链接。
- 合并2个文档可以在生成的文档中选择doc1、doc2或两者的页眉/页脚。
- 自动断字和可配置断字。
开源地址:https://github.com/xceedsoftware/docx
3、缓存组件
- EasyCaching
EasyCaching是一个开源的缓存库,它包含缓存的基本用法和一些高级用法,可以帮助我们更轻松地处理缓存!
核心功能:
- 统一的抽象缓存接口
- 多种常用的缓存Provider(InMemory,Redis,Memcached,SQLite)
- 为分布式缓存的数据序列化提供了多种选择
- 二级缓存
- 缓存的AOP操作(able, put,evict)
- 多实例支持
- 支持Diagnostics
- Redis的特殊Provider
官 网:https://easycaching.readthedocs.io/en/latest/
GitHub:https://github.com/dotnetcore/EasyCaching