天天看點

這些.NET開源項目你知道嗎?讓.NET開源來得更加猛烈些吧!(第二輯)

    注意,本文所列出的.NET開源元件都是功能比較實用,但日常中曝光度比較少的,很多大家都知道的項目,我也沒必要再發出來了。可能部分已經放棄更新了,但并不能說就不能用了,對于新手來說,可以是一個學習的過程,同時很多小功能元件,并不需要多長久的更新,穩定就行了。

    FluentValidation是一個使用Linq表達式,非常流暢的小型業務對象驗證元件。流暢也可以說優雅。類似鍊式操作。易于了解,功能完善。還可以配合MVC使用直接在頁面進行驗證,當你看到它的文法時,非常優雅,非常令人心動。看如下官網提供的一段驗證代碼:

    不僅可以使用Linq的操作,還能自帶驗證傳回資訊。更重要的是,元件内部已經封裝好了10幾種驗證器。當然可以自定義一個複雜的哦。核心dll檔案也不大,130多k。如果好用,可以自己移植到自己的系統哦。直接更好。

    NuGet Packages:Install-Package FluentValidation

    ASP.NET MVC內建包:Install-Package FluentValidation.MVC5 

    Expression Evaluator支援的特性有:

支援算術運算符,支援關系運算符,以及邏輯運算符

支援表達式分組和括号,以及遞增遞減運算符

支援表達式屬性通路以及動态類型,支援字元串的+運算

支援數值類型的字尾d/f/m/l/u/ul、

支援隐式表達式,以及成員通路操作符(.)

支援一些預設的類型,如double, float, char, string, DateTime, Convert, Math

支援foreach循環

。。。等等,更多功能還期待你的使用和發現

    簡單的數值表達式就不示範了,看一個比較有新意的代碼:

     幾乎每個搞.NET的人都多多少少會積累自己的正常基礎類庫,比如XXhelp,XXUntil之類的。都是一些簡單功能的封裝。同樣開源的基礎類庫也很多,這裡就介紹幾個,按需選擇,不一定都要用,可以提取部分出來給自己用了。

     功能性的基類。已經包裝得很完善,可以安裝單個命名空間的包。例如官方列出了:

    。。。。。。。。。

   包括了資料類型轉換,加密,Web,ORM,壓縮,緩存,數學計算,檔案格式,随機數,反射,IOC,驗證等基礎功能子產品。自己去看看了,太多了,一時半會不一定都用得上。     

    顧名思義就是.NET的擴充類庫了。核心功能包括對現有.NET命名空間的大量擴充方法,如:

    。。。。。。

    都是細節性的,就不過多的描述了,自己看吧。

     這個開發人員工具庫功能子產品也很上面的差别多,有集合,配置,加密,IO,網絡,反射,序列化,文本,Web, 驗證,日期等的封裝。

  生成PDF檔案格式的文檔,大家肯定有想過,很多人項目中也肯定用過,方法、元件肯定有很多。由于以前隻是了解,并不實際操作,是以也不過多關注,偶然看到一款開源的操作PDF檔案的類庫,比較感興趣,花了點時間看看官方網站的說明,資料都比較齊全,是以推薦一下,以後有時間會寫篇文章具體介紹一下。

  PDFSharp元件主要特點有:

1.可以使用任何.NET程式設計語言動态建立PDF文檔

2.很容易使用對象模型來建構文檔

3.全部用C#重寫設計和編寫代碼

4.可以生成PDF檔案和顯示在窗體或者列印,都使用同一源檔案

5.可以修改、合并或者分割PDF檔案

6.可以控制圖檔的透明度,嵌入了字型

    Chaow Framework準确來說,也是一個開發人員基礎工具箱,隻不過我認為和3中介紹的幾個有稍微的差別,這個主要是展現在寫法上,擴充方法的使用更加優雅。如果你認為和上面3中介紹的一樣,其實也無可厚非,看看它的幾個簡單例子,管中窺豹吧。

    函數式程式設計方法:

    還有諸如排列組合生成,集合運算相關的擴充方法。

    Javascript.NET是一個将Google V8 Javascript引擎內建和引入到CLI環境的工具,它可以在運作的過程中,使用C#代碼來執行JavaScript代碼。威力強不強大,還是看代碼吧:

     ClearScript的功能和上面的Javascript.NET是類似的,不僅可以動态的在.NET應用程式中添加JavaScript腳本,還可以添加C#腳本,相當于動态執行C#代碼,當然這樣的功能元件在前面一篇文章也介紹過,這個元件支援Google的 V8, 微軟的JScript 和 VBScript引擎。功能同樣也不含糊,看代碼,由于js是本人的硬傷,不多說了:

    這貨是一個将C#代碼轉換為JavaScript代碼的開源工具,雖然是和.net平台應用有點相反,但總歸是一個奇葩角色,感覺很有意思,沒玩過。。。那天實在要寫js代碼了,用它試試看。

     NAudio是一個.NET平台開源的音頻和MIDI程式庫,包括大量音頻處理相關.NET功能子產品,可以加速開發。一直在程式更新中。目前有大量的成熟軟體使用了NAudio,例如下面一些軟體或者開源項目都有用到,是以應該很成熟,下面一些元件本身也是開源的,可以進行學習和使用參考:

<a href="http://www.winisoft.ch/">All My Music</a>

    Toxy是一個擷取資料和文檔資訊的抽取架構, 支援日常很多常見的格式,如docx, xlsx, xls, pdf, txt, epub, html等等。

    有意思的是,這個架構的開發者是Tony Qu,也是大名鼎鼎的NPOI的主要開發者。贊一個,NPOI總的來說非常好用。期待越來越強大,因為網際網路的資料除了html之外,還有大量的文檔格式,如果快速的檢索抽取這些中繼資料資訊,是非常有用的。

     這個比較簡單,是擷取.net程式集資訊的一個小功能元件。如下面這個圖顯示的程式集的相關資訊:

這些.NET開源項目你知道嗎?讓.NET開源來得更加猛烈些吧!(第二輯)

繼續閱讀