程序地带

.Net 优秀的开源框架整理


任务调度
Quartz.NET

Quartz.NET 是一个开源的作业调度框架,是OpenSymphony的Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而 创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。


全文检索
Lucene.Net

Lucene.net是Lucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。开发人员可以基于Lucene.net实现全文检索的功能。


Excel与word处理
NPOI(推荐)

NPOI是POI项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作。


DocX


DocX是一个用来操作word的轻量级的类库。借助DocX,开发人员可以在不需要安装Microsoft Word的情况下操纵word2007/2010文件。


PDFsharp

PDFsharp 是可以轻松地在 .NET 语言中创建PDF文档的开放源码库。它使用相同的绘制程序来创建 PDF 文档,在屏幕上显示,以及输出到打印机。可以修改、合并、拆分已经存在的 PDF 文件,支持透明图像。


ORM(对象关系映射)

ORM框架有很多,下面只介绍常用的。


Dapper(推荐)

Dapper是一个轻型的ORM类。编译后就40K的一个很小的Dll.Dapper很快。Dapper的速度接近IDataReader,取列表的数据超 过了DataTable。Dapper支持Mysql、SqlLite、Mssql2000、Mssql2005、Oracle等一系列的数据库,当然如 果你知道原理也可以让它支持Mongodb。这个ORM十分强悍,至少在性能方面,恐怕.NET里面的大多数ORM只能是望其项背了。


NHibernate

NHibernate是现在开发人员用的较多的一个ORM。NHibernate是一个面向.NET环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。


SqlSugar (推荐)

国内最受欢迎的 ORM 框架,支持.NET CORE 和 MySql、SqlServer、Sqlite、Oracle 、 postgresql 、达梦、人大金仓 数据库,具有EF NH的功能,比EF更人性化的语法,支持真实的批量操作,另外还有媲美DAPPER的性能


Entity Framework

图片


Entity Framework是一种对象关系映射器(O/RM),它使.NET开发人员能够通过.NET对象来操作数据库。它消除了开发人员通常需要编写的大多数数据访问代码的需求。


PetaPoco

PetaPoco是一款适用于.NET应用程序的轻型对象关系映射器(ORM,  Object Relational Mapper)。与那些功能完备的ORM(如NHibernate或Entity Framework)不同的是,PetaPoco更注重易用性和性能,而非丰富的功能。使用PetaPoco只需要引入一个C#文件,可以使用强类型的 POCO(Plain Old CLR Object),并支持使用T4模板生成的类等等。


日志框架
NLOG(推荐)

图片


NLog是一个简单灵活的.NET日志记录类库。通过使用NLog,我们可以在任何一种.NET语言中输出带有上下文的(contextual information)调试诊断信息,根据喜好配置其表现样式之后发送到一个或多个输出目标(target)中。NLog的API非常类似于log4net,且配置方式非常简单。NLog使用路由表(routing table)进行配置,这样就让NLog的配置文件非常容易阅读,并便于今后维护。


log4net

log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。


IOC框架
Autofac

Autofac是一款非常优秀的IOC框架,比较于其他的IOC框架,如Spring.NET,等等之类的,它非常的轻量级且性能上也很卓越。


对象映射工具
AutoMapper
AutoMapper是一个.NET的对象映射工具。主要用于领域对象与DTO之间的转换、数据库查询结果映射至实体对象。
Json序列化工具

Json.NET(Newtonsoft.Json)


Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型 等)和Json的转换。


其他
Topshelf

Topshelf 是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主。使用Topshelf可以非常方便的将一个C#控制台程序部署成为一个Windows Service,使用它可以很方便的构建跨平台服务,而在调试时直接以控制台的形式运行即可,非常方便。


SuperSocket


SuperSocket 是 一个轻量级的可扩展的 Socket 开发框架,可用来构建一个服务器端 Socket 程序,而无需了解如何使用 Socket,如何维护Socket连接,Socket是如何工作的。该项目使用纯 C# 开发,易于扩展和集成到已有的项目。只要你的已有系统是使用.NET开发的,你都能够使用 SuperSocket来轻易的开发出你需要的Socket应用程序来集成到你的现有系统之中。


SharpSerializer


SharpSerializer是一个开源XML和二进制序列化器。SharpSerializer可以序列化Xml和自己的二进制格式,还可以序列化Json等其他文本格式或其他数据加密,压缩,优化等二进制流。


图片


以上都是C#优秀的开源项目,当然还有很多优秀的开源项目小编没有整理到,欢迎补充。


 


图片


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yueyuehe/p/14219153.html

随机推荐

【力扣探索】链表——经典问题

写在前面的提示通过一些测试用例可以节省您的时间使用链表时不易调试。因此,在编写代码之前,自己尝试几个不同的示例来验证您的算法总是很有用的。你可以同时使用多个指针有时...

唉嗳君 阅读(375)

LeetCode 99~105题

第九十九题:/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right...

不能say的秘密 阅读(635)

nginx速成笔记

nginx速成笔记

Nginx(enginex)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler....

黑白翼 阅读(173)

Typescript学习 泛型工具类型

typeof获取一个变量或对象的类型interfacePerson{name:stringage:number}constamin:Person={name:"amin",ag...

aminwangaa 阅读(455)

LeetCode 每日一题 2021-1-8

189.旋转数组难度中等给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。说明:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个...

星河有鱼 阅读(715)

TextView常用属性设置

持续更新…1、动态设置drawableLeft建议使用setCompoundDrawablesWithIntrinsicBounds,这个方法无需设置Drawables的boundsTe...

浮生kk 阅读(653)

2020-12-03

gitcommit报"Changesnotstagedforcommit:"是怎么回事?修改完代码,用gitcommit-m'xxxxxx'命令ÿ...

higaly 阅读(300)