NLog

NLog 目前最为出色的 .NET 日志库,非常容易配置,且极具灵活性。最重要的是与 log4net 相比,NLog 的开发很活跃。顺带提一句,NLog 完全兼容 Mono。

Mono.Cecil

.NET IL代码及 Assembly 操纵库,可以不需要把 DLL 加载到内存就能够分析其中的元数据和类型,也能够创建 Assembly。此库被广泛应用于涉及 IL 代码分析和生成的领域。

NRefactory

NRefactory 提供了对 C# 和 VB.net 代码的解析和编译功能。你可以通过 NRefactory 把一段 C# 源程序解析成抽象语法树,甚至还能够进行语义分析和生成 IL代码。换句话说,NRefactory 把一个 C# 编译器以 API 的形式提供给你,让你有能力在程序运行时处理 C# 代码,实际上,NRefactory 的核心就是一个修改过的 Mono C# 编译器。NRefactory 在很多地方是非常有用的,一个最简单也是最实用的例子:C#中的 LINQ 表达式通常是静态的,也就是你写的  from x in y where xxx 最终是被编译器转化成了表达式树的形式。因此, C# 程序在运行的时候是无法如 SQL 一般通过字符串来拼凑出 LINQ 表达式并执行的,但通过 NRefactory 提供的编译器级别的能力你就能够做到这一点。

Irony

Irony 号称是“编译器构造工具”,实际上是一个类似 C++ Boost.spirit 的 LALR 语法分析生成器,但与 C++ Boost.spirit 不同的是 Irony 是在运行时生成解析器,而不是靠各种奇技淫巧的模板元编程。拜 C# 的操作符重载能力所赐,Irony 的语法定义已经很接近 EBNF 的定义了,相当简洁。如果有简单的文本文件解析的需要的话,Irony 应该是不错的选择。稍显遗憾的是 Irony 的解析器不是泛型的,只能解析 string 不能解析字节流,而且目前 Irony 还处于 alpha 阶段,并不适合生产使用。

Ionic.Zip(DotNetZip)

Ionic.Zip 是一个非常轻量级的 Zip 文件访问库,提供了压缩和解压缩 zip 文件的功能,相对于常见的 Sharpzip 库,Ionic.Zip 的优点在于轻量级,只有一个很小的 DLL。且 Ionic.Zip 的MS-PL授权形式更加开放,对商业应用更加友好。

Dapper, OrmLite 与 Simple.Data

这三个都是极轻量级的 ORM 工具,基本功能就是从 POCO 对象转换为 SQL  查询与SQL查询结果转换为 POCO 对象,由于它们都只在 ADO.NET 上做了一层非常薄的封装,因此性能非常高,跟直接用 ADO.NET 相差无几。相对与 NHibernate 和 ADO.NET EF 这样的全功能 ORM 框架来说,轻量级 ORM 基本上都不支持更改跟踪之类的高级功能,但是比起手工拼接 SQL 方便和安全很多。三个库都支持完全意义上的 POCO 对象,不像 NHibernate 要求对象的属性 virtual 的,可以说没有一点儿侵入性。特别要说的是 Dapper,这个库只有一个 .cs 源文件,而且没有限制数据库,只要有 ADO.NET 驱动的都可以,这一点是另外两个都做不到的。另外,OrmLite 有个特性可以跟据 POCO 对象自动建表,对于数据库的操作因此方便了很多,但其目前支持 SQLite 和 SQL Server 不能不说是很大的遗憾。

最后的结论就是,如果你目前:还在用 .NET 1.0 时代的 DbHelper 或者 SqlHelper、不满意 NHibernate/ADO.NET EF 的性能、直接用 ADO.NET 的话,这三个工具都可以很好地帮助你以微小的性能损失为代价换来更好与更安全的数据库访问层设计。

转载于:https://www.cnblogs.com/oldrev/archive/2011/12/23/2300035.html

几个不常见但非常出色的 .NET 开源库相关推荐

  1. 这十个不常见但却十分实用的Python库,你知道几个?

    Python是一门神奇的语言,它是世界上发展最快的编程语言之一,尤其在数据科学方面的作用大家是有目共睹,Python的整个生态系统和它的库使它成为全世界用户(初学者和高级用户)的最佳选择.它的成功和流 ...

  2. python常见开源库整理

    看到一个整理比较好饿 python常见开源库,先收藏一下 python 各种开源库 - 星辰虎贲 - 博客园

  3. 发布自己的开源库到Cocoapods及部分常见错误

    前言 iOS开发中,我们会经常用到cocoapods来添加依赖库,有时候可能也会自己封装一些好用的库,可以发布到cocoapods分享给各位码友使用.本文将详细讲解如何发布自己的开源库到cocoapo ...

  4. 【点云处理常见的开源库】

    目录 (1)Eigen: 一个标准的C++模板库用于线性代数,矩阵,向量等计算. (2)FLANN:快速最近邻逼近搜索函数库,可实现快速高效匹配. (3)libLAS: 用于读取和写入非常常见的LAS ...

  5. Python爬虫中最重要、最常见、一定要熟练掌握的库

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 开始正文 Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它. 下 ...

  6. python概率论_概率论中常见分布总结以及python的scipy库使用

    概率分布有两种类型:离散(discrete)概率分布和连续(continuous)概率分布. 离散概率分布也称为概率质量函数(probability mass function).离散概率分布的例子有 ...

  7. 常见的嵌入式端流媒体服务器开源项目!

    大家好,今天给大家汇总一些在嵌入式里面常见的流媒体服务器,在以往也有给大家简单提过,今天做一个汇总!希望对大家有用! 常见的流媒体服务器开源项目汇总: 1.srs: 官网: https://ossrs ...

  8. scipy 概率 泊松分布_概率论中常见分布总结以及python的scipy库使用:两点分布、二项分布、几何分布、泊松分布、均匀分布、指数分布、正态分布......

    概率分布有两种类型:离散(discrete)概率分布和连续(continuous)概率分布. 离散概率分布也称为概率质量函数(probability mass function).离散概率分布的例子有 ...

  9. 概率论中常见分布总结以及python的scipy库使用:两点分布、二项分布、几何分布、泊松分布、均匀分布、指数分布、正态分布...

    概率分布有两种类型:离散(discrete)概率分布和连续(continuous)概率分布. 离散概率分布也称为概率质量函数(probability mass function).离散概率分布的例子有 ...

  10. 水平分库分表的关键步骤和技术难点,分库分表的几种常见玩法及如何解决跨库查询等问题...

    http://blog.csdn.net/dinglang_2009/article/details/53195871 http://blog.csdn.net/dinglang_2009/artic ...

最新文章

  1. 注册oracle驱动,注册设备 ID - 编写适用于 Oracle® Solaris 11.2 的设备驱动程序
  2. black.lst 丢失或被破坏,怎么解决
  3. html5 测研制,360发布国内首个HTML5实验室 4大特性抢先测
  4. 又学到了一个拒绝加班的技巧
  5. 暑期训练日志----2018.8.25
  6. 计算机浏览器应用程序,基于浏览器的应用程序
  7. haproxy acl访问限制IP
  8. Linux下编写简单的程序
  9. html5 h264 websocket,2.5 在WebSocket中使用HTML5媒体
  10. 平面设计需要学什么软件?平面设计软件有哪些?
  11. 网吧电影服务器解决方案完全指南(二)
  12. 视觉测试_5分钟即可开始视觉测试
  13. 如何选择合适的RFID标签
  14. 我来告诉你spyder打不开在哪里看找问题
  15. Jarvis OJ BASIC部分题目writeup
  16. JS中数组(Array)、Json对象长度(length)获取方法
  17. 阿里云云栖社区合作指南
  18. Linux中用VI/VIM编辑器
  19. C++ 文件的随机读写
  20. 推行国产操作系统的优劣

热门文章

  1. 解决问题-ERROR 1044 (42000) Access denied for user ''@'localhost' to database 'mysql
  2. 利用matlab设计矩形脉冲信号,信号课程设计
  3. 安卓手机获取root权限
  4. 为什么程序员很难找到合适的另一半?
  5. 3D检测入门知识梳理
  6. SDAU信息学院LaTeX模板使用指南
  7. java操作mysql临时表_MySQL 临时表
  8. 吴伯凡-认知方法论-效率高并不一定是好事
  9. 中华传统文化网页作业报告
  10. 基于存储卡的音乐播放器0.6