注:下面用 [$] 标注的表示收费工具,但部分收费工具针对开源软件的开发/部署/托管是免费的)
API
-
框架
-
NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台。
-
ASP.NET WebAPI:快捷创建 HTTP 服务的框架,可以广泛用于多种不同的客户端,包括浏览器和移动设备。
-
ServiceStack :架构缜密、速度飞快、令人愉悦的 web 服务。
-
Nelibur:Nelibur 是一个使用纯 WCF 构建的基于消息的 web 服务框架。Nelibur 可以便捷地创建高性能、基于消息的 web 服务,使得你全面拥有 WCF 的强大能力。
-
-
WebAPI Contrib:帮助你提高 ASP.NET Web API 能力的开源项目集合。
应用框架(Application Frameworks)
-
ASP.NET Boilerplate:现代 ASP.NET MVC web 应用程序的入门,包含最佳实践和最流行的工具。
-
Orleans:Orleans 框架提供了直接构建分布式、大规模计算应用的方法,无需学习和使用复杂的并行或扩展模型。
-
CoreFX:corefx 仓库包含了 .NET 核心功能库的实现(被称为“CoreFX”)。包含了 System.Collections、System.IO、System.Xml 以及诸多其它组件。目前构建并运行于 Windows 平台。你可以关注这个仓库,了解在未来的几个月内即将增加的对 Linux 和 Mac 的支持。
-
CSLA .NET:业务层开发框架 http://www.cslanet.com。
-
Mono:Mono 是 ECMA CLI、C# 以及 .NET 的开源实现。
-
Mono-Addins:Mono.Addins 是一个通用框架,用于创建可扩展的应用程序,以及这些应用程序的扩展插件。
-
Spring.Net:Spring.NET 是一个开源的应用程序框架,可以便捷地创建企业级 .NET 项目。
应用模板(Application Templates)
-
MVC.Template:ASP.NET MVC 5 入门项目模板。
-
ProjectScaffold:F# 基金会推荐的 .NET 解决方案的原型——包括文件系统的搭建、用于管理依赖的 Paket 以及用于自动化构建、测试的 FAKE。默认情况下,构建流程也会对文档进行编译,并生成 NuGet 程序包。
-
Side-Waffle :包含大量有用的 Web 和桌面开发模板。
-
Template10 :带有设计模式的 Windows 10 模板。
人工智能(Artificial Intelligence)
-
AIMLBot(Program#):使用 C# 编写的一个小型、快速、兼容标准、易于定制的聊天机器人,基于 AIML (人工智能标记语言 Artificial Intelligence Markup Language)。
-
SIML :智能综合智能标记语言(Synthetic Intelligence Markup Language),下一代聊天机器人及数字助手语言。
程序集处理(Assembly Manipulation)
-
dnSpy:dnSpy 是一个 .NET 程序集编辑器、反编译器和调试器,来自 ILSpy 分支。
-
Fody:织入(weaving).net 程序集的可扩展工具。
-
Mono.Cecil:Cecil 类库用于生成和检查 ECMA CIL 程序和库。
资源(Assets)
-
Cassette:管理 .NET web 应用程序资源(脚本、css 和 模板)
-
NodeAssets:.net 资源管理器,通过 SignalR 实时更新 css,也可以使用 NodeJS 编译器。
-
Bundler:编译和最小化 Less、Sass、Stylus、Css、JS、CoffeeScript、LiveScript 文件。MVC集成了 MVC 和 ServiceStack。
-
SquishIt:让你轻松合并一些 css 和 javascript。
认证和授权(Authentication and Authorization)
-
ASP.NET Identity:用于 ASP.NET 应用程序的新身份系统。
-
DotNetOpenAuth:OpenID、OAuth 和 InfoCard 协议的一个 C# 实现。
-
Logibit Hawk:一个 F# Hawk 认证库。
-
IdentityModel:.NET 4.5 和 MVC4、Web API 身份和访问控制的辅助库。
-
IdentityServer:可扩展的 OAuth2 和 OpenID 连接提供程序框架。
-
OAuth:超轻量级 OAuth 1.0a 签名生成库,C# 编写。
自动构建(Build Automation)
-
Psake:基于 .NET 的自动化构建工具,使用 PowerShell 编写。
-
FAKE:F# Make,一个跨平台自动构建系统。
-
Invoke-Build:PowerShell 自动构建和测试工具,灵感来自 Psake。
-
MSBuild:微软构建引擎(MSBuild)是 .NET 和 Visual Studio 的构建平台。
-
Cake:Cake(C# Make)使用 C# DSL 的跨平台自动构建系统。
缓存(Caching)
-
CacheCow:ASP.NET Web API HTTP 客户端和服务器端缓存实现。
-
Akavache:一个异步、持久化的键值存储。
CLI
-
Command Line Parser:Command Line Parser 类库为 CLR 应用程序提供了一套简洁的 API,用于处理命令行参数及相关任务。
-
Fluent Command Line Parser:一个简单、强类型的 .NET C# 命令行解析库,交互方式流畅易用。
-
Power Args:PowerArgs 将命令行参数转换为 .NET 对象,便于程序使用。它还提供了大量可选的扩展,例如参数校验、自动生成使用帮助、tab 补全等等。
-
UnionArgParser:针对 F# 应用程序的声明式 CLI 参数和 XML 配置解析器。
CLR
-
CoreCLR:coreclr repo 包含了完整的 .NET 核心运行时实现(称为“CoreCLR”)。它包括 RyuJIT、.NET GC、非托管代码交互(native interop)等诸多组件。它目前构建和运行于 Windows 平台。你可以关注这个仓库,了解未来的几个月内即将增加的对 Linux 和 Mac 的支持。
CMS
-
Composite C1:一个 web 内容管理系统,着重在用户体验及适应性。
-
mojoPortal:MojoPortal 是一个可扩展、跨数据库、移动友好的 web 内容管理系统(CMS)和 web 应用程序框架,使用 C# ASP.NET 编写。
-
N2CMS:开源、轻量、代码优先的 CMS,可以无缝地集成到任何 MVC 项目中。
-
Orchard:免费、开源、专注社区的项目,目标是在 ASP.NET 平台上提供应用程序和可重用组件。
-
Piranha CMS:Piranha 是一个有趣、快速、轻量级的 .NET 框架,用于开发基于 cms 附带其它功能的 web 应用程序。它基于 ASP.NET MVC 和 Web 页面创建,完全兼容 Visual Studio 和 WebMatrix。http://piranhacms.org
-
Umbraco:Umbraco 是一个免费开源的内容管理系统,基于 ASP.NET 平台构建
代码分析和度量(Code Analysis and Metrics)
-
CodeMaid:Visual studio 扩展,用于清理、挖掘和简化 C#、C++、F#、VB、PHP、JSON、XAML、XML、ASP、HTML、CSS、LESS、SCSS、JavaScript 和 TypeScript 代码。
-
StyleCop:StyleCop 使用一组风格和一致性规则,对 C# 源代码进行分析和强制性检查。
-
Gendarme:可扩展的、基于规则的工具,用于在 .NET 应用程序和类库中查找问题。
-
Metrics-Net:捕获 CLR 和应用程序级别的度量值。所以你知道它的功能。
编译器(Compiler)
-
Bridge.NET:将 C# 编译成 JavaScript 的开源编译器 http://bridge.net/。
-
ClojureCLR:从 Clojure 到 CLR 的转换,是 Clojure 项目的一部分。
-
F#:F# 编译器、核心库和工具——更安全、更快、代码更好的函数式编程语言。
-
FunScript:F# 到 JavaScript 的编译器,可以通过 TypeScript 类型提供程序使用 JQuery 等 JavaScript 库。
-
JSIL:CIL 到 Javascript 的编译器 http://jsil.org/。
-
Mono-basic:Visual Basic 编译器和运行时。
-
Nemerle:Nemerle 是一个 .NET 平台高级静态类型编程语言。它提供函数式、面向对象式和命令式编程语言的特性。它拥有一个简单的类似 C# 的语法和强大的元编程(meta-programming)系统。 http://nemerle.org
-
Netjs:.NET 到 TypeScript 和 JavaScript 编译器。兼容可移植类库。你甚至可以使用 EXE 文件。
-
Roslyn:.NET 编译平台(“Roslyn”)提供开源的 C# 和 Visual Basic 编译器,包含丰富的代码分析 API。它可以使用和 Visual Studio 一样的 API 来构建代码分析工具。
-
VisualFSharp:Visual F# 编译器和工具。
压缩(Compression)
-
SharpCompress:SharpCompress 是一个用于 .NET、Mono、Silverlight、WP7 的压缩类库,可以解压rar、7zip、zip、tar、bzip2 和 gzip,提供单向读取和随机文件访问 API。支持对 zip/tar/bzip2/gzip 进行写入的实现。
-
DotNetZip.Semverd:一个开源项目,提供对 ZIP 文件处理的 .NET 类库和相关工具。 (分支自 已经不再维护的 DotNetZip)
-
SharpZipLib:一个 Zip、GZip、Tar 和 BZip2 的类库,完全由 C# 编写,面向 .NET 平台。
持续集成(Continuous Integration)
-
TeamCity:可以直接使用的,可扩展、面向开发人员友好的构建服务器——开箱即用。[$]
-
CruiseControl.NET:一个自动化持续集成服务器,使用 .NET Framework 实现。
-
MyGet:为NuGet、NPM、Bower 和 VSIX 提供持续集成、部署、宿主程序包仓库的服务。[开源软件免费] [$]
-
AppVeyor:.NET 持续构建和部署服务。 [$] [开源软件免费]
加密(Cryptography)
-
BouncyCastle:和 .Net 的 System.Security.Cryptography 一起,在 CLR 上提供加密算法的实现。
-
HashLib:HashLib 包含了几乎所有你见过的哈希算法,它几乎支持所有东西并且非常容易使用。
-
libsodium-net:libsodium for .NET——一个安全加密库。
-
StreamCryptor :使用 libsodium 和 protobuf 对流进行加密和解密。
数据库(Database)
-
BrightstarDb:BrightstarDB 是一个原生的 .NET RDF 三元组数据库(triple store)。
-
Event Store :开源的功能性数据库,支持使用 JavaScript 进行复杂事件处理。 https://geteventstore.com
-
LiteDB:一个 .NET 的 NoSQL 单文件文档数据库。http://www.litedb.org
-
RavenDB:支持 linq 的 .NET 文档数据库。
数据库驱动(Database Drivers)
-
MySQL Connector:完全托管的 MySQL ADO.NET 数据库提供程序、连接器。
-
Npgsql:Postgresql 的 .Net 数据提供程序。
-
MongoDB:MongoDB 官方 C# 驱动。
-
ServiceStack Redis:.NET 领先的 C# Redis 客户端。
-
StackExchange Redis:来自 StackExchange 的通用 redis 客户端。
-
Cassandra:DataStax 开发的 Apache Cassandra .NET 驱动程序。
-
Couchbase:couchbase 官方 .NET 客户端库,基于 Enyim memcached 客户端。
-
Firebird.NET:由C# 编写的 .NET 数据提供程序,提供对 Firebird API 的高性能原生实现。
反编译(Decompilation)
-
ILSpy:ILSpy 是一个开源的 .NET 程序集查看器和反编译器。
-
JustDecompile Engine:JustDecompile 反编译引擎。
部署(Deployment)
-
Unfold:基于 Powershell 的 .net web 应用程序部署解决方案。
DirectX
-
SlimDX:为 .NET 应用程序提供的 DirectX 封装。
-
SharpDX:SharpDX 是一个开源项目,为 .Net 及所有 Windows 平台提供完整的 DirectX API,可以开发高性能的游戏、2D/3D图形渲染以及实时音频应用程序。
分布式计算(Distributed Computing)
-
Project Orleans:Orleans 框架提供了直接构建分布式、大规模计算应用的方法,无需学习和使用复杂的并行或扩展模型。由微软研究院开发。
-
Akka.net:Akka.NET 是流行的 Java/Scala 框架 Akka 的 .NET 版本。它由社区提供,与 Typesafe(原始的 Java、Scala 版本的开发商)无关。
文档(Documentation)
-
Sandcastle:Sandcastle 帮助文件生成器和 NDoc 类似。
-
SharpDox:一个 c# 文档工具。
-
Swashbuckle:向 WebApi 项目无缝地添加 swagger 文档(译者注:swagger 是一套用于生成、描述、展现 RESTful 风格 web 服务文档的框架和规范)。
-
F# Formatting:F# 和 C# 项目的文档工具,文档生成自 F# 脚本文件、Markdown 文档、内嵌 XML 或 Markdown评论。
电子商务和支付(E-Commerce and Payments)
-
Paypal Merchant SDK :Paypal Merchant官方.NET SDK。
-
NopCommerce:nopCommerce。开源的电子商务购物车(ASP.NET MVC)。
-
ServiceStack.Stripe:针对 stripe.com REST API 的强类型 .NET 客户端。
-
SmartStoreNET:免费 ASP.NET MVC 电子商务购物车解决方案。http://www.smartstore.com/net/en
-
Stripe.Net:Stripe.net 是针对 http://stripe.com 完整服务的 .net api。
-
BeYourMarket :BeYourMarket 是一个点对点的市场框架。http://beyourmarket.com
-
Virto Commerce:Virto Commerce 是第二个版本,也是唯一的开源许可下的企业级别电子商务产品。Virto Commerce 基于 .NET 4.5,使用了 MVC、IoC、EF、Azure、Angular JS 等其他先进技术。它可以在微软的云平台(Azure)、亚马逊云服务(AWS)和企业内部部署。http://virtocommerce.com
环境管理(Environment Management)
-
DNVM:.NET SDK 管理器,一组命令行工具,用于更新和配置需要使用的运行时环境(DNX)。
ETL
-
Reactive ETL:Reactive ETL 使用 .NET 反应性扩展框架(reactive extensions) 重写了 Rhino ETL。
游戏(Game)
-
MonoGame:一个用来创建跨平台游戏的强大框架。
-
CocosSharp:CocosSharp 是 Cocos2D 和 Cocos3D API 的 C# 实现版本,可以在所有支持 MonoGame 的平台上运行。
-
Duality:Duality 是一个 2D 游戏开发框架。专注于功能的模块化,自带一个可视化编辑器。
-
Paradox:Paradox 游戏引擎。http://paradox3d.net
地理信息系统(Gis)
-
NetTopologySuite:一个 在 .NET 平台上实现快速、可靠的 GIS 系统解决方案。
-
SharpMap:一个易于使用的地图库,可以用于 web 和桌面应用程序。
Git工具(Git Tools)
-
Bonobo Git Server:Bonobo Git Server for Windows 是一个 web 应用程序,可以安装在你自己的 IIS 上,用于管理和连接你的 git 仓库。 http://bonobogitserver.com
-
GitExtensions:GitExtensions 包含资源管理器扩展、Visual Studio 2008/2010/2012/2013 插件和一个独立的 Git 仓库工具。 http://gitextensions.github.io/
-
GitLink:让用户可以单步调试托管在 GitHub 或 BitBucket 上的代码。
-
GitVersion:根据你的 Git 仓库的状态生成一个语义化版本号(Semantic Version Number)。
-
LibGit2Sharp:LibGit2Sharp 带来了 libgit2 所有的功能和速度,是一个本地 Git 实现,可以运行在 .Net 和 Mono 平台。
-
NGit:NGit 是 JGit 移植到 C# 的版本。
-
posh-git:Git 的 PowerShell 环境。
图形(Graphics)
-
Oxyplot:OxyPlot 是一个 .NET 跨平台绘图库。
-
OpenTK:Open Toolkit 是一个封装了 OpenGL、OpenCL 和 OpenAL 的 高级底层 C# 开发库。
-
NGraphics:NGraphics 是一个 .NET 跨平台矢量图形渲染库。
GUI
-
MahApps.Metro:用于创建 Metro 风格 WPF 应用的工具箱。
-
Callisto:用于 Windows 8 XAML 应用的控件工具箱。包含若干 UI 控件,让你更容易地创建符合 Windows UI 风格规范的Windows 商店应用。
-
ObjectListView:ObjectListView 使用 C# 封装了 .NET 的 ListView 控件。它使得 ListView 更加易用,并且加入了一些新特性。
-
DockPanelSuite :灵感来自 Visual Studio 的停靠窗口(docking)类库,用于 .NET WinForm 应用。
-
AvalonEdit :在 SharpDevelop 中使用,基于 WPF 的文本编辑器组件。
-
XWT:跨平台 UI 工具箱,用于创建 .NET 和 Mono 桌面应用程序。
-
Gtk#:Gtk# 是 Gtk+ GUI 工具箱的 Mono/.NET 版本,绝大多数 Mono 中的 GUI 应用都基于它构建。
-
MaterialDesignInXamlToolkit:用于创建 Material Design 风格 WPF 应用的工具箱。
-
Eto.Forms:跨平台的 GUI 框架,用于 .NET 和 Mono 下的桌面和移动应用程序。
-
Dragablz:可拖拽、可分离(tearable,译者注:即拖拽标签页成为独立窗口)的 WPF 标签页控件(类似 Chrome)。支持布局和主题,包含兼容 MahApps 和 Material Design 的主题。
-
Fluent.Ribbon:Fluent Ribbon Control Suite 是一个在 WPF 中实现 Office 和 Windows 8 风格的 Ribbon 库。
HTML 和 CSS(HTML and CSS)
-
AngleSharp:支持构建完整的 HTML5 DOM 和 CSS3 模型。
-
CsQuery:jQuery 风格的HTML5 解析器,可与 DOM 交互。
-
dotless:ruby Less CSS 库的 .NET 移植版本。http://www.dotlesscss.org
-
ExCSS:C# 的 CSS3 解析器开发库。
-
FluentBootstrap:让ASP.NET MVC 和 WebPages 更容易使用 Boostrap CSS 框架。
-
HtmlAgilityPack:一个灵活的 HTML 解析器,可以对 DOM 进行读写,支持 XPATH 和 XSLT。
HTTP
-
Http.fs:
[F#]
中的一个函数式 HTTP 客户端。 -
RestSharp:.NET 下简单的 REST 和 HTTP API 协议客户端。
-
EasyHttp:C# Http开发库。
-
Refit :Xamarin 和 .NET 下自动生成强类型的 REST 库。
-
RestEase:类型安全且易于使用的 REST API 客户端库,简单可定制。大部分灵感来自 Refit。
IDE
-
SharpDevelop:用于 .NET 编程语言的免费 IDE。
-
MonoDevelop:MonoDevelop 是一个跨平台的 IDE,主要面向 Mono/.NET 开发者。
-
Visual Studio Express:用于 .NET 开发的免费、轻量版本的 Visual Studio。
-
Visual Studio Community:功能完整的免费 IDE。
-
Waf DotNetPad :简单快速的代码编辑器,让开发 C# 或 Visual Basic 充满乐趣。
-
Visual Studio Code:非常棒的编辑器,来自微软,基于 GitHub Atom。
图像处理(Image Processing)
-
ImageResizer:在图片 URL 后面增加命令,在几毫秒内获取修改后的版本,支持实时的对图片进行缩放、编辑。
-
ImageProcessor:开源 .NET 库,用于实时处理图片。
-
DynamicImage:高性能开源图片处理库,用于 ASP.NET。
-
MetadataExtractor:从图片中提取 Exif、IPTC、XMP、ICC 等其它元数据信息。
-
Emgu CV:OpenCV 的 .NET 跨平台封装。
安装工具(Install Tools)
-
Wix Toolset:强大的工具集,用于创建你自己的 Windows 安装程序。
-
Squirrel:Squirrel 即是一套工具也是一个类库,可以无安全管理 Windows 桌面程序的安装和更新。
国际化(Internationalization)
-
i18n:ASP.NET MVC 智能国际化工具。
互操作(Interoperability)
-
CefSharp:Chromium Embedded Framework 的 .NET 支持(WPF 和 WinForm)。
-
CppSharp:在 C# 中平滑使用 C++ API 的工具。
-
Sharpen:Sharpen 是 db4o 编写的 Eclipse 插件,可以让你把 Java 项目转换为 C#。
-
CXXI:C++ 互操作框架。
IoC
-
Castle Windsor:Castle Windsor 是一个用于 .NET 和 Silverlight 的成熟的 控制反转(IoC) 容器。
-
Unity:轻量级、可扩展的依赖注入容器,支持构造函数、属性和方法调用注入。
-
Autofac:令人着迷的 .NET IoC 容器。
-
Ninject:.net 依赖注入的忍者。
-
StructureMap:.Net 最早的 IoC/ID 容器。
-
Spring.Net:Spring.NET 是一个开源应用程序框架,可以便捷地创建企业级 .NET 应用。
-
LightInject :一个超轻量级 IoC 容器。
-
TinyIoC:单文件、简单、跨平台的 IoC 容器。
日志(Logging)
-
Essential Diagnostics:为内置System.Diagnostics 命名空间扩展功能,提供更灵活的日志功能。
-
NLog:先进的 .NET 和 Silverlight 日志工具。
-
ELMAH:ELMAH 官方网站。
-
Elmah MVC:MVC 版 Elmah。
-
Logary:Logary 是一个 mono 和 .Net 平台下高性能、多目标的日志、度量、追踪和健康检查库。支持多目标,为微服务构建。
-
Log4Net:Apache log4net 工具库能够帮助程序员向多种不同的目标输出日志语句。
-
Serilog:一个 NoSQL 时代下简单直接的日志库。将多个优秀的传统结构化分析日志功能合并到一个易于使用的程序集中。
-
StackExchange.Exceptional:Stack Exchange 网络使用的错误处理程序。
-
Semantic Logging Application Block (SLAB): 为内置 System.Diagnostics.Tracing 命名空间(EventSource类)扩展功能,支持将日志记录到多个容器中,包括 Azure 表存储、数据库、文件(JSON、XML、文本文件)。通过 ETW 支持进程内和进程外的日志记录,支持 Rx 进行实时的事件过滤和聚合。
机器学习和数据科学(Machine Learning and Data Science)
-
Accord.NET:机器学习框架,包含了音频和图像处理的库(计算机视觉、计算机听觉、信号处理和统计)。
-
Accord.NET Extensions:高级图像处理和计算机视觉算法扩展。
-
AForge.NET:为计算机视觉和人工智能领域的开发者和研究人员提供的框架(包括图像处理、神经网络、遗传算法、机器学习、机器人科学)。
-
Deedle:处理探索性数据的数据帧和时序库,支持 C# 和 F#。
-
FsLab:数据科学和机器学习库的集合,支持 F# 和 .NET。
-
numl :包含最流行的监督学习和无监督学习算法,尽量减少创建预测模型时的冲突。
-
R Provider :将 R 语言包和函数封装为类型安全的类型提供程序供 F# 调用。
-
F# Data:F# 类型提供程序,访问 XML、JSON、CSV 和 HTML 文件(基于样例文档),以及 WorldBank 数据。
Markdown 处理(Markdown Processors)
-
MarkdownSharp:C# 实现的开源 Markdown 处理器,在 Stack Overflow 中使用。
-
F# Formatting:用于生成 F# 和 C# 项目文档的工具。该工具库的核心组件中包含了可扩展的 Markdown 解析器。
-
CommonMark.NET:CommonMark 规范的 C# 实现,用于将 Markdown 文档转换为 HTML。为最佳性能和可移植性进行了优化。
邮件(Mail)
-
FluentEmail:System.Net.Mail 的一个流式(Fluent)封装,支持 razor 模板引擎。
-
MailKit:完整的跨平台的邮件协议栈,包括 IMAP、POP3、SMTP,支持验证等特性。基于 MimeKit 构建。
-
MimeKit:跨平台 .NET MIME 创建和解析库,支持 S/MIME、PGP、TNEF 和 Unix mbox spools。
-
PreMailer.Net:一个 C# 开发库,将你的样式表嵌入到内置的 style 属性中,最大限度支持邮件客户端。
数学(Mathematics)
-
MathNet:Math.NET 是一个开源项目,旨在创建和维护涵盖基础数学在内的工具集,面向高级和日常需要使用此类功能的 .Net 开发人员。
多媒体(Media)
-
TagLib#:TagLib#(即 taglib-sharp)是一个读写媒体文件元数据的库,支持视频、音频和照片格式。
度量(Metrics)
-
C# StatsD Client:Etsy StatsD 服务器的 C# 客户端
微框架(Micro Framework)
-
.NET Micro Framework Interpreter:Microsoft® .NET Micro Framework(NETMF)是一个在 Visual Studio 中提供为小型设备上编写嵌入式应用的框架。
杂项(Misc)
-
.NET Fiddle:在浏览器中编写、编译并运行 C# 代码。相当于 C# 版本的 JSFiddle。
-
AzureCrawler:从 Angular、Ember、Durandal 或任何 JavaScript 应用中获取 HTML 快照。
-
BitSharp:C# 比特币节点。
-
CSScript:CS-Script 是一个基于 CLR 的脚本系统,使用 C# 作为编程语言。CS-Script 目前针对微软的 CLR 实现(.NET 2.0/3.0/3.5/4.0/4.5)并完整支持 Mono。附带很多附加特性,比如脚本宿主。
-
CsvHelper:帮助读写 CSV 文件的开发库。http://csvhelper.com
-
FluentValidation:一个小型的 .NET 校验库,使用流式接口和 lambda 表达式构建校验规则。
-
Humanizer:Humanizer 能够在 .NET 平台上满足所有针对字符串、枚举、日期、时间、时间范围、数字等类型数据的操作和显示要求。
-
LINQPad:一个 C#/VB/F# 的便签本,能够立即执行任何表达式、语句块或程序,带有富文本显示等有用的特性。同样可以让你使用 LINQ 进行交互性数据库查询。 [$](译者注:也有免费许可,但是功能受限)
-
Polly:快捷便利的异常处理策略,例如 重试、始终重试、等待并重试或断路(Circuit Break)等行为。 (.NET 3.5、4.0、4.5、PCL、Xamarin)
-
Rant:Rant 程序文本生成 DSL(领域特定语言)。 http://berkin.me/rant
-
ScriptCS:使用文本编辑器、nuget 和强大的 Roslyn 来编写 C# 应用!
MVVM
-
Caliburn.Micro :小型但功能强大的框架,可以用来给所有 XAML 平台创建应用。它对 MV* 模式的强大支持可以让你快速构建你的解决方案,与此同时不必牺牲代码质量和可测试能力。
-
MVVM Light Toolkit:该工具箱主要是用来加速创建和开发 MVVM 应用,适用于 WPF、Silverlight、Windows Store(RT)和 Windows Phone 平台。
-
Catel:Catel 是一个应用开发平台,主要着眼在 MVVM(WPF、Silverlight、Windows Phone 及 WinRT)以及 MVC(ASP.NET MVC)。Catel 的核心部分包含 IoC 容器、模型、校验、备忘录模式(memento)、消息中介(message mediator)、参数检查等。
-
UpdateControls:Update Controls 不需要你实现 INotifyPropertyChanged 接口或声明一个 DependencyProperty。可以将控件直接关联到 CLR 属性,这使得它完美贴合 MVVM 模式。
-
ReactiveUI:一个 .NET 下的 MVVM 框架,集成了反应性扩展框架(Rx),允许开发者使用 WPF、Windows Store Apps、WP8 或 Xamarin 创建优雅的、可测试的应用。
-
Okra App Framework:一个以 app 为中心的 Windows 8.1 MVVM 框架,融合依赖注入,包含一套完整的 Visual Studio MVVM 模板。
-
WPF Application Framework (WAF):一个轻量级的框架,能够帮助你创建结构优雅的 WPF 应用。支持你使用分层架构和 MVVM 模式。
-
MVVMCross: 跨平台mvvm 移动开发框架,针对 WP7 和 WP8 的 WPF/Silverlight、Android 的 Mono、iOS 的 MonoTouch 以及 WPA8.1/Windows 8.1 商店应用的 Windows Universal 项目。它使用可移植类库(PCL)来支持可维护的跨平台 C# 原生应用。
-
Stylet:最小化 MVVM 框架(参考 Caliburn Micro),包含了良好的文档、高覆盖率的测试以及自带的 IoC 容器。
-
Gemini:类似 Visual Studio Shell 的 IDE 框架。基于 WPF、AvalonDock 和 Caliburn Micro 构建。
Office
-
ClosedXML:ClosedXML 能够让开发人员更便捷地创建 Excel 2007、2010 文件。
-
NPOI:该项目是 .NET 版本的 POI 项目,原始的 Java 版本位于http://poi.apache.org/ 。
-
EPPlus:EPPlus 是一个 .net 类库,用于读写 Open Office Xml 格式的 Excel 2007、2010 文件(xlsx)。
-
Open XML SDK:Open XML SDK 是一个开源库,用于处理 Open XML 文档(包括 DOCX、XLSX 和 PPTX)。
ORM
-
Entity Framework:对象关系映射器(ORM)框架,让 .NET 开发人员使用领域特定的对象来处理关系型数据。
-
BL Toolkit:.NET 平台的业务逻辑工具箱。
-
Dapper:一个超小型、快捷轻便的 ORM 框架。
-
Dapper Extensions:小型类库,对 Dapper 的功能进行补充,为你的简单传统 CLR 对象提供基础的 CRUD(Get、Insert、Update、Delete) 操作。
-
NHibernate:NHibernate 对象关系映射器(移植自 Java 平台的 Hibernate)。
-
Fluent NHibernate:便捷、无需使用 XML、编译安全、自动化、基于约定命名的 NHibernate 映射库。
-
FluentMigrator:.net 下的便捷的迁移框架。
-
ServiceStack.OrmLite:轻量、简单、快速、基于命名约定的 POCO ORM。
-
Massive:小型、令人愉悦的数据访问工具,始终关爱你直到永远。
-
LINQ to DB:最快的 LINQ 数据库访问库,简单、轻量、快速、类型安全,在你的对象(POCO)和数据库之间搭建桥梁。
包管理(Package Management)
-
NuGet:.NET 包管理器。
-
MyGet:为 NuGet、NPM、Bower 和 VSIX 提供程序包仓库宿主,同样提供 CI 服务。[开源软件免费] [$]
-
Paket:.NET 的一个包依赖管理器,支持 NuGet 包和 GitHub 仓库。 http://fsprojects.github.io/Paket/
-
ITextSharp:iText 是一个PDF库,用于创建、修改、检查和维护 Portable Document Format(PDF)格式的文档 [$]**[开源软件免费]**
Profiler
-
MiniProfiler:一个简单但有效的小型 profiler,用于 ASP.NET 网站。
-
Glimpse:开源 web 诊断平台。
推送通知(Push Notifications)
-
PushSharp:服务器端的推送通知类库,支持 iOS、OSX、Android、Chrome、Windows Phone、Windows 8、Backberry 和 Amazon 设备。
队列(Queue)
-
NServiceBus:.NET 平台下最流行的服务总线。
-
Hangfire:在 ASP.NET 应用中,超简单地实现自主引导(fire-and-forget)、延迟和周期重复任务。
-
RabbitMQ.NET:AMQP 客户端的 C# 实现,通过 WCF 绑定到已有的 AMQP 服务。
-
NetMQ:NetMQ 是 ZeroMQ 纯 C# 移植版本。
-
MassTransit:MassTransit 是一个精简服务总线(lean service bus)的实现,使用 .NET Framework 来构建松耦合应用程序。
-
Rebus:Rebus 是一个 .NET 平台的精简服务总线和 NServiceBus、MassTransit类似,只不过更加精简。
-
EasyNetQ:易于使用的 RabbitMQ .NET API。
-
Warewolf ESB:易于使用的服务总线和微服务平台,可以在一个可视化 IDE 中便捷的创建应用和服务。
响应式编程(Reactive Programming)
-
Rx.NET:Reactive Extensions (Rx)库使用观察者序列(observable sequences)和 LINQ 风格的查询操作,来进行异步和基于事件的程序开发、
-
Dynamic Data:用于集合的响应式编程框架。
计划调度(Scheduling)
-
QuartzNet:Quartz 是 .NET 平台的企业级调度器。
SDK 和 API 客户端(SDK and API Clients)
-
AWS SDK:AWS SDK for .NET 让 .NET 开发者可以便捷地操作 Amazon Web Services。
-
Azure PowerShell:一组 PowerShell 命令行,让开发者和管理员开发、部署和管理 Microsoft Azure 应用。
-
Octokit.NET:.NET 平台下的 GitHub API 客户端库。
-
DropNet:Dropbox API 客户端开发库。
搜索(Search)
-
Elasticsearch .NET:Elasticsearch.Net & NEST。
-
PlainElastic.Net:ElasticSearch 的一个简单的 .Net 客户端。
-
SolrNet:.Net 平台下的 Solr 客户端。
-
Lucene.net:Lucene.Net 是 Lucene 搜索引擎库的移植,使用 C# 编写,面向 .NET 环境的用户。
序列化(Serialization)
-
Protobuf.NET:Protocol buffers 是 Google 使用的二进制序列化格式,在 Google 数据通讯中大量使用。
-
Json.NET:.NET 平台下流行的、高性能 JSON 框架。
-
ServiceStack.Text:在 servicestack.net 中使用的 JSON、JSV、CSV 文本序列化器。
-
Msgpack-Cli:MessagePack 的 CLI 实现。
-
Jil:.NET 平台下快速的 JSON 序列化器,基于 Sigil (在 StackOverflow 中使用)。
-
ProtoBuf:根据 .proto 规范,为 protocol buffer 序列化内容生成 C# 代码。
-
F# Data:F# 类型提供程序,访问 XML、JSON、CSV 和 HTML 文件(基于样例文档),以及访问 WorldBank 数据。
-
Bond:跨平台框架,用于处理系统化(schematized)数据。支持跨平台的序列化、反序列化,以及强大的通用机制来高效处理数据。
状态机(State machines)
-
Stateless:直接使用 .NET 代码创建一个状态机和轻量的基于状态机的工作流。
-
Automatonymous:.Net 平台的状态机库,允许你编写流式API风格的状态机。
静态网站生成(Static Site Generators)
-
Pretzel:.NET 平台下的网站生成工具(包含后续的一些功能)。
-
Sandra.Snow:.NET 平台的静态网站生成工具,借鉴 Jekyll。
-
Wyam:简单易用、高度模块化、拥有强大配置能力的静态网站生成工具。
风格指南(Style Guide)
-
C# Style Guide:StackOverflow 上的C#风格指南 Q & A。
-
C# Coding Conventions:MSDN 官方的 C# 代码约定。
模板引擎(Template Engine)
-
RazorEngine:基于微软 Razor 解析器引擎的开源模板引擎。
-
Nustache :无逻辑模板的开源库。
-
DotLiquid:Ruby Liquid 模板语言的 C# 移植版本。
测试(Testing)
-
AutoFixture:AutoFixture 是一个用于 .NET 的开源框架,用于简化单元测试中的设置(Arrange)阶段。
-
FakeItEasy:.NET 平台的一个简单的 mocking 库。http://fakeiteasy.github.io
-
Fluent Assertions:一组 .NET 扩展方法,可以让你更自然地指定 TDD 或 BDD 风格测试的期望值。
-
Fuchu:F# 的单元测试库,通过 tests-as-values 机制让你更容易创建领域特定语言(DSL)。
-
Machine.Specifications:Machine.Specifications (MSpec)是一个上下文、规范框架,忽略了语言本身的干扰,简化了测试。
-
Moq:.NET 平台下最流行和友好的 mocking 框架。
-
NBuilder:快速创建测试对象。
-
NSubstitute:一个友好的 .NET mocking 框架。
-
NUnit
-
Rhino Mocks:.NET 平台的动态 Mocking 框架
-
Shouldly:Shouldly 是一个断言(assertion)框架,主要功能是在断言失败时,给出简单明了并且友好的错误信息。
-
SpecFlow:将业务需求绑定到 .Net 代码。
-
xUnit:xUnit.net 是一个 .NET 平台下免费、开源、专注社区的单元测试框架。
交易(Trading)
-
Lean:Lean 引擎是一个开源的,完全由 C# 托管代码编写的交易算法引擎,用于桌面和云端。 https://lean.quantconnect.com
-
StockSharp:交易和算法交易(algorithmic trading)的开源平台(用于股票市场、外汇市场、比特币和期权交易) 。http://stocksharp.com
Visual Studio 插件(Visual Studio Plugins)
-
Web Essentials:Web Essentials 为 Visual Stduio 扩展了大量的特性,提供了 web 开发人员盼望多年的功能。
-
VsVIM:Visual Studio 中的 VIM。
-
Nuget Package Manager:NuGet 是微软开发平台(包括 .NET)的包管理器。
-
SideWaffle:Visual Studio 2012、2013 中的一组项目模板集合,让 web 开发人员更加轻松。
-
Resharper:Visual Studio 开发人员生产力工具 [$]
-
Refactoring Essentials:开源 C# 和 VB.NET 重构扩展,包括代码最佳实践分析器。
-
CodeContracts:.NET CodeContracts 工具源代码。
-
Git Diff Margin:在 Visual Studio 滚动条区域实时显示当前文件在 Git 上的差异。
-
Productivity Power Tools:一组 Visual Studio 专业版(及更高版本)的扩展,用于提高开发人员的生产力。
Web 框架(Web Frameworks)
-
ASP.NET MVC(http://www.jinhusns.com/Products/Download/?type=xcj):ASP.NET 是一个免费的 web 框架,用于创建优秀的 web 站点和应用程序。
-
FubuMVC:.NET 平台下前端控制器(front-controller)风格的 MVC 框架。http://fubuworld.com/fubumvc
-
NancyFx:在 .Net 和 Mono 平台上创建 HTTP 服务的一个轻量级、非正式的框架。
-
IISNode:在 IIS 中宿主 NodeJS 应用程序。
-
Suave.IO:一个框架/库/web 服务器,当你看到你使用优美的 F# 编写的代码提前完成了你的项目时,它的存在会让你喜极而泣。(一个用 F# 编写 Web 应用的框架和服务器端)
Web 服务器(Web Servers)
-
EmbedIO :基于 Mono 编写的跨平台的 Web 服务器。
-
XSP:Mono 中的 ASP.NET 宿主服务器。该模块包含了 Apache 模块、FastCGI 模块,可以用于挂载到其它 web 服务器或是作为一个测试用的独立服务器存在(类似微软的 Cassini 项目)。
WebSocket
-
SignalR:ASP.NET 库,开发者可以通过它在 web 应用程序中非常简单地实现实时功能。
-
Fleck:Fleck 是一个 C# 实现的 WebSocket 服务器。分支自 Nugget 项目。
-
Websocket-Sharp:WebSocket 协议的 C# 实现,包含客户端和服务器端。
-
XSockets:提供了一组工具,可以在微软 .NET 等平台上构建一个实时应用程序。
-
WebSocket4NET:.NET 2.0+、Xamarin、Mono、Silverlight、Windows Phone 以及 WinRT 下的 WebSocket 客户端。
Windows 服务(Windows Services)
-
TopShelf:一个简单的服务宿主框架,使用 .NET 构建 Windows 服务。
其他列表(Other Lists)
-
.NET-libraries-that-make-your-life-easier:开源的 .NET 库,让你的生活更加轻松、
-
awesome-LINQ:一组精心挑选的超棒的 LINQ 类库、工具等。
- donet源码下载:http://www.jinhusns.com/Products/Download/?type=xcj
自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就继续补充这篇日志,日积月累,就能形成一个自己的组件经验库。
分布式缓存框架:
Microsoft Velocity:微软自家分布式缓存服务框架。
Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度。
Redis:是一个高性能的KV数据库。 它的出现很大程度补偿了Memcached在某些方面的不足。
EnyimMemcached:访问Memcached最优秀的.NET客户端,集成不错的分布式均衡算法。
开源的.NET系统推荐:
OXITE:微软ASP.NET MVC案例演示框架。
PetShop:微软ASP.NET宠物商店。
Orchard:国外一个MVC开源的博客系统。
SSCLI:微软在NET Framework 2.0时代的开源代码。
DasBlog:国外一个基于ASP.NET的博客系统。
BlogEngine.NET:国外一款免费开源的博客系统。
Dotnetnuke.NET:一套非常优秀的基于ASP.NET的开源门户网站程序。
Discuz.NET:国内开源的论坛社区系统。
nopCommerce和Aspxcommerce:国外一套高质量的开源B2C网站系统。
JumboTCMS和DTCMS:国内两款开源的网站管理系统:
日志记录异常处理:
Log4Net.dll:轻量级的免费开源.NET日志记录框架。
Enterprise Library Log Application Black:微软企业库日志记录。
Elmah:实现最流行的ASP.NET应用异常日志记录框架。
NLog:是一个简单灵活的日志记录类库,性能比Log4Net高,使用和维护难度低。
关于NoSQL数据库:
Mongodb:分布式文件存储数据库。
Membase:家族的一个新的重量级的成员。
自动任务调度框架
Quartz.NET:开源的作业调度和自动任务框架。
Topshelf:另一种创建Windows服务的开源框架
依赖注入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代码,并非采用反射机制。
格式和数据类型转换
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、压缩和优化框架。
反射和动态语言
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:国外一个牛人写的高级开源集合。
移动互联网和云计算
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、加解密、反向、直接和间接代理。
图形和图像处理框架
Paint.NET:基于.NET小巧灵活强大的图形处理开源项目。
Imagemagick.NET:用C#对开源图像处理组件Imagemagick的封装。
Skimpt:基于.NET开源的屏幕截图软件。
ImageGlue.NET:商业的图像处理组件,支持的格式列了一大堆。
Sprite and Image Optimization Framework:微软CSS精灵,多图合成一张大图和CSS样式。
桌面应用程序框架
DevExpress:一个全球知名的桌面应用程序UI控件库。
Prism:微软开发的针对WPF和Silverlight的MVVM框架,通过功能模块化的思想,来讲复杂的业务功能和UI耦合性进行分离。
WPFToolkit 和 Fluent Ribbon Control Suite:开发类似于Office风格的Ribbon菜单。
测试和性能评估方面
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最新版的盘古中文分词扩展库。
数据验证组件整理
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动态曲线图,线图、气泡图和热力图。
可以扩充消息队列类别,如:Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:
以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。
高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。
支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。
同时支持离线数据处理和实时数据处理。
Scale out:支持在线水平扩展。
RabbitMQ
RabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正因如此,它非常重量级,更适合于企业级的开发。同时实现了Broker构架,这意味着消息在发送给客户端时先在中心队列排队。对路由,负载均衡或者数据持久化都有很好的支持。
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是一个非常轻量级的消息系统,除了性能非常好之外,还是一个工作良好的分布式系统。