天天看點

.NET開源項目常用記錄

 微軟官方出品,是為了協助開發商解決企業級應用開發過程中所面臨的一系列共性的問題,

如安全(Security)、日志(Logging)、資料通路(Data Access)、配置管理(Configuration

Manage)等,并将這些廣泛使用的應用程式塊內建封裝至一個叫企業庫的程式包中

 一個幫助類庫,包含了ActiveRecord,

Csv, Command Line Parsing, Configuration, Validation, Logging, Collections,

Authentication等等

 一個傳統的綜合類庫,包含IOC容器,基于ActiveRecord模式的ORM,類MVC架構,核心,現在用的比較多的是核心Castle.Core,裡面包含了基于虛拟工廠的日志抽象,動态代理DynamicProxy,Dictionary

Adapter(可以将一個接口轉化為強類型的Dictionary對象,具體大家可以查一查,某些場景下很有用)

 我最喜歡的一個IOC容器,特性豐富,除了IOC的基本功能外,還提供子產品化和程式集掃描,内置了很多有用的擴充(Lazy,Func,Owned,IEnumrable)等等,而且對asp.net,mvc,mef,wcf,dynamicProxy等等提供了內建.

 微軟企業庫的基礎,功能簡單,擴充友善,微軟官方提供一個EventBus的擴充例子,值得一看

 主打特性簡單易用,很多講MVC的書中都用這個做例子

 一個傳統的IOC容器,很早就出來了,性能優越,功能穩定,已經不更新了(在一個IOC容器的性能測試中性能最佳)

 一個傳統的ORM,移植于java的Hibernate,3.0後發展迅速,提供FluentMap和FluentConfig,支援Linq,支援HQL和NativeSQL,支援一級緩存和二級緩存,豐富的ID生成政策,更多的攔截事件暴露,支援常見的所有資料庫,缺點就是配置選項有點多,初學者無處下手

 微軟官方出的ORM,配置簡單,比NH更好的Linq支援,工具支援和較低的學習門檻,命名約定配置,支援CodeFirst

DbMigration(在開發時,不能用在生産環境中),缺點就是不支援批量操作(第三方庫EntityFramework.Extension擴充了這一點,還做了緩存),無原生的二級緩存,,單調的ID生成方式,不支援多資料庫(很多資料庫如MySql都對EF提供了支援,但是bug多多,有穩定的商業庫可以選擇),還有單一的配置方式(當你想從程式集動态加載model到DbContext中時,你就會知道就多捉雞)

 StackOverflow開源的一個MiniOrm,性能和原生ado.net相近,0配置,強類型支援.缺點同樣是有小bug,較弱的LINQ支援(隻找到一個MSSQL的linq插件)有兩個關于Dapper的擴充,一個叫Dapper.Extension,一個叫Dapper.Rainbow.Mysql.這兩個擴充可能更接近傳統意義上的ORM

 另外一個MiniORM,性能僅次于Dapper,支援大部分的資料庫,比Dapper豐富的多的API和更好的強類型lambda表達式查詢條件支援,映射0配置,也支援以Attribute配置,支援表的建立和删除,好東西.我最喜歡~~

 使用xlsx協定讀寫Excel2007/2010,功能非常多

 讀寫Word2007/2010檔案,無需安裝office

 操作pdf

 對象映射,常用來做DTO/ViewModel和Model之間的映射,功能豐富遠超你想象

Html解析庫

 Json序列化和反序列化,基本支援所有的json特性,性能也很好,MVC4的預設引用程式集中已包含.(支援4.0的動态對象,這個很好用)

 類似于4.0新出的代碼契約,用于對業務對象建立驗證規則.其本身已經内置了很多的規則

建立,壓縮,解壓Zip檔案

 建立,壓縮,解壓Zip檔案

 支援7zip所有格式的壓縮和解壓縮

 使用可觀測對象(IObservable)的序列和

LINQ 風格的查詢操作來編寫異步和基于事件的程式。開發人員可通過 Rx 使用可觀測對象來表示異步資料流,并使用 LINQ

操作來查詢異步資料流。簡而言之:Rx = Observables + LINQ + Schedulers.

 可以在4.0中使用4.5中新增的async和await兩個關鍵字

 為你的程式一鍵增加更新功能

一個獨立的更新架構,不依賴于你的程式和代碼

 功能強大的電子郵件元件,提供對SMTP,

POP3, IMAP4, NNTP, MIME, S/MIME, OpenPGP, DNS, vCard, vCalendar, Anti-Spam

(Bayesian , RBL, DomainKeys), Queueing, Mail Merge and WhoIs的支援

 一個類似于RubyMigrations的資料庫Migration架構

 一個強大的.NET地圖控件,可以用于Winform和WPF,跨平台,支援

Coogle, Yahoo!, Bing, OpenStreetMap, ArcGIS, Pergo, SigPac, Yandex, Mapy.cz,

Maps.lt, iKarte.lv, NearMap, OviMap, CloudMade, WikiMapia, MapQuest

,同學們可以根據需求擴充國内的版本.

 一個開源的企業總線,C#編寫,不依賴第三方程式集,支援MSMQ和table-based queue

 最流行的.NET開源總線,不依賴于xml配置,支援MSMQ,

RabbitMQ, ActiveMQ, WebSphereMQ, Azure,其次配套設施十分齊全,比如對autofac的內建

 包含一系列的伺服器元件,用來建立自包含的web應用程式.

 開源的asp.net伺服器,IIS的替代品

 IIS配置優化工具

 OpenGL的C#封裝,更新很

快,基本可以與Glew保持一緻.

 強大的圖檔處理庫,可以處理超過100種格式,無需安裝ImageMagick

 Highcharts的封裝,用于asp.net,強類型和智能提示,渣前端開發者的福音.

日志架構如何選擇 如果你使用了微軟企業庫,就用企業庫自帶的,如果你引入的程式集中有的使用了Log4net,那就最好使用Log4net,如果都沒有,看個人喜好

 傳統的日志架構,移植于log4jV1.2,高效,穩定

 官方介紹為進階日志架構,與Log4net相比,有比較強的配置檔案自糾錯能力,更加豐富的LogAppender.

 微軟企業庫自帶的日志記錄子產品

 微軟企業庫新出的日志記錄架構,理念上不同于前面三個,具體可以參考http://blogs.msdn.com/b/agile/archive/2013/02/07/embracing-semantic-logging.aspx

 CMS的新起之秀,基于Asp.net

MVC.擴充很多.非常值得作為源碼學習(值得學習的子產品有IOC的深度應用,基于IOC的EventBus,高度抽象的模闆系統,Cache,插件化體系,基于NH的資料遷移架構)

 DotNetNuke

是微軟支援的一套非常優秀的基于asp.net的開源門戶網站程式,功能強大,地位類似于PHP中的WordPress

 Umbraco

是一種基于.NET技術的開源的CMS(Content Management System),使用SQL

Server或MySQL進行存儲資料。Umbraco最大的特色是簡單、靈活、易用,不管對于開發者還是網站管理者。 Umbraco還提供了WYSIWYG

編輯器幾乎與Microsoft Word完全一樣

 vs必備插件第一,項目依賴檔案管理.也可以在部門内部架設自己的nuget伺服器,用于協作開發中的程式集釋出.

 Sandcastle本身是微軟出品的一個文檔生成工具,用來代替NDoc,SHFB基于SandCastle,提供了更多的選項,工具支援和vs內建,推薦使用