目錄
分散式快取框架:
開源的.NET系統建議:
日誌記錄異常處理:
關於NoSQL資料庫:
自動任務排程框架
#依賴注入IOC容器框架:
常用的幾個ORM框架:
反射與動態語言
跨平台和執行時間解決方案
WEB開發與設計
行動互聯網和雲端運算
網路通訊與網路協定
圖形與影像處理框架
桌面應用程式框架
測試和效能評估方面
交易和分散式事務支援
分詞、全文檢索和搜尋引擎
資料驗證元件整理
開源圖表統計控件:
首頁 後端開發 C#.Net教程 總結.NET平台上一些常用的框架

總結.NET平台上一些常用的框架

Jun 24, 2017 am 09:22 AM
.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架構,這表示訊息在發送給客戶端時先在中心佇列排隊。對路由,負載平衡或資料持久化都有很好的支援。

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是一個非常輕量級的訊息系統,除了效能非常好之外,也是一個運作良好的分散式系統。

Redis

Redis是基於Key-Value對的NoSQL資料庫,開發維護很活躍。雖然它是一個Key-Value資料庫儲存系統,但它本身支援MQ功能,所以完全可以當作一個輕量級的佇列服務來使用。對於RabbitMQ和Redis的入隊和出隊操作,各執行100萬次,每10萬次記錄一次執行時間。測試資料分為128Bytes、512Bytes、1K和10K四個不同大小的資料。實驗顯示:入隊時,當數據比較小時Redis的表現要高於RabbitMQ,而如果數據大小超過了10K,Redis則慢的無法忍受;出隊時,無論數據大小,Redis都表現出非常好的性能,而RabbitMQ的出隊表現則遠低於Redis。

ZeroMQ


#

以上是總結.NET平台上一些常用的框架的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何評估Java框架商業支援的性價比 如何評估Java框架商業支援的性價比 Jun 05, 2024 pm 05:25 PM

評估Java框架商業支援的性價比涉及以下步驟:確定所需的保障等級和服務等級協定(SLA)保證。研究支持團隊的經驗和專業知識。考慮附加服務,如昇級、故障排除和效能最佳化。權衡商業支援成本與風險緩解和提高效率。

PHP 框架的學習曲線與其他語言框架相比如何? PHP 框架的學習曲線與其他語言框架相比如何? Jun 06, 2024 pm 12:41 PM

PHP框架的學習曲線取決於語言熟練度、框架複雜性、文件品質和社群支援。與Python框架相比,PHP框架的學習曲線較高,而與Ruby框架相比,則較低。與Java框架相比,PHP框架的學習曲線中等,但入門時間較短。

PHP 框架的輕量級選項如何影響應用程式效能? PHP 框架的輕量級選項如何影響應用程式效能? Jun 06, 2024 am 10:53 AM

輕量級PHP框架透過小體積和低資源消耗提升應用程式效能。其特點包括:體積小,啟動快,記憶體佔用低提升響應速度和吞吐量,降低資源消耗實戰案例:SlimFramework創建RESTAPI,僅500KB,高響應性、高吞吐量

如何為不同的應用場景選擇最佳的golang框架 如何為不同的應用場景選擇最佳的golang框架 Jun 05, 2024 pm 04:05 PM

根據應用場景選擇最佳Go框架:考慮應用類型、語言特性、效能需求、生態系統。常見Go框架:Gin(Web應用)、Echo(Web服務)、Fiber(高吞吐量)、gorm(ORM)、fasthttp(速度)。實戰案例:建構RESTAPI(Fiber),與資料庫互動(gorm)。選擇框架:效能關鍵選fasthttp,靈活Web應用選Gin/Echo,資料庫互動選gorm。

Java框架學習路線圖:不同領域中的最佳實踐 Java框架學習路線圖:不同領域中的最佳實踐 Jun 05, 2024 pm 08:53 PM

針對不同領域的Java框架學習路線圖:Web開發:SpringBoot和PlayFramework。持久層:Hibernate和JPA。服務端響應式程式設計:ReactorCore和SpringWebFlux。即時計算:ApacheStorm和ApacheSpark。雲端運算:AWSSDKforJava和GoogleCloudJava。

Golang框架學習過程中常見的迷思有哪些? Golang框架學習過程中常見的迷思有哪些? Jun 05, 2024 pm 09:59 PM

Go框架學習的迷思有以下5種:過度依賴框架,限制彈性。不遵循框架約定,程式碼難以維護。使用過時庫,帶來安全和相容性問題。過度使用包,混淆程式碼結構。忽視錯誤處理,導致意外行為和崩潰。

golang框架開發實戰詳解:問題答疑 golang框架開發實戰詳解:問題答疑 Jun 06, 2024 am 10:57 AM

在Go框架開發中,常見的挑戰及其解決方案是:錯誤處理:利用errors套件進行管理,並使用中間件集中處理錯誤。身份驗證和授權:整合第三方庫並建立自訂中間件來檢查憑證。並發處理:利用goroutine、互斥鎖和通道來控制資源存取。單元測試:使用gotest包,模擬和存根隔離,並使用程式碼覆蓋率工具確保充分性。部署和監控:使用Docker容器打包部署,設定資料備份,透過日誌記錄和監控工具追蹤效能和錯誤。

C#.NET面試問題和答案:提高您的專業知識 C#.NET面試問題和答案:提高您的專業知識 Apr 07, 2025 am 12:01 AM

C#.NET面試問題和答案包括基礎知識、核心概念和高級用法。 1)基礎知識:C#是微軟開發的面向對象語言,主要用於.NET框架。 2)核心概念:委託和事件允許動態綁定方法,LINQ提供強大查詢功能。 3)高級用法:異步編程提高響應性,表達式樹用於動態代碼構建。

See all articles