自從學習.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平台常用的框架整理的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

C#.NET依然重要,因為它提供了強大的工具和庫,支持多種應用開發。 1)C#結合.NET框架,使開發高效便捷。 2)C#的類型安全和垃圾回收機制增強了其優勢。 3).NET提供跨平台運行環境和豐富的API,提升了開發靈活性。

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

C#和.NET通過不斷的更新和優化,適應了新興技術的需求。 1)C#9.0和.NET5引入了記錄類型和性能優化。 2).NETCore增強了雲原生和容器化支持。 3)ASP.NETCore與現代Web技術集成。 4)ML.NET支持機器學習和人工智能。 5)異步編程和最佳實踐提升了性能。

c#.netissutableforenterprise-levelapplications withemofrosoftecosystemdueToItsStrongTyping,richlibraries,androbustperraries,androbustperformance.however,itmaynotbeidealfoross-platement forment forment forment forvepentment offependment dovelopment toveloperment toveloperment whenrawspeedsportor whenrawspeedseedpolitical politionalitable,

C#在.NET中的編程過程包括以下步驟:1)編寫C#代碼,2)編譯為中間語言(IL),3)由.NET運行時(CLR)執行。 C#在.NET中的優勢在於其現代化語法、強大的類型系統和與.NET框架的緊密集成,適用於從桌面應用到Web服務的各種開發場景。

C#是一種現代、面向對象的編程語言,由微軟開發並作為.NET框架的一部分。 1.C#支持面向對象編程(OOP),包括封裝、繼承和多態。 2.C#中的異步編程通過async和await關鍵字實現,提高應用的響應性。 3.使用LINQ可以簡潔地處理數據集合。 4.常見錯誤包括空引用異常和索引超出範圍異常,調試技巧包括使用調試器和異常處理。 5.性能優化包括使用StringBuilder和避免不必要的裝箱和拆箱。

C#.NET應用的測試策略包括單元測試、集成測試和端到端測試。 1.單元測試確保代碼的最小單元獨立工作,使用MSTest、NUnit或xUnit框架。 2.集成測試驗證多個單元組合的功能,常用模擬數據和外部服務。 3.端到端測試模擬用戶完整操作流程,通常使用Selenium進行自動化測試。

C#高級開發者面試需要掌握異步編程、LINQ、.NET框架內部工作原理等核心知識。 1.異步編程通過async和await簡化操作,提升應用響應性。 2.LINQ以SQL風格操作數據,需注意性能。 3..NET框架的CLR管理內存,垃圾回收需謹慎使用。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver CS6
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。