天天看點

[置頂]這些.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開源來得更加猛烈些吧!(第二輯)
[置頂]這些.NET開源項目你知道嗎?讓.NET開源來得更加猛烈些吧!(第二輯)
[置頂]這些.NET開源項目你知道嗎?讓.NET開源來得更加猛烈些吧!(第二輯)
[置頂]這些.NET開源項目你知道嗎?讓.NET開源來得更加猛烈些吧!(第二輯)

繼續閱讀