搜尋
首頁後端開發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
C#.NET生態系統:框架,庫和工具C#.NET生態系統:框架,庫和工具Apr 24, 2025 am 12:02 AM

C#.NET生態系統提供了豐富的框架和庫,幫助開發者高效構建應用。 1.ASP.NETCore用於構建高性能Web應用,2.EntityFrameworkCore用於數據庫操作。通過理解這些工具的使用和最佳實踐,開發者可以提高應用的質量和性能。

將C#.NET應用程序部署到Azure/AWS:逐步指南將C#.NET應用程序部署到Azure/AWS:逐步指南Apr 23, 2025 am 12:06 AM

如何將C#.NET應用部署到Azure或AWS?答案是使用AzureAppService和AWSElasticBeanstalk。 1.在Azure上,使用AzureAppService和AzurePipelines自動化部署。 2.在AWS上,使用AmazonElasticBeanstalk和AWSLambda實現部署和無服務器計算。

C#.NET:強大的編程語言簡介C#.NET:強大的編程語言簡介Apr 22, 2025 am 12:04 AM

C#和.NET的結合為開發者提供了強大的編程環境。 1)C#支持多態性和異步編程,2).NET提供跨平台能力和並發處理機制,這使得它們在桌面、Web和移動應用開發中廣泛應用。

.NET框架與C#:解碼術語.NET框架與C#:解碼術語Apr 21, 2025 am 12:05 AM

.NETFramework是一個軟件框架,C#是一種編程語言。 1..NETFramework提供庫和服務,支持桌面、Web和移動應用開發。 2.C#設計用於.NETFramework,支持現代編程功能。 3..NETFramework通過CLR管理代碼執行,C#代碼編譯成IL後由CLR運行。 4.使用.NETFramework可快速開發應用,C#提供如LINQ的高級功能。 5.常見錯誤包括類型轉換和異步編程死鎖,調試需用VisualStudio工具。

揭開c#.net的神秘面紗:初學者的概述揭開c#.net的神秘面紗:初學者的概述Apr 20, 2025 am 12:11 AM

C#是一種由微軟開發的現代、面向對象的編程語言,.NET是微軟提供的開發框架。 C#結合了C 的性能和Java的簡潔性,適用於構建各種應用程序。 .NET框架支持多種語言,提供垃圾回收機制,簡化內存管理。

C#和.NET運行時:它們如何一起工作C#和.NET運行時:它們如何一起工作Apr 19, 2025 am 12:04 AM

C#和.NET運行時緊密合作,賦予開發者高效、強大且跨平台的開發能力。 1)C#是一種類型安全且面向對象的編程語言,旨在與.NET框架無縫集成。 2).NET運行時管理C#代碼的執行,提供垃圾回收、類型安全等服務,確保高效和跨平台運行。

C#.NET開發:入門的初學者指南C#.NET開發:入門的初學者指南Apr 18, 2025 am 12:17 AM

要開始C#.NET開發,你需要:1.了解C#的基礎知識和.NET框架的核心概念;2.掌握變量、數據類型、控制結構、函數和類的基本概念;3.學習C#的高級特性,如LINQ和異步編程;4.熟悉常見錯誤的調試技巧和性能優化方法。通過這些步驟,你可以逐步深入C#.NET的世界,並編寫高效的應用程序。

c#和.net:了解兩者之間的關係c#和.net:了解兩者之間的關係Apr 17, 2025 am 12:07 AM

C#和.NET的關係是密不可分的,但它們不是一回事。 C#是一門編程語言,而.NET是一個開發平台。 C#用於編寫代碼,編譯成.NET的中間語言(IL),由.NET運行時(CLR)執行。

See all articles

熱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

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

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

記事本++7.3.1

記事本++7.3.1

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

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中