.net网站内容管理系统(一下我自用的一些冷门的.NET开源库,数量不多)

优采云 发布时间: 2021-11-19 11:02

  .net网站内容管理系统(一下我自用的一些冷门的.NET开源库,数量不多)

  相信大家也看过其他博主推荐的.NET开源库,大家推荐的各有千秋。那么今天小编就给大家推荐一些冷门的.NET开源库供我自己使用。数量并不多,虽然有些喜欢和计数不高,但我个人认为它们是一些非常棒的工具库。本文旨在收录一些冷门的开源库,如AutoMapper、Autofac、epplus、Hangfire等大众熟知的库,这里不收录。

  1.Masuit.Tools

  第一个推荐当然是我自己的开源库,里面集成了大量的各种操作帮助功能,这是我多年编程在坑里的代码积累。我将在任何后续开发中使用它以避免重复。造一些轮子,把重心转移到项目的推进上,几乎什么都可以做,反正现在不在项目里,我写逻辑代码真的很难,因为C#语言有一个不可替代的特性其他语言的:扩展方法,所以项目90%以上的实现都是通过扩展方法实现的,方便直接调用。

  图书馆全网已超过1900+star。

  功能主要包括:

  数据库操作:内存表操作、关系实体映射等;

  常用日期时间运算:农历运算、时间戳运算、时分秒转换等;

  文件操作:大文件操作、文件压缩解压、ini配置文件操作;

  硬件操作:获取计算机各硬件的性能指标;

  html操作:使用C#对html字符串进行“dom”操作,html XSS净化,html标签操作;

  日志组件:高并发、高可用的高性能日志记录;

  多媒体文件操作:图片的各种处理;

  网络操作:获取线程中的唯一对象,Session和Cookie的扩展,获取IP地址的详细信息,缓存操作;

  Nosql:只封装了Redis的常用操作,独立分离了mongodb的操作客户端;

  反射操作:对象的字段属性和方法的各种快捷方式;

  加密安全:字符串的扩展,包括AES、DES、MD5、hash、SHA1、和salt等;

  字符串扩展:包括验证码生成和各种字符串相关的扩展;

  Win32API:收录Windows系统界面相关的操作包;

  全局扩展:包括字符串扩展、类型转换、委托、循环操作、异步操作、正则等。

  项目地址:

  github:/ldqk/Masuit.Tools

  github-org: /XiLife-OSPC/Masuit.Tools

  gitee: /masuit/Masuit.Tools

  2.Masuit.LuceneEFCore.SearchEngine

  本站制作的本地搜索引擎中间件,基于EntityFrameworkCore和Lucene.NET实现的全文搜索搜索引擎,可以轻松实现高性能的全文搜索。它可以轻松应用于任何基于 EntityFrameworkCore 的实体框架数据库。支持加权查询结果,毫秒级响应。

  项目地址:/ldqk/Masuit.LuceneEFCore.SearchEngine

  3.缓存管理器

  一个非常实用的缓存中间件,CacheManager 是一个用 C# 编写的用于 .NET 的开源缓存抽象层。它支持各种缓存提供程序并实现了许多高级功能。

  CacheManager 包的主要目标是让开发人员的生活更轻松,甚至可以处理非常复杂的缓存方案。借助CacheManager,可以实现多层缓存。例如,只需几行代码,就可以在分布式缓存之前执行进程内缓存。

  CacheManager 不仅仅是一个统一各种缓存提供者的编程模型的接口,它会让以后在项目中更改缓存策略变得非常容易。它还提供了其他功能,例如缓存同步、并发更新、序列化、事件、性能计数器……开发人员可以选择仅在需要时添加这些功能。

  项目地址:/MichaCo/CacheManager

  -核

  用于比较两个 HTML 文件/片段并使用简单的 HTML 突出显示差异的库。基于ruby的HTMLDiff库移植到.NET Core。

  使用效果如下:/1664/history/0-3308

  

  项目地址:/罗兰/

  5.IP2Region

  高性能本地IP地理信息查询数据库,离线IP地址定位数据库,准确率99.9%,0.0x毫秒查询,ip2region.db数据库只有几MB ,以及java、php、c、python、nodejs、golang、c#等查询绑定和Binary、B树、内存三种查询算法。

  项目地址:/lionsoul2014/ip2region

  6.MaxMind.GeoIP2

  世界一流的本地IP地理信息查询数据库,支持IPv4和IPv6。免费版支持城市级地理信息查询、经纬度查询、时区信息。目的与上述类似。

  项目地址:/maxmind/GeoIP2-dotnet

  7.Karambolo.AspNetCore.Bundling.NUglify

  还记得.NET Framework时代在cshtml中压缩和绑定静态资源的操作吗?cshtml中只需要@Scripts.Render就可以在生产环境中自动压缩打包配置好的静态资源文件,但是在.NET Core MVC中,这个操作已经被微软放弃了,微软更推荐的方法是配置静态资源文件通过安装Bundle Minifier扩展插件或者nuget包来进行资源捆绑,会生成一个配置文件,但是我个人觉得这个方法确实不方便,所以一直在寻找可以在. NET CoreMVC 可以直接@Scripts.Render。今天终于找到了这么一个组件,发现了.NET Framework时代的@Scripts.Render。

  通过这个nuget包,我们可以在.NET Core MVC中使用@Scripts.Render来引用我们配置好的静态资源包,用法和.NET Framework中基本一致。可以实现js、css、less、scss等静态资源的自动打包和捆绑。

  其实这也是前端性能优化的一个点。将多个文件合并为一个文件,减少了浏览器的请求次数,提高了网站的访问速度。

  项目地址:/trullock/NUglify

  8.OpenXmlPowerTools

  Open XML PowerTools 提供了一个使用 Open XML 文档(DOCX、XLSX 和 PPTX)进行编程的接口。它基于并扩展了 Open XML SDK 的功能。

  它支持以下场景:

  将 DOCX/PPTX 文件拆分为多个文件。

  将多个 DOCX/PPTX 文件合并为一个文件。

  使用 XML 中的数据填充 DOCX 模板中的内容。

  DOCX 以高保真度转换为 HTML/CSS。

  将 HTML/CSS 高保真度转换为 DOCX。

  使用正则表达式搜索和替换 DOCX/PPTX 中的内容。

  管理后续修订,包括检测后续修订和接受后续修订。

  更新 DOCX/PPTX 文件中的图表,包括更新缓存数据和嵌入式 XLSX。

  比较两个 DOCX 文件,生成带有修订跟踪标记的 DOCX,并允许检索修订列表。

  从 DOCX 文件中检索指标,包括使用的样式、使用的语言和使用的字体的层次结构。

  使用比直接编写标记更简单的代码编写 XLSX 文件,包括可以编写数百万行 XLSX 文件的流式方法。

  从电子表格中提取数据(并对其进行格式化)。

  项目地址:/OfficeDev/Open-Xml-PowerTools

  9.SVG

  没错,库的名字是svg。顾名思义,它是一个 svg 图形操作库,通过它可以轻松生成和操作 .NET 中的 svg 图形文件和字节流。

  项目地址:/vvvv/SVG

  10.时区转换器

  用于在 Windows 标准时区和 IANA 和 Rails 时区名称之间快速转换的轻量级帮助库。喜欢:

  string tz = TZConvert.WindowsToIana("Eastern Standard Time");// result: "America/New_York"

  项目地址:/mj1856/TimeZoneConverter

  11.RssSyndication

  RSS订阅接口的C#实现库可以轻松帮你实现RSS订阅接口。

  项目地址:/shawnwildermuth/RssSyndication

  12.Z.EntityFramework.Plus.EFCore

  EF的性能问题一直被人们抱怨。原因是“复杂的操作在SQL生成阶段耗时长,执行效率不高”,但也不是不可能解决。Z.EntityFramework.Plus.EFCore's 是一个三方库,用来解决各种EF性能问题。它由 zzzproject 组织和制作。一定是精品图书馆!DbContext 扩展了必要的功能:包括过滤、缓存、提前查询、批量操作等EF扩展功能。

  项目地址:/zzzprojects/EntityFramework-Plus

  13.SharpCompress

  .NET Standard 2.0、2.1和NET 4.6的纯C#文件压缩操作库,支持unrar, un7zip, unzip, untar unbzip2, ungzip, unlzip,并具有只读读取和文件随机访问 API。实现了对 zip/tar/bzip2/gzip/lzip 的写入支持。

  项目地址:/adamhathcock/sharpcompress

  14.DnsClient

  dnslookup的一个非常高性能的C#实现库,方便在C#代码中对DNS进行各种查询操作。

  项目地址:/MichaCo/DnsClient.NET

  15.HtmlAgilityPack

  HtmlAgilityPack 是 .net 下的 HTML 解析库。支持 XPath 解析 HTML。这个意思不小,为什么呢?因为一些强大的浏览器可以直接获取页面元素的xpath,不需要手动编写。它节省了编写正则表达式的大部分时间。当然,在进一步获取的时候,有时需要写正则表达式,但是通过xpath解析后,要匹配的正则表达式的范围已经很小了。而且,无需使用正则表达式来匹配整个页面的源代码,速度也会有所提高。总而言之,通过这种库,首先通过浏览器获取节点内容,获取xpath,然后使用正则表达式匹配需要的内容,既提高了开发速度,也提高了运行效率。

  项目地址:/zzzprojects/html-agility-pack

  16.HtmlSanitizer

  可用于防止 XSS 攻击的 HTML 净化器。如何让前端用户提交HTML数据不受脚本攻击?HtmlSanitizer 是一个非常好的解决方案:设置一个“标签、属性”的非危险白名单,去掉所有不在白名单中的“标签、属性”。

  项目地址:/mganss/HtmlSanitizer

  17.对象比较器

  一个对象比较器,有时候项目中有两个对象去比较哪些字段不同,而不是简单的相等或者==比较,比较麻烦,自己一个一个判断也很麻烦。ObjectsComparer 就是帮你自动将两个对象中的每个字段一一比较,甚至帮你生成一个差异结果,告诉你一个字段的值从什么变成了什么。

  更复杂对象的情况很常见。有时对象可以收录嵌套元素,或者某些成员应该从比较中排除(自动生成的标识符、创建/更新日期等),或者某些成员可以具有自定义比较规则(相同的数据但不同的格式,例如电话号码) . 这个小框架就是为了解决这些问题而开发的。

  简而言之,对象比较器是一个对象到对象的比较器,它允许以递归方式逐个成员比较对象,并为某些属性、字段或类型定义自定义比较规则。

  项目地址:/ValeraT1982/ObjectsComparer

  18.搜索扩展

  一个简单的本地全文检索中间件,基于IQueryable实现linq to sql,用于简单的全文检索,但性能肯定不如Masuit.LuceneEFCore.SearchEngine。在项目的Choice中简单的满足全文检索的需求已经相当不错了。

  项目地址:/ninjanye/SearchExtensions

  结束语

  我先推荐这么多。如果你有什么好用的冷门开源组件,不妨分享一下!提高生产力,告别996!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线