1. 程式人生 > >基於.Net開源框架

基於.Net開源框架

自從學習.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是一個非常輕量級的訊息系統,除了效能非常好之外,還是一個工作良好的分散式系統。

相關推薦

基於.Net開源框架

自從學習.NET以來,優雅的程式設計風格,極度簡單的可擴充套件性,足夠強大開發工具,極小的學習曲線,讓我對這個平臺產生了濃厚的興趣,在工作和學習中也積累了一些開源的元件,就目前想到的先整理於此,如果再想到,就繼續補充這篇日誌,日積月累,就能形成一個自己的元件經驗庫。 分

基於github 開源框架Android-PickerView-master實現省市三級聯動

廢話不多說,直接上程式碼。註釋也齊全: package com.bigkoo.pickerviewdemo; import java.io.IOException; import java.io.InputStream; import java.io.InputStre

基於.NET Core 框架搭建WebApi專案

using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Net.Http.H

【引用】.Net開源框架/專案

IOC容器:Castle,Spring.NET; 資料持久層:NHibernate,NBear,Castle ActiveRecord,Grove ; 日誌記錄:Log4net, Logging Application Block; 單元測試:NUnit,TestDriven.Net ; 專案:cs,

基於.NET goshiney框架實現的應用程式

goshiney框架從2013年中期開始伴隨著農信通公共解決方案專案“偷偷”開搞,後面由於專案中止、個人離職等原因,一度被丟棄在硬碟...為了養家餬口,目前不得不暫時放下專業研究,利用這些程式碼定製一些資訊系統,也算使其產生了一定的用途... 隨著多個橫向專案的應用,整個框

ASP.Net: EshineASPNet-基於ASP.Net敏捷開發開源框架

筆者從事asp.NET開發多年,這裡把一套基於asp.Net的比較完善的網站開源分享給大家,主要是幫助新人學習。本框架包含了諸多功能,在實際專案中使用了超過4年時間,相關的工具和核心程式碼可靠性相對比較完善,三層架構也是源於網路回饋網路。部分頁面是由刪除原業務邏輯得到,

基於.NET平臺常用的框架整理

open producer oauth isp mps exce too cms table 自從學習.NET以來,優雅的編程風格,極度簡單的可擴展性,足夠強大開發工具,極小的學習曲線,讓我對這個平臺產生了濃厚的興趣,在工作和學習中也積累了一些開源的組件,就目前想到的先整理

HTTP模擬工具【C#/Winform源碼】、Json綁定TreeView控件、使用了MetroModernUI、RestSharp、Dapper.Net、Newtonsoft.Json、SmartThreadPool這幾個主要開源框架

type form num -m 請求 resource dap bool dev HTTP模擬工具 開發語言:C#/Winform開發工具:Visual Studio 2017數據庫: SQLite使用框架:界面-MetroModernUI

請推薦幾個asp.net下做網站的好的開源框架

b- 開發 開放源代碼 ces dex 生產 推薦 面向對象 塑造 1.We7 CMSWe7 CMS是由西部動力開發的一款充分發掘互聯網Web2.0(如博客、RSS等)的信息組織優勢,將其理念利用到政府企事業網站的構建、組織、管理中的網站建設和管理方面的產品。系統目標:叫創

基於.NET CORE微服務框架 -Api網關服務管理

adding ise -name efault margin where table inf border 1、前言 經過10多天的努力,surging 網關已經有了大致的雛形,後面還會持續更新完善,請大家持續關註研發的動態 最近也更新了surging新的版本 更新內容:

開源傾情奉獻:基於.NET打造IP智能網絡視頻監控系統

.sql sof cau 下載 實時 osi loss metro 4.0 轉載自 http://www.cnblogs.com/gaochundong/p/opensource_ip_video_surveillance_system_part_1_introductio

基於.NET CORE微服務框架 -淺析如何使用surging

ner 合並 strong 異步消息 zookeepe per runtime tro container 1、前言 surging受到大家這麽強烈的關註,我感到非常意外,比如有同僚在公司的分享會上分享surging, 還有在博客拿其它的RPC框架,微服務做對比

基於.NET CORE微服務框架 -談談surging 的messagepack、protobuffer、json.net 序列化

ces type posit rep factor bsp 技術分享 https 我們 1、前言 surging內部使用的是高性能RPC遠程服務調用,如果用json.net序列化肯定性能上達不到最優,所以後面擴展了protobuf,messagepack序列化組件

Quartz.NET開源作業調度框架系列(一):快速入門step by step-轉

rand 隨機 axis 開發人員 c# returns .net開源 觸發 mis  Quartz.NET是一個被廣泛使用的開源作業調度框架 , 由於是用C#語言創建,可方便的用於winform和asp.net應用程序中。Quartz.NET提供了巨大的靈活性但又兼具

Quartz.NET開源作業調度框架系列(二):CronTrigger-轉

obb uil 北京時間 imp builder erb wid res inf  CronTriggers比SimpleTrigger更加的靈活和有用,對於比較復雜的任務觸發規則,例如"每個星期天的晚上12:00"進行備份任務,SimpleTrigger就不能勝任,只

Quartz.NET開源作業調度框架系列(三):IJobExecutionContext 參數傳遞-轉

調度 bool public namespace edt seconds table == row 前面寫了關於Quartz.NET開源作業調度框架的入門和Cron Trigger , 這次繼續這個系列, 這次想討論一下Quartz.NET中的Job如何通過執行上下文(

【轉】Quartz.net開源作業調度框架使用詳解

詳解 des 關於 utc ogg knowledge imp common dem 轉自:http://www.cnblogs.com/knowledgesea/p/4930469.html 前言 quartz.net作業調度框架是偉大組織OpenSymphony開發的q

Asp.Net Core 2.0 項目實戰(2)NCMVC一個基於Net Core2.0搭建的角色權限管理開發框架

ML 用戶 解密 https redis json uil AI 不足 本文目錄 1. 摘要 2. 框架介紹 3. 權限管理之多一點說明 4. 總結 1. 摘要   NCMVC角色權限管理框架是由最近練習Net Core時抽時間整理的

我發起了一個 .Net 開源 跨平臺 GUI (界面開發框架)項目 HtmlSharpCore

size sele 系統 tar 編程 界面程序 .html .cn ++ 大家好 , 我發起了一個 .Net 開源 跨平臺 GUI (界面開發框架)項目 , 名字叫 HtmlCore 。 項目的一個主要目標是可以用 .Net 在 移動設備 上 開發 GUI 程序 (界面

基於.NET平臺常用的框架整理(轉)

god mat 訂閱 socket 丟失 訪問性 pdf 分布式系 雲計 自從學習.NET以來,優雅的編程風格,極度簡單的可擴展性,足夠強大開發工具,極小的學習曲線,讓我對這個平臺產生了濃厚的興趣,在工作和學習中也積累了一些開源的組件,就目前想到的先整理於此,如果再想到,就