.NET平台常用的框架整理
转载(https://blog.51cto.com/u_14672305/3230079)
分布式缓存框架
Microsoft Velocity:微软自家分布式缓存服务框架。
Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度。
Redis:是一个高性能的KV数据库。 它的出现很大程度补偿了Memcached在某些方面的不足。
EnyimMemcached:访问Memcached最优秀的.NET客户端,集成不错的分布式均衡算法。
CacheManager 用于缓存的管理,支持Redis.Memcached,couchbase等 https://github.com/MichaCo/CacheManager
Redis和数据连接驱动框架
ServiceStack.Redis:https://github.com/ctstone/csredis
StackExchange.Redis:https://stackexchange.github.io/StackExchange.Redis/ReleaseNotes
csredis:https://github.com/ctstone/csredis
MySQL Connector:完全托管的 MySQL ADO.NET 数据库提供程序、连接器
开源的.NET系统推荐
OXITE:微软ASP.NET MVC案例演示框架。
PetShop:微软ASP.Net宠物商店。分层思想的代表。
eShopOnContainers:微服务架构和Docker容器的一个简单的.Net Core的应用。微服务思想代表。
ABP(aspnetboilerplate),提供一系列工具用于web应用创建,支持 ASP.NET Core, ASP.NET MVC & Web API,也提供了web应用的模板。领域驱动思想代表。 https://github.com/aspnetboilerplate/aspnetboilerplate(.net core 版本,tag分支有支持.net版本的)。
Orchard:国外一个MVC开源的博客系统。
SSCLI:微软在NET Framework 2.0时代的开源代码。
DasBlog:国外一个基于ASP.NET的博客系统。
BlogEngine.NET:国外一款免费开源的博客系统。
Dotnetnuke.NET:一套非常优秀的基于ASP.NET的开源门户网站程序。
Discuz.NET:国内开源的论坛社区系统。
nopCommerce和Aspxcommerce:国外一套高质量的开源B2C网站系统。
JumboTCMS和DTCMS:国内两款开源的网站管理系统。
nopCommerce 开源电商网站,开发环境asp.net mvc(支持.net core),使用技术(autofac,ef,页面插件等) https://github.com/nopSolutions/nopCommerce
LightGBM 用于机器学习 https://github.com/Microsoft/LightGBM
IdentityServer,用户授权网站(支持openid和OAuth 2.0),可用于单点登录和第三方授权等
https://github.com/IdentityServer/IdentityServer3(.net版本)
https://github.com/IdentityServer/IdentityServer4(.net core版本)
日志记录异常处理
Log4Net.dll:轻量级的免费开源.NET日志记录框架。
Enterprise Library Log Application Black:微软企业库日志记录。
Elmah:实现最流行的ASP.NET应用异常日志记录框架。
NLog:是一个简单灵活的日志记录类库,性能比Log4Net高,使用和维护难度低。
关于NoSQL数据库
MongoDB:分布式文件存储数据库。
Membase:家族的一个新的重量级的成员。
自动任务调度框架
Quartz.NET:开源的作业调度和自动任务框架。
Topshelf:另一种创建Windows服务的开源框架。
Hangfire 任务调度开发利器 https://github.com/HangfireIO/Hangfire
依赖注入IOC容器框架
Unity:微软patterns&practicest团队开发的IOC依赖注入框架,支持AOP横切关注点。
MEF(Managed Extensibility Framework):是一个用来扩展.NET应用程序的框架,可开发插件系统。
Spring.NET:依赖注入、面向方面编程(AOP)、数据访问抽象,、以及ASP.NET集成。
Autofac:最流行的依赖注入和IOC框架,轻量且高性能,对项目代码几乎无任何侵入性。
PostSharp:实现静态AOP横切关注点,使用简单,功能强大,对目标拦截的方法无需任何改动。
Ninject:基于.NET轻量级开源的依赖注入IOC框架。
常用的几个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代码,并非采用反射机制。
办公系列框架(文档操作)
NPIO:该项目是 .NET 版本的 POI 项目,原始的 Java 版本位于http://poi.apache.org/ 。
DocX:不需要安装word软件,通过C#操作word文件。
Open XML SDK:Open XML SDK 是一个开源库,用于处理 Open XML 文档。
ITextSharp:iText 是一个PDF库,用于创建、修改、检查和维护 (PDF)格式的文档。
格式和数据类型转换
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文件解压缩组件。
DocX:不需要安装word软件,通过C#操作word文件。
SharpSerializer:开源XML和、二进制、JSON、压缩和优化框架。
人工智能与数学框架
Math.NET:强大的数学运算、微积分、解方程和科学运算。
Accord.NET:机器学习框架,包含了音频和图像处理的库(计算机视觉、计算机听觉、信号处理和统计)
语法解析和模板引擎Template Engine
RazorEngine:基于微软 Razor 解析器引擎的开源模板引擎。官网。
Nustache:无逻辑模板的开源库。官网。
DotLiquid:Ruby Liquid 模板语言的 C# 移植版本。
MarkdownSharp:C# 实现的开源 Markdown 处理器,在 Stack Overflow 中使用。
JavaScript.NET和ClearScript(微软出品):基于.NET开发的JavaScript引擎。
ExCSS:C# 的 CSS3 解析器开发库。
HtmlAgilityPack:一个灵活的 HTML 解析器,可以对 DOM 进行读写,支持 XPATH 和 XSLT。
反射和动态语言
Clay dynamic:开源的动态语言dynamic框架让您形如JavaScript的方式创建对象。
ExposedObject:在类的外部通过动态语言dynamic的方式访问私有成员。
PrivateObject:微软单元测试框架中便捷在外部调用类内部私有成员的一个类。
跨平台和运行时解决方案
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之上。
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 Compiler:JavaScrip和CSS压缩器。
NancyFx:是一个不错的轻量级开源.NET WEB框架。如果想快速做个简单的WEB应用。
AspNetPager:国内知名的ASP.NET分页控件,支持多种分页方式。
NOPI.dll:导出Excel报表的插件(基于微软OpenXml实现)(nopi.css.dl通过css设置样式)
Enterprise Library:微软针对企业级应用开发的最佳实践组件。
PowerCollections:国外一个牛人写的高级开源集合。
包管理
NuGet:.NET 包管理器。官网
MyGet:为 NuGet、NPM、Bower 和 VSIX 提供程序包仓库宿主,同样提供 CI 服务。
Paket:.NET 的一个包依赖管理器,支持 NuGet 包和 GitHub 仓库。
移动互联网和云计算
PushSharp:通过.NET向各种移动平台推送消息。
mono for Android:用.NET语言开发安卓应用:
MonoTouch:用.NET语言开发iOS应用。
PhoneGap和AppCan:跨平台基于HTML5的移动开发平台。
Cordova:PhoneGap贡献给Apache后的开源项目,是驱动PhoneGap的核心引擎。
网络通信和网络协议
SuperSocket:基于.NET轻量级的可扩展的Socket开发框架。
SuperWebSocket:通过.NET实现TML5 WebSocket框架。
XProxy:支持插件的基础代理程序集,内置NAT、加解密、反向、直接和间接代理。
websocket-sharp:websocket-sharp是一个C#实现websocket协议客户端和服务端,websocket-sharp支持RFC 6455;WebSocket客户端和服务器;消息压缩扩展;安全连接;HTTP身份验证;查询字符串,起始标题和Cookie;通过HTTP代理服务器连接;.NET Framework 3.5或更高版本(包括兼容环境,如Mono)。
网络通讯框架
SignalR:ASP.NET 库,开发者可以通过它在 web 应用程序中非常简单地实现实时功能。
Helios:一套高性能的Socket通信中间件。
图形和图像处理框架
Paint.NET:基于.NET小巧灵活强大的图形处理开源项目。
Imagemagick.NET:用C#对开源图像处理组件Imagemagick的封装。
Skimpt:基于.NET开源的屏幕截图软件。
ImageGlue.NET:商业的图像处理组件,支持的格式列了一大堆。
Sprite and Image Optimization Framework:微软CSS精灵,多图合成一张大图和CSS样式。
NGraphics:NGraphics 是一个 .NET 跨平台矢量图形渲染。
DynamicImage:高性能开源图片处理库,用于 ASP.NET。
桌面应用程序框架
DevExpress:一个全球知名的桌面应用程序UI控件库。
Prism:微软开发的针对WPF和Silverlight的MVVM框架,通过功能模块化的思想,来讲复杂的业务功能和UI耦合性进行分离。
WPFToolkit 和 Fluent Ribbon Control Suite:开发类似于Office风格的Ribbon菜单。
Netron Diagramming Library:开源图形绘制组件
http://www.csharpopensource.com/netrondiagramminglibrary/
https://sourceforge.net/projects/netron-reloaded/
测试和性能评估方面
Faker.Net:方便生成大批量测试数据的框架。
Nunit:一个轻量级的单元测试框架。
Moq:非常流行的Mock框架,支持LINQ,灵活且高性能。
xUnit:比NUnit更好的单元测试框架,升级改进版的Nunit框架。
MiniProfiler和Glimpse:基于MVC的两款性能事件监控框架。
事务和分布式事务支持
KtmIntegration:一个支持NTFS文件系统的事务开源类。
NET Transactional File Manager:对文件系统操作(复制、移动和删除)加入事务支持。
分词、全文检索和搜索引擎
Lucene.net:流行高性能的全文索引库,可用于为各类信息提供强大的搜索功能。
Lucene.Net.Analysis.PanGu:支持Lucene.Net最新版的盘古中文分词扩展库。
ElasticSearch:http://nest.azurewebsites.net/
数据验证组件整理
FluentValidation for .NET:基于LINQ表达式方法链Fluent接口验证组件。
Microsoft.Practices.EnterpriseLibrary.Validation.dll:微软企业库验证程序块。
CuttingEdge.Conditions:基于Fluent接口方法练接口的契约编程组件。
DotNetOpenAuth:让网站具备支持OpenID、OAuth、InfoCard等身份验证的能力。
开源图表统计控件
Visifire:一套效果非常好的WPF图表控件,支持3D绘制、曲线、折线、扇形、环形和梯形。
SparrowToolkit:一套WPF图表控件集,支持绘制动态曲线,可绘制示波器、CPU使用率和波形。
DynamicDataDisplay:微软开源的WPF动态曲线图,线图、气泡图和热力图。
安全性框架
OAuth:超轻量级 OAuth 1.0a 签名生成库,C# 编写
ASP.NET Identity:用于 ASP.NET 应用程序的新身份系统。
IdentityServer:可扩展的 OAuth2 和 OpenID 连接提供程序框架
HashLib:HashLib 包含了几乎所有你见过的哈希算法,它几乎支持所有东西并且非常容易使用
编译器和IDE框架
ILSpy:ILSpy 是一个开源的 .NET 程序集查看器和反编译器
Visual Studio Code:非常棒的编辑器,来自微软,基于 GitHub Atom
MSBuild也是一个MIT License的开源软件,可以在Github上看到它的 仓库。
Visual Studio 插件
Resharper:Visual Studio 开发人员生产力工具
打包发布和自动构建持续集成和升级框架
Wix Toolset:强大的工具集,用于创建你自己的 Windows 安装程序
Squirrel:Squirrel 即是一套工具也是一个类库,可以无安全管理 Windows 桌面程序的安装和更新
MSBuild:微软构建引擎(MSBuild)是 .NET 和 Visual Studio 的构建平台
Psake:基于 .NET 的自动化构建工具,使用 PowerShell 编写
中间件与消息队列
RabbitMQ
RabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正因如此,它非常重量级,更适合于企业级的开发。同时实现了Broker构架,这意味着消息在发送给客户端时先在中心队列排队。对路由,负载均衡或者数据持久化都有很好的支持。
MassTransit 可用于创建基于消息的服务和应用,依赖于RabbitMQ https://github.com/MassTransit/MassTransit
Redis
Redis是一个基于Key-Value对的NoSQL数据库,开发维护很活跃。虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间。测试数据分为128Bytes、512Bytes、1K和10K四个不同大小的数据。实验表明:入队时,当数据比较小时Redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis。
ZeroMQ
ZeroMQ号称最快的消息队列系统,尤其针对大吞吐量的需求场景。ZeroMQ能够实现RabbitMQ不擅长的高级/复杂的队列,但是开发人员需要自己组合多种技术框架,技术上的复杂度是对这MQ能够应用成功的挑战。ZeroMQ具有一个独特的非中间件的模式,你不需要安装和运行一个消息服务器或中间件,因为你的应用程序将扮演这个服务器角色。你只需要简单的引用ZeroMQ程序库,可以使用NuGet安装,然后你就可以愉快的在应用程序之间发送消息了。但是ZeroMQ仅提供非持久性的队列,也就是说如果宕机,数据将会丢失。其中,Twitter的Storm 0.9.0以前的版本中默认使用ZeroMQ作为数据流的传输(Storm从0.9版本开始同时支持ZeroMQ和Netty作为传输模块)。
ActiveMQ
ActiveMQ是Apache下的一个子项目。 类似于ZeroMQ,它能够以代理人和点对点的技术实现队列。同时类似于RabbitMQ,它少量代码就可以高效地实现高级应用场景。
Kafka/Jafka
Kafka是Apache下的一个子项目,是一个高性能跨语言分布式发布/订阅消息队列系统,而Jafka是在Kafka之上孵化而来的,即Kafka的一个升级版。具有以下特性:快速持久化,可以在O(1)的系统开销下进行消息持久化;高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统,Broker、Producer、Consumer都原生自动支持分布式,自动实现负载均衡;支持Hadoop数据并行加载,对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka通过Hadoop的并行加载机制统一了在线和离线的消息处理。Apache Kafka相对于ActiveMQ是一个非常轻量级的消息系统,除了性能非常好之外,还是一个工作良好的分布式系统。
·
个人作品
1、BIMFace.Community.SDK.NET
开源地址:https://gitee.com/NAlps/BIMFace.SDK·
·
2、ZCN.NET.Common
开源地址:https://gitee.com/NAlps/zcn.net.common
技术栈
1、Visual Studio、.C#/.NET、.NET Core、MVC、Web API、RESTful API、gRPC、SignalR、Python
2、jQuery、Vue.js、Bootstrap
3、数据库:SQLServer、MySQL、PostgreSQL、Oracle、SQLite、Redis、MongoDB、ElasticSearch、TiDB、达梦DM、人大金仓、 神通、南大通用 GBase、华为 GaussDB 、腾讯 TDSQL 、阿里 PolarDB、蚂蚁金服 OceanBase、东软 OpenBASE、浪潮云溪数据库 ZNBase
4、ORM:Dapper、Entity Framework、FreeSql、SqlSugar、分库分表、读写分离
5、架构:领域驱动设计 DDD、ABP
6、环境:跨平台、Windows、Linux(CentOS、麒麟、统信UOS、深度Linux)、maxOS、IIS、Nginx、Apach
7、移动App:Android、IOS、HarmonyOS、微信、小程序、快应用、Xamarin、uni-app、MUI、Flutter、Framework7、Cordova、Ionic、React Native、Taro、NutUI、Smobiler
云原生、微服务、Docker、CI/CD、DevOps、K8S;
Dapr、RabbitMQ、Kafka、分布式、大数据、高并发、负载均衡、中间件、RPC、ELK;
.NET + Docker + jenkins + Github + Harbor + K8S;·
·
作者:张传宁 微软MCP、系统架构设计师、系统集成项目管理工程师、科技部创新工程师。
专注于微软.NET技术(.NET Core、Web、MVC、WinForm、WPF)、通用权限管理系统、工作流引擎、自动化项目(代码)生成器、SOA 、DDD、 云原生(Docker、微服务、DevOps、CI/CD);PDF、CAD、BIM 审图等研究与应用。
多次参与电子政务、图书教育、生产制造等企业级大型项目研发与管理工作。
熟悉中小企业软件开发过程:需求分析、架构设计、编码测试、实施部署、项目管理。通过技术与管理帮助中小企业快速化实现互联网技术全流程解决方案。
本文版权归作者·有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。·
·
分布式缓存框架
Microsoft Velocity:微软自家分布式缓存服务框架。
Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度。
Redis:是一个高性能的KV数据库。 它的出现很大程度补偿了Memcached在某些方面的不足。
EnyimMemcached:访问Memcached最优秀的.NET客户端,集成不错的分布式均衡算法。
CacheManager 用于缓存的管理,支持Redis.Memcached,couchbase等 https://github.com/MichaCo/CacheManager
Redis和数据连接驱动框架
ServiceStack.Redis:https://github.com/ctstone/csredis
StackExchange.Redis:https://stackexchange.github.io/StackExchange.Redis/ReleaseNotes
csredis:https://github.com/ctstone/csredis
MySQL Connector:完全托管的 MySQL ADO.NET 数据库提供程序、连接器
开源的.NET系统推荐
OXITE:微软ASP.NET MVC案例演示框架。
PetShop:微软ASP.Net宠物商店。分层思想的代表。
eShopOnContainers:微服务架构和Docker容器的一个简单的.Net Core的应用。微服务思想代表。
ABP(aspnetboilerplate),提供一系列工具用于web应用创建,支持 ASP.NET Core, ASP.NET MVC & Web API,也提供了web应用的模板。领域驱动思想代表。 https://github.com/aspnetboilerplate/aspnetboilerplate(.net core 版本,tag分支有支持.net版本的)。
Orchard:国外一个MVC开源的博客系统。
SSCLI:微软在NET Framework 2.0时代的开源代码。
DasBlog:国外一个基于ASP.NET的博客系统。
BlogEngine.NET:国外一款免费开源的博客系统。
Dotnetnuke.NET:一套非常优秀的基于ASP.NET的开源门户网站程序。
Discuz.NET:国内开源的论坛社区系统。
nopCommerce和Aspxcommerce:国外一套高质量的开源B2C网站系统。
JumboTCMS和DTCMS:国内两款开源的网站管理系统。
nopCommerce 开源电商网站,开发环境asp.net mvc(支持.net core),使用技术(autofac,ef,页面插件等) https://github.com/nopSolutions/nopCommerce
LightGBM 用于机器学习 https://github.com/Microsoft/LightGBM
IdentityServer,用户授权网站(支持openid和OAuth 2.0),可用于单点登录和第三方授权等
https://github.com/IdentityServer/IdentityServer3(.net版本)
https://github.com/IdentityServer/IdentityServer4(.net core版本)
日志记录异常处理
Log4Net.dll:轻量级的免费开源.NET日志记录框架。
Enterprise Library Log Application Black:微软企业库日志记录。
Elmah:实现最流行的ASP.NET应用异常日志记录框架。
NLog:是一个简单灵活的日志记录类库,性能比Log4Net高,使用和维护难度低。
关于NoSQL数据库
MongoDB:分布式文件存储数据库。
Membase:家族的一个新的重量级的成员。
自动任务调度框架
Quartz.NET:开源的作业调度和自动任务框架。
Topshelf:另一种创建Windows服务的开源框架。
Hangfire 任务调度开发利器 https://github.com/HangfireIO/Hangfire
依赖注入IOC容器框架
Unity:微软patterns&practicest团队开发的IOC依赖注入框架,支持AOP横切关注点。
MEF(Managed Extensibility Framework):是一个用来扩展.NET应用程序的框架,可开发插件系统。
Spring.NET:依赖注入、面向方面编程(AOP)、数据访问抽象,、以及ASP.NET集成。
Autofac:最流行的依赖注入和IOC框架,轻量且高性能,对项目代码几乎无任何侵入性。
PostSharp:实现静态AOP横切关注点,使用简单,功能强大,对目标拦截的方法无需任何改动。
Ninject:基于.NET轻量级开源的依赖注入IOC框架。
常用的几个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代码,并非采用反射机制。
办公系列框架(文档操作)
NPIO:该项目是 .NET 版本的 POI 项目,原始的 Java 版本位于http://poi.apache.org/ 。
DocX:不需要安装word软件,通过C#操作word文件。
Open XML SDK:Open XML SDK 是一个开源库,用于处理 Open XML 文档。
ITextSharp:iText 是一个PDF库,用于创建、修改、检查和维护 (PDF)格式的文档。
格式和数据类型转换
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文件解压缩组件。
DocX:不需要安装word软件,通过C#操作word文件。
SharpSerializer:开源XML和、二进制、JSON、压缩和优化框架。
人工智能与数学框架
Math.NET:强大的数学运算、微积分、解方程和科学运算。
Accord.NET:机器学习框架,包含了音频和图像处理的库(计算机视觉、计算机听觉、信号处理和统计)
语法解析和模板引擎Template Engine
RazorEngine:基于微软 Razor 解析器引擎的开源模板引擎。官网。
Nustache:无逻辑模板的开源库。官网。
DotLiquid:Ruby Liquid 模板语言的 C# 移植版本。
MarkdownSharp:C# 实现的开源 Markdown 处理器,在 Stack Overflow 中使用。
JavaScript.NET和ClearScript(微软出品):基于.NET开发的JavaScript引擎。
ExCSS:C# 的 CSS3 解析器开发库。
HtmlAgilityPack:一个灵活的 HTML 解析器,可以对 DOM 进行读写,支持 XPATH 和 XSLT。
反射和动态语言
Clay dynamic:开源的动态语言dynamic框架让您形如JavaScript的方式创建对象。
ExposedObject:在类的外部通过动态语言dynamic的方式访问私有成员。
PrivateObject:微软单元测试框架中便捷在外部调用类内部私有成员的一个类。
跨平台和运行时解决方案
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之上。
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 Compiler:JavaScrip和CSS压缩器。
NancyFx:是一个不错的轻量级开源.NET WEB框架。如果想快速做个简单的WEB应用。
AspNetPager:国内知名的ASP.NET分页控件,支持多种分页方式。
NOPI.dll:导出Excel报表的插件(基于微软OpenXml实现)(nopi.css.dl通过css设置样式)
Enterprise Library:微软针对企业级应用开发的最佳实践组件。
PowerCollections:国外一个牛人写的高级开源集合。
包管理
NuGet:.NET 包管理器。官网
MyGet:为 NuGet、NPM、Bower 和 VSIX 提供程序包仓库宿主,同样提供 CI 服务。
Paket:.NET 的一个包依赖管理器,支持 NuGet 包和 GitHub 仓库。
移动互联网和云计算
PushSharp:通过.NET向各种移动平台推送消息。
mono for Android:用.NET语言开发安卓应用:
MonoTouch:用.NET语言开发iOS应用。
PhoneGap和AppCan:跨平台基于HTML5的移动开发平台。
Cordova:PhoneGap贡献给Apache后的开源项目,是驱动PhoneGap的核心引擎。
网络通信和网络协议
SuperSocket:基于.NET轻量级的可扩展的Socket开发框架。
SuperWebSocket:通过.NET实现TML5 WebSocket框架。
XProxy:支持插件的基础代理程序集,内置NAT、加解密、反向、直接和间接代理。
websocket-sharp:websocket-sharp是一个C#实现websocket协议客户端和服务端,websocket-sharp支持RFC 6455;WebSocket客户端和服务器;消息压缩扩展;安全连接;HTTP身份验证;查询字符串,起始标题和Cookie;通过HTTP代理服务器连接;.NET Framework 3.5或更高版本(包括兼容环境,如Mono)。
网络通讯框架
SignalR:ASP.NET 库,开发者可以通过它在 web 应用程序中非常简单地实现实时功能。
Helios:一套高性能的Socket通信中间件。
图形和图像处理框架
Paint.NET:基于.NET小巧灵活强大的图形处理开源项目。
Imagemagick.NET:用C#对开源图像处理组件Imagemagick的封装。
Skimpt:基于.NET开源的屏幕截图软件。
ImageGlue.NET:商业的图像处理组件,支持的格式列了一大堆。
Sprite and Image Optimization Framework:微软CSS精灵,多图合成一张大图和CSS样式。
NGraphics:NGraphics 是一个 .NET 跨平台矢量图形渲染。
DynamicImage:高性能开源图片处理库,用于 ASP.NET。
桌面应用程序框架
DevExpress:一个全球知名的桌面应用程序UI控件库。
Prism:微软开发的针对WPF和Silverlight的MVVM框架,通过功能模块化的思想,来讲复杂的业务功能和UI耦合性进行分离。
WPFToolkit 和 Fluent Ribbon Control Suite:开发类似于Office风格的Ribbon菜单。
Netron Diagramming Library:开源图形绘制组件
http://www.csharpopensource.com/netrondiagramminglibrary/
https://sourceforge.net/projects/netron-reloaded/
测试和性能评估方面
Faker.Net:方便生成大批量测试数据的框架。
Nunit:一个轻量级的单元测试框架。
Moq:非常流行的Mock框架,支持LINQ,灵活且高性能。
xUnit:比NUnit更好的单元测试框架,升级改进版的Nunit框架。
MiniProfiler和Glimpse:基于MVC的两款性能事件监控框架。
事务和分布式事务支持
KtmIntegration:一个支持NTFS文件系统的事务开源类。
NET Transactional File Manager:对文件系统操作(复制、移动和删除)加入事务支持。
分词、全文检索和搜索引擎
Lucene.net:流行高性能的全文索引库,可用于为各类信息提供强大的搜索功能。
Lucene.Net.Analysis.PanGu:支持Lucene.Net最新版的盘古中文分词扩展库。
ElasticSearch:http://nest.azurewebsites.net/
数据验证组件整理
FluentValidation for .NET:基于LINQ表达式方法链Fluent接口验证组件。
Microsoft.Practices.EnterpriseLibrary.Validation.dll:微软企业库验证程序块。
CuttingEdge.Conditions:基于Fluent接口方法练接口的契约编程组件。
DotNetOpenAuth:让网站具备支持OpenID、OAuth、InfoCard等身份验证的能力。
开源图表统计控件
Visifire:一套效果非常好的WPF图表控件,支持3D绘制、曲线、折线、扇形、环形和梯形。
SparrowToolkit:一套WPF图表控件集,支持绘制动态曲线,可绘制示波器、CPU使用率和波形。
DynamicDataDisplay:微软开源的WPF动态曲线图,线图、气泡图和热力图。
安全性框架
OAuth:超轻量级 OAuth 1.0a 签名生成库,C# 编写
ASP.NET Identity:用于 ASP.NET 应用程序的新身份系统。
IdentityServer:可扩展的 OAuth2 和 OpenID 连接提供程序框架
HashLib:HashLib 包含了几乎所有你见过的哈希算法,它几乎支持所有东西并且非常容易使用
编译器和IDE框架
ILSpy:ILSpy 是一个开源的 .NET 程序集查看器和反编译器
Visual Studio Code:非常棒的编辑器,来自微软,基于 GitHub Atom
MSBuild也是一个MIT License的开源软件,可以在Github上看到它的 仓库。
Visual Studio 插件
Resharper:Visual Studio 开发人员生产力工具
打包发布和自动构建持续集成和升级框架
Wix Toolset:强大的工具集,用于创建你自己的 Windows 安装程序
Squirrel:Squirrel 即是一套工具也是一个类库,可以无安全管理 Windows 桌面程序的安装和更新
MSBuild:微软构建引擎(MSBuild)是 .NET 和 Visual Studio 的构建平台
Psake:基于 .NET 的自动化构建工具,使用 PowerShell 编写
中间件与消息队列
RabbitMQ
RabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正因如此,它非常重量级,更适合于企业级的开发。同时实现了Broker构架,这意味着消息在发送给客户端时先在中心队列排队。对路由,负载均衡或者数据持久化都有很好的支持。
MassTransit 可用于创建基于消息的服务和应用,依赖于RabbitMQ https://github.com/MassTransit/MassTransit
Redis
Redis是一个基于Key-Value对的NoSQL数据库,开发维护很活跃。虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间。测试数据分为128Bytes、512Bytes、1K和10K四个不同大小的数据。实验表明:入队时,当数据比较小时Redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis。
ZeroMQ
ZeroMQ号称最快的消息队列系统,尤其针对大吞吐量的需求场景。ZeroMQ能够实现RabbitMQ不擅长的高级/复杂的队列,但是开发人员需要自己组合多种技术框架,技术上的复杂度是对这MQ能够应用成功的挑战。ZeroMQ具有一个独特的非中间件的模式,你不需要安装和运行一个消息服务器或中间件,因为你的应用程序将扮演这个服务器角色。你只需要简单的引用ZeroMQ程序库,可以使用NuGet安装,然后你就可以愉快的在应用程序之间发送消息了。但是ZeroMQ仅提供非持久性的队列,也就是说如果宕机,数据将会丢失。其中,Twitter的Storm 0.9.0以前的版本中默认使用ZeroMQ作为数据流的传输(Storm从0.9版本开始同时支持ZeroMQ和Netty作为传输模块)。
ActiveMQ
ActiveMQ是Apache下的一个子项目。 类似于ZeroMQ,它能够以代理人和点对点的技术实现队列。同时类似于RabbitMQ,它少量代码就可以高效地实现高级应用场景。
Kafka/Jafka
Kafka是Apache下的一个子项目,是一个高性能跨语言分布式发布/订阅消息队列系统,而Jafka是在Kafka之上孵化而来的,即Kafka的一个升级版。具有以下特性:快速持久化,可以在O(1)的系统开销下进行消息持久化;高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统,Broker、Producer、Consumer都原生自动支持分布式,自动实现负载均衡;支持Hadoop数据并行加载,对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka通过Hadoop的并行加载机制统一了在线和离线的消息处理。Apache Kafka相对于ActiveMQ是一个非常轻量级的消息系统,除了性能非常好之外,还是一个工作良好的分布式系统。
-----------------------------------
©著作权归作者所有:来自51CTO博客作者wx5e323dd4c89f5的原创作品,请联系作者获取转载授权,否则将追究法律责任
.NET平台常用的框架整理
https://blog.51cto.com/u_14672305/3230079