天天看点

[置顶]这些.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开源来得更加猛烈些吧!(第二辑)

继续阅读