注意:有網友提出部分項目停止更新的事情,這個問題我特意注意過,很多都是小功能組件,功能穩定,沒有bug,沒更新是正常的。夠用就行了。其次技術支持的事情,對開源免費來說,不能太強求,這里發布的都是小功能組件,一般看源碼也比較好理解,各取所需。當然有最好。。
長期關注和使用.NET開源項目,給我帶來了很多好處:
1.可以快速完成我的想法,也就是所謂的業務細節,而不是關注如何實現;
2.可以更快更穩定的完成需求,而不是自己造輪子實現,花費時間;
3.從.NET開源項目的使用以及源碼閱讀中也會帶來一些好處;
實際上並不是說造輪子不好,而是本來技術功底和專業水平就不夠,實在造不了。所以感謝開源社區,感謝C#,感謝那些參與和共享開源項目代碼的人,有了你們,我才進步更快。08年比較正式開始接觸C#,並用來完成研究生階段所需要的任務以來,接觸過很多開源項目,特別是經常去Codeplex,CodeProject,以及現在更加流行的github。上個月發表了一篇關於.NET平台開源的機器學習組件文章:,非常受歡迎。所以特意把自己這些年發現的一些項目總結出來,獻給大家。
現在微軟對開源態度越來越明確,動作越來越大,所以讓我們更加關注.NET平台的開源項目。考慮到類似的匯總很多,所以我並沒有列出一些常見的,而是列出一些不常見的。如果和部分文章有重合,純屬偶爾。以下排名不分先后,都是功能性質,大家收藏保留備用吧。另外部分開源項目的使用和介紹我將通過博客專題發布,將選擇幾個比較通用的組件,每一篇介紹其功能和基本使用,請大家關注博客的動態。
本文原文地址:這些.NET開源項目你知道嗎?讓.NET開源來得更加猛烈些吧
這次先整理出15個個人認為比較好的項目。后面有時間還整理出15個左右。主要是每一次碰到了都往收藏夾里面塞。。。現在收藏夾都成這個樣子了(縮略圖,點擊放大):
所以原諒我,不能把所有的都發上來,太雜了,反而不好。
1..NET時間周期處理組件
這個組件很小,主要是對時間日期,特別是處理時間間隔以及時間范圍非常方便。雖然.NET自帶了時間日期的部分功能,但可能還不強大。這個組件就是增強版本。詳細功能可以看項目主頁的介紹。在CodeProject:
http://www.codeproject.com/Articles/168662/Time-Period-Library-for-NET
2.OxyPlot繪圖組件
OxyPlot是一個.NET跨平台的繪圖組件,關注很久,但還沒用過,以前用的是ZedGraph,感覺是丑了點,但當時不知道OxyPlot。微軟從.NET 3.5開始也提供了一個繪圖控件MS Chart,也比較好用。這個組件從外觀上來說,更加簡潔,所以實現也應該更加簡單,大家看看可以用在什么場合。看看這個圖是不是很清爽。。。
官方網站:http://oxyplot.org/
3..NET平台CAD建模組件AnyCAD
對我來說,用.NET來操作CAD文件是一個多么可怕和充滿幻想的事情,但直到一次偶然的機會碰到它了,也改變了我的想法。當然這個組件是有商業的,也有免費版本。對普通用戶來說,非常棒,雖然可能大部分人用不上,但收藏一下,備用吧,沒准那天就要用了。
4.SharpConfig配置文件操作組件
SharpConfig是一個使用非常簡單,功能單一但強勁的開源.NET類庫。讓復雜的配置文件操作變得和操作對象一樣簡單,是不是很有趣。關於這個組件我會單獨寫一篇使用和介紹的問題,因為的確很誘人。看個截圖:
官方網站:http://sharpconfig.codeplex.com/
5.MailSystem.NET郵件組件
MailSystem是一個.NET平台開源的郵件處理組件,支持SMTP, POP3, IMAP4, NNTP, MIME, S/MIME, OpenPGP, DNS, vCard, vCalendar, 反垃圾郵件,查詢合並等功能。如果要在非GPLv3軟件使用,必須獲得商業許可。
官方網站:http://mailsystem.codeplex.com/
6.Compare .NET Objects對象比較組件
這個組件的主要功能如名字所示就是深入比較2個.NET對象,是否相等或者是否有差異。可能很多.NET對象實現了一些.NET自帶的接口可以直接進行比較,但是這個組件比較的范圍和功能更加廣泛。例如:
可以比較默認的子節點;
可以比較結構體;
可以比較IList對象;
可以比較單維或者多維的數組對象;
可以比較枚舉類型;
可以比較IDictionary對象;
可以比較數據集,數據表,字典等等;
可以比較私有字段或者屬性等等。。。
還有很多,不一一列舉,可以去官網詳細了解。
官方網站:http://comparenetobjects.codeplex.com/
7.Security Library安全組件
這是一個.NET平台安全相關的開源組件,由於這方面個人了解比較少,沒有深入研究,目前支持SSL和TLS,證書管理,以及加密轉換。
官方網站:http://www.mentalis.org/soft/projects/seclib/
8.NLocalizer本地化多語言組件
多語言,本地化是很多人研究過的,也許都有自己的解決方案。這個NLocalizer目的就是方便.NET的開發者可以快速構建多語言的軟件,使用也很簡單。官方提供了一個案例,可以直接獲取現有Winform項目所有的控件的值,進行編輯即可實現多語言。
官方網站:http://nlocalizer.codeplex.com/
9.PhysicalMeasure計量單位組件
PhysicalMeasure項目是一個物理單位和計量系統,支持不同計量單位間的轉換。雖然這個東西很少有人用到,不過還真碰到過有一個朋友做類似的東西。這個東西雖然想起來簡單,但實際做起來還是比較費勁的,主要是做全面和穩定。所以平時見得多了,有時候碰到需求了,思路就來了,再就是多看看新聞,看看別人的經驗的好處。
官方網站:http://physicalmeasure.codeplex.com/
10.Database Schema Reader
Database Schema Reader是一個開源的數據庫架構獲取個工具。很多多ORM或者代碼生成的人可能會用到。對於支持多種數據庫的ORM是比較有用的,當然其他用途也有,比如生成數據庫字典文檔之類的。。。大家盡情發揮好了。目前支持的數據庫非常廣泛,例如:SqlServer, SqlServer CE 4, MySQL, SQLite, System.Data.OracleClient, ODP, Devart, PostgreSql, DB2等等。
官方網站:http://dbschemareader.codeplex.com/
11.SDS:面向科學數據集的組件工具
SDS(Scientific DataSet library and tools)是一個面向.net開發人員讀取和共享各種科學數據的工具,支持 CSV, NetCDF 以及其他文件格式。
12.LiteDB文件數據庫-NoSQL
LiteDB是一個小型的.NET平台開源的NoSQL類型的輕量級文件數據庫。特點是小和快,dll文件只有200K大小,而且支持LINQ和命令行操作,數據庫是一個單一文件,類似Sqlite,其他功能就細說了。有空看官網文件,這個數據庫我會寫一篇介紹和使用文章。
13.CSharpCompiler
CSharpCompiler是一個.NET平台開源免費的在程序員中編譯C#源代碼的組件,可以做的事情很多,例如用它來實現C#寫腳本。。。。以及用來創建自己的C# IDE編輯器等等。例如官方的一個例子:
官方網站:http://csharpcompiler.codeplex.com/
14.博易博客
博易博客是一款免費、開源的博客系統。它是基於 BlogEngine.NET 進行中文本地化,並將其努力在中國進行推廣和應用。遵循 W3C 標准,具有極強的可擴展性、高性能、良好的 SEO 性能和非凡的用戶體驗。想自己搭建博客的朋友,這是一個不錯的選擇。如下圖是一個風格的博客界面:
BlogEngine.NET官方網站:http://www.dotnetblogengine.net/
官方網站:http://wangxianyuan.com/blogengine/
15.小泥鰍博客系統
小泥鰍博客系統也是一個.NET平台的開源免費博客系統,創建於2008年夏天,基於.Net平台開發,擁有完整的文章發布,評論,訂閱,標簽等功能,滿足個人/團隊信息發布需求,可作為Blog,CMS,甚至建企業站。有靈活的模板機制,可以自定義關鍵字,自定義Url,SEO 優化,完美支持離線寫作。如:Windows Live Writer(推薦)(教程),Office Word 2007,支持包括RSS訂閱,評論訂閱,多種性質的郵件訂閱等。這個項目可以作為學習使用,參考了不少開源組件。
今天就到此為止,欲知后事如何,請聽下回分解。。。剩下的,朋友們,狂點贊吧。。。。