DotNet 資源大全

注:下面用 [$] 標註的表示收費工具,但部分收費工具針對開源軟件的開發/部署/託管是免費的)javascript

API

  • 框架php

    • NancyFx:輕量、用於構建 HTTP 基礎服務的非正式(low-ceremony)框架,基於.Net 及 Mono 平臺。css

    • ASP.NET WebAPI:快捷建立 HTTP 服務的框架,能夠普遍用於多種不一樣的客戶端,包括瀏覽器和移動設備。html

    • ServiceStack :架構縝密、速度飛快、使人愉悅的 web 服務。前端

    • Nelibur:Nelibur 是一個使用純 WCF 構建的基於消息的 web 服務框架。Nelibur 能夠便捷地建立高性能、基於消息的 web 服務,使得你全面擁有 WCF 的強大能力。java

  • WebAPI Contrib:幫助你提升 ASP.NET Web API 能力的開源項目集合。node

應用框架(Application Frameworks)

  • ASP.NET Boilerplate:現代 ASP.NET MVC web 應用程序的入門,包含最佳實踐和最流行的工具。mysql

  • Orleans:Orleans 框架提供了直接構建分佈式、大規模計算應用的方法,無需學習和使用複雜的並行或擴展模型。react

  • CoreFX:corefx 倉庫包含了 .NET 核心功能庫的實現(被稱爲「CoreFX」)。包含了 System.Collections、System.IO、System.Xml 以及諸多其它組件。目前構建並運行於 Windows 平臺。你能夠關注這個倉庫,瞭解在將來的幾個月內即將增長的對 Linux 和 Mac 的支持。android

  • 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 和 MVC四、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)

數據庫驅動(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)

部署(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)

環境管理(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

圖像處理(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、POP三、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)

微框架(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.五、4.0、4.五、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 200七、2010 文件。

  • NPOI:該項目是 .NET 版本的 POI 項目,原始的 Java 版本位於http://poi.apache.org/ 

  • EPPlus:EPPlus 是一個 .net 類庫,用於讀寫 Open Office Xml 格式的 Excel 200七、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)

PDF

  • ITextSharp:iText 是一個PDF庫,用於建立、修改、檢查和維護 Portable Document Format(PDF)格式的文檔 [$]**[開源軟件免費]**

Profiler

  • MiniProfiler:一個簡單但有效的小型 profiler,用於 ASP.NET 網站。

  • Glimpse:開源 web 診斷平臺。

推送通知(Push Notifications)

  • PushSharp:服務器端的推送通知類庫,支持 iOS、OSX、Android、Chrome、Windows Phone、Windows 八、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)

模板引擎(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)

Visual Studio 插件(Visual Studio Plugins)

  • Web Essentials:Web Essentials 爲 Visual Stduio 擴展了大量的特性,提供了 web 開發人員盼望多年的功能。

  • VsVIM:Visual Studio 中的 VIM。

  • Nuget Package Manager:NuGet 是微軟開發平臺(包括 .NET)的包管理器。

  • SideWaffle:Visual Studio 20十二、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以來,優雅的編程風格,極度簡單的可擴展性,足夠強大開發工具,極小的學習曲線,讓我對這個平臺產生了濃厚的興趣,在工做和學習中也積累了一些開源的組件,就目前想到的先整理於此,若是再想到,就繼續補充這篇日誌,日積月累,就能造成一個本身的組件經驗庫。

分佈式緩存框架:

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:支持在線水平擴展。RabbitMQRabbitMQ是使用Erlang編寫的一個開源的消息隊列,自己支持不少的協議:AMQP,XMPP, SMTP, STOMP,也正因如此,它很是重量級,更適合於企業級的開發。同時實現了Broker構架,這意味着消息在發送給客戶端時先在中心隊列排隊。對路由,負載均衡或者數據持久化都有很好的支持。RedisRedis是一個基於Key-Value對的NoSQL數據庫,開發維護很活躍。雖然它是一個Key-Value數據庫存儲系統,但它自己支持MQ功能,因此徹底能夠當作一個輕量級的隊列服務來使用。對於RabbitMQ和Redis的入隊和出隊操做,各執行100萬次,每10萬次記錄一次執行時間。測試數據分爲128Bytes、512Bytes、1K和10K四個不一樣大小的數據。實驗代表:入隊時,當數據比較小時Redis的性能要高於RabbitMQ,而若是數據大小超過了10K,Redis則慢的沒法忍受;出隊時,不管數據大小,Redis都表現出很是好的性能,而RabbitMQ的出隊性能則遠低於Redis。ZeroMQZeroMQ號稱最快的消息隊列系統,尤爲針對大吞吐量的需求場景。ZeroMQ可以實現RabbitMQ不擅長的高級/複雜的隊列,可是開發人員須要本身組合多種技術框架,技術上的複雜度是對這MQ可以應用成功的挑戰。ZeroMQ具備一個獨特的非中間件的模式,你不須要安裝和運行一個消息服務器或中間件,由於你的應用程序將扮演這個服務器角色。你只須要簡單的引用ZeroMQ程序庫,可使用NuGet安裝,而後你就能夠愉快的在應用程序之間發送消息了。可是ZeroMQ僅提供非持久性的隊列,也就是說若是宕機,數據將會丟失。其中,Twitter的Storm 0.9.0之前的版本中默認使用ZeroMQ做爲數據流的傳輸(Storm從0.9版本開始同時支持ZeroMQ和Netty做爲傳輸模塊)。ActiveMQActiveMQ是Apache下的一個子項目。 相似於ZeroMQ,它可以以代理人和點對點的技術實現隊列。同時相似於RabbitMQ,它少許代碼就能夠高效地實現高級應用場景。Kafka/JafkaKafka是Apache下的一個子項目,是一個高性能跨語言分佈式發佈/訂閱消息隊列系統,而Jafka是在Kafka之上孵化而來的,即Kafka的一個升級版。具備如下特性:快速持久化,能夠在O(1)的系統開銷下進行消息持久化;高吞吐,在一臺普通的服務器上既能夠達到10W/s的吞吐速率;徹底的分佈式系統,Broker、Producer、Consumer都原生自動支持分佈式,自動實現負載均衡;支持Hadoop數據並行加載,對於像Hadoop的同樣的日誌數據和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka經過Hadoop的並行加載機制統一了在線和離線的消息處理。Apache Kafka相對於ActiveMQ是一個很是輕量級的消息系統,除了性能很是好以外,仍是一個工做良好的分佈式系統。

相關文章
相關標籤/搜索