.NET平台常见技术框架整理汇总

基于.NET平台常用的框架整理

.NET开源框架列表

1.知识网络

2.分类清单

2.1.分布式缓存框架

名称说明地址

Windows Server AppFabric微软自家分布式缓存服务框架, 扩展了 Windows Server 为 Web 应用程序和中间层服务提供增强的托管、管理和缓存功能https://www.microsoft.com/en-us/download/details.aspx?id=27115

Memcahed高性能的分布式内存对象缓存系统。它基于一个存储键/值对的hashmap,通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。http://memcached.org/

Redis使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的APIhttps://redis.io/

NCache基于NGINX的Web服务器构建起来的缓存系统,适用于需要快速部署、大并发量、大存储量的需求http://www.alachisoft.com/ncache/

2.2.应用框架

名称说明地址

ASP.NET Boilerplate基于领域驱动的开源Web开发框架https://www.aspnetboilerplate.com

Orchard国外一个MVC开源的博客系统。 

DasBlog国外一个基于ASP.NET的博客系统 

BlogEngine.NET国外一款免费开源的博客系统。 

Dotnetnuke.NET一套非常优秀的基于ASP.NET的开源门户网站程序。 

Discuz.NET国内开源的论坛社区系统。 

nopCommerce和Aspxcommerce国外一套高质量的开源B2C网站系统。 

DTCMS国内两款开源的网站管理系统 

2.3.日志记录异常处理

名称说明地址

Log4Net轻量级的免费开源.NET日志记录框架。 

Enterprise Library Log Application Black微软企业库日志记录。 

Elmah实现最流行的ASP.NET应用异常日志记录框架。 

NLog简单灵活的日志记录类库,性能比Log4Net高,使用和维护难度低。 

Essential Diagnostics为内置System.Diagnostics 命名空间扩展功能,提供更灵活的日志功能。官网 

Logarymono 和 .Net 平台下高性能、多目标的日志、度量、追踪和健康检查库。支持多目标,为微服务构建。 

StackExchange.ExceptionalStack Exchange 网络使用的错误处理程序。 

Semantic Logging Application Block (SLAB)为内置 System.Diagnostics.Tracing 命名空间(EventSource类)扩展功能,支持将日志记录到多个容器中,包括 Azure 表存储、数据库、文件(JSON、XML、文本文件)。通过 ETW 支持进程内和进程外的日志记录,支持 Rx 进行实时的事件过滤和聚合。 

Exceptionless费开源分布式系统的日志收集框架,它可以应用在基于 ASP.NET,ASP.NET Core,Web Api,Web Forms,WPF,Console,MVC 等技术栈的应用程序中,并且提供了Rest接口可以应用在 Javascript,Node.js 中。 

2.4.NoSQL数据库

名称说明地址

Mongodb分布式文件存储数据库。 

Membase家族的一个新的重量级的成员 

2.5.自动任务调度框架

名称说明地址

Quartz.NET开源的作业调度和自动任务框架。 

Topshelf另一种创建Windows服务的开源框架 

2.6.依赖注入IOC容器框架

名称说明地址

Unity微软patterns&practicest团队开发的IOC依赖注入框架,支持AOP横切关注点。 

MEF(Managed Extensibility Framework)是一个用来扩展.NET应用程序的框架,可开发插件系统。 

Spring.NET依赖注入、面向方面编程(AOP)、数据访问抽象,、以及ASP.NET集成。 

Autofac最流行的依赖注入和IOC框架,轻量且高性能,对项目代码几乎无任何侵入性。 

PostSharp实现静态AOP横切关注点,使用简单,功能强大,对目标拦截的方法无需任何改动。 

Ninject基于.NET轻量级开源的依赖注入IOC框架 

2.7.ORM框架

名称说明地址

EF(ADO.NET Entity Framework)微软基于ADO.NET开发的ORM框架。 

Nhibernate面向.NET环境的轻量级的ORM框架。 

SqlMapper.cs用于小项目的通用的C#数据库访问类。 

AutoMapper流行的对象映射框架,可减少大量硬编码,很小巧灵活,性能表现也可接受。 

SubSonic优秀的开源的ORM映射框架,同时提供符合自身需要的代码生成器。 

FluentData开源的基于Fluent API的链式查询ORM轻量级框架。 

Dapper轻量级高性能基于EMIT生成的ORM框架。 

EmitMapper性能较高的ORM框架,运行时通过EMIT动态生成IL代码,并非采用反射机制。 

2.8.格式和数据类型转换

名称说明地址

Newtonsoft.Json目前.NET开发中最流行的JSON序列化库,为新版的WebApi库提供基础。 

System.JSON.dll微软自己开发的JSON序列化组件(需要单独下载) 

DataContractJsonSerializer 和 DataContractXmlSerializer微软在WCF中使用的序列化器。 

JavaScriptSerializer微软默认针对WEB开发者提供的JSON格式化器。 

iTextSharp、PDFsharp 和 PDF.NET通过.NET处理和生成PDF文档的组件。 

SharpZipLib.dll免费开源的ZIP和GZIP文件解压缩组件。 

Math.NET强大的数学运算、微积分、解方程和科学运算。 

DocX不需要安装word软件,通过C#操作word文件。 

SharpSerializer开源XML和、二进制、JSON、压缩和优化框架。 

2.9.反射和动态语言

名称说明地址

Clay dynamic开源的动态语言dynamic框架让您形如javascript的方式创建对象。 

ExposedObject在类的外部通过动态语言dynamic的方式访问私有成员。 

PrivateObject微软单元测试框架中便捷在外部调用类内部私有成员的一个类。 

2.10.跨平台和运行时解决方案

名称说明地址

MONO.NET跨平台的.NET运行环境,让.NET跨平台运行成为可能。 

DotGnu Portable.NET类似于MONO.NET的跨平台运行时。 

Phalanger将PHP编译成.NET,可实现PHP与.NET互操作。 

VMDotNet中国移动飞信所使用过的.NET运行时。 

Unity3D微软大力支持的机遇C#和JavaScript的跨平台游戏开发框架。 

Cassini、IIS Express和Cassinidev开源的ASP.NET执行环境。 

Katana微软基于OWIN规范实现的非IIS寄宿ASP.NET和MVC等。 

IKVM.NET基于.NET的JAVA虚拟机,让JAVA运行在.NET之上。 

2.11.WEB开发和设计

名称说明地址

Jumony Core基于.NET开发的HTML引擎。 

Microsoft.mshtml.dll、Winista.HtmlParser.dll 和 HtmlAgilityPack.dll解析处理HTML文档的框架。 

JavaScript.NET和ClearScript(微软出品)基于.NET开发的JavaScript引擎。 

NCrawler其HTML处理引擎htmlagilitypack的的开源网络爬虫软件。 

AntiXSS微软官方预防跨站XSS脚本入侵攻击的开源类库,它通过白名单机制进行内容编码。 

YUICompressor.NET、Microsoft Ajax Minifier 和 Google Closure CompilerJavaScrip和CSS压缩器。 

NancyFx是一个不错的轻量级开源.NET WEB框架。如果想快速做个简单的WEB应用。 

AspNetPager国内知名的ASP.NET分页控件,支持多种分页方式。 

NOPI导出Excel报表的插件(基于微软OpenXml实现)(nopi.css.dl通过css设置样式) 

Enterprise Library微软针对企业级应用开发的最佳实践组件。 

PowerCollections国外一个牛人写的高级开源集合。 

2.12.移动互联网和云计算

名称说明地址

PushSharp通过.NET向各种移动平台推送消息。 

mono for android用.NET语言开发安卓应用 

MonoTouch用.NET语言开发IOS应用。 

PhoneGap和AppCan跨平台基于HTML5的移动开发平台。 

CordovaPhoneGap贡献给Apache后的开源项目,是驱动PhoneGap的核心引擎。 

2.13.网络通信和网络协议

名称说明地址

SuperSocket基于.NET轻量级的可扩展的Socket开发框架。 

SuperWebSocket通过.NET实现TML5 WebSocket框架。 

XProxy支持插件的基础代理程序集,内置NAT、加解密、反向、直接和间接代理。 

2.14.图形和图像处理框架

名称说明地址

Paint.NET基于.NET小巧灵活强大的图形处理开源项目。 

Imagemagick.NET用C#对开源图像处理组件Imagemagick的封装。 

Skimpt基于.NET开源的屏幕截图软件。 

ImageGlue.NET商业的图像处理组件,支持的格式列了一大堆。 

Sprite and Image Optimization Framework微软CSS精灵,多图合成一张大图和CSS样式。 

2.15.桌面应用程序框架

名称说明地址

DevExpress一个全球知名的桌面应用程序UI控件库。 

Prism微软开发的针对WPF和Silverlight的MVVM框架,通过功能模块化的思想,来讲复杂的业务功能和UI耦合性进行分离。 

WPFToolkit 和 Fluent Ribbon Control Suite开发类似于Office风格的Ribbon菜单。 

MVVMLight轻量级MVVM框架,适用于WPF和Silverlight 

Caliburn.MIcro针对XML标签语言的MVVM框架,支持智能匹配 

2.16.测试和性能评估

名称说明地址

Faker.Net方便生成大批量测试数据的框架。 

Nunit一个轻量级的单元测试框架。 

Moq非常流行的Mock框架,支持LINQ,灵活且高性能。 

xUnit比NUnit更好的单元测试框架,升级改进版的Nunit框架。 

MiniProfiler和Glimpse基于MVC的两款性能事件监控框架。 

2.17.事务和分布式事务支持

名称说明地址

KtmIntegration一个支持NTFS文件系统的事务开源类。 

NET Transactional File Manager对文件系统操作(复制、移动和删除)加入事务支持。 

2.18.分词、全文检索和搜索引擎

名称说明地址

Lucene.net流行高性能的全文索引库,可用于为各类信息提供强大的搜索功能。 

Lucene.Net.Analysis.PanGu支持Lucene.Net最新版的盘古中文分词扩展库。 

2.19.数据验证组件整理

名称说明地址

FluentValidation for .NET基于LINQ表达式方法链Fluent接口验证组件。 

Microsoft.Practices.EnterpriseLibrary.Validation微软企业库验证程序块。 

CuttingEdge.Conditions基于Fluent接口方法练接口的契约编程组件。 

DotNetOpenAuth让网站具备支持OpenID、OAuth、InfoCard等身份验证的能力。 

2.20.图表统计控件

名称说明地址

Visifire一套效果非常好的WPF图表控件,支持3D绘制、曲线、折线、扇形、环形和梯形。 

SparrowToolkit一套WPF图表控件集,支持绘制动态曲线,可绘制示波器、CPU使用率和波形。 

DynamicDataDisplay微软开源的WPF动态曲线图,线图、气泡图和热力图。 

LiveChartsWPF图表控件库 

2.21.消息队列

名称说明地址

Kafka一种分布式的,基于发布/订阅的消息系统。高吞吐率。支持Kafka Server间的消息分区,及分布式消费。同时支持离线数据处理和实时数据处理。支持在线水平扩展。 

RabbitMQ使用Erlang编写的开源消息队列,支持AMQP,XMPP, SMTP, STOMP等协议。重量级,更适合于企业级的开发。实现了Broker构架,在发送给客户端时先在中心队列排队。对路由,负载均衡或者数据持久化都有很好的支持。 

Redis基于Key-Value对的NoSQL数据库,支持MQ功能,可以当做一个轻量级的队列服务来使用 

ZeroMQ号称最快的消息队列系统,尤其针对大吞吐量的需求场景。ZeroMQ能够实现RabbitMQ不擅长的高级/复杂的队列。ZeroMQ具有一个独特的非中间件的模式,你不需要安装和运行一个消息服务器或中间件,因为你的应用程序将扮演这个服务器角色。仅提供非持久性的队列,如果宕机,数据将会丢失。 

ActiveMQApache下的一个子项目。 类似于ZeroMQ,它能够以代理人和点对点的技术实现队列。同时类似于RabbitMQ,它少量代码就可以高效地实现高级应用场景。 

Kafka/JafkaKafka是Apache下的一个子项目,是一个高性能跨语言分布式发布/订阅消息队列系统,而Jafka是Kafka的一个升级版。快速持久化;高吞吐;完全的分布式系统,自动实现负载均衡;支持Hadoop数据并行加载。 

2.22.人工智能

名称说明地址

AIMLBot基于人工智能标记语言的聊天机器人,小型、快速、兼容标准、易于定制http://aimlbot.sourceforge.net/

SIMLSysthetic Intelligence Markup Language,智能综合标记语言,聊天机器人及数字语音助手https://simlbot.com/

2.23.认证及授权

名称说明地址

ASP.NET Identity用于 ASP.NET 应用程序的新身份系统 

DotNetOpenAuthOpenID、OAuth 和 InfoCard 协议的一个 C# 实现 

IdentityModel.NET 4.5 和 MVC4、Web API 身份和访问控制的辅助库 

IdentityServer可扩展的 OAuth2 和 OpenID 连接提供程序框架。 

OAuth超轻量级 OAuth 1.0a 签名生成库,C# 编写。 

2.24.机器学习和数据科学

名称说明地址

Accord.NET机器学习框架,包含了音频和图像处理的库(计算机视觉、计算机听觉、信号处理和统计)。 

Accord.NET Extensions高级图像处理和计算机视觉算法扩展 

AForge.NET为计算机视觉和人工智能领域的开发者和研究人员提供的框架(包括图像处理、神经网络、遗传算法、机器学习、机器人科学)。 

Deedle处理探索性数据的数据帧和时序库,支持 C# 和 F#。 

FsLab数据科学和机器学习库的集合,支持 F# 和 .NET。 

numl包含最流行的监督学习和无监督学习算法,尽量减少创建预测模型时的冲突。 

你可能感兴趣的:(.NET平台常见技术框架整理汇总)