微信号:csharpba

介绍:百度c# (csharp)贴吧,.NET技术交流.

这些.NET开源项目你知道吗?

2015-06-30 11:42 csharp吧

长期关注和使用.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文件是一个多么可怕和充满幻想的事情,但直到一次偶然的机会碰到它了,也改变了我的想法。当然这个组件是有商业的,也有免费版本。对普通用户来说,非常棒,虽然可能大部分人用不上,但收藏一下,备用吧,没准那天就要用了。


官方网站:http://www.anycad.net/


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 以及其他文件格式。


官方网站:http://sds.codeplex.com/


12.LiteDB文件数据库-NoSQL


LiteDB是一个小型的.NET平台开源的NoSQL类型的轻量级文件数据库。特点是小和快,dll文件只有200K大小,而且支持LINQ和命令行操作,数据库是一个单一文件,类似Sqlite,其他功能就细说了。有空看官网文件,这个数据库我会写一篇介绍和使用文章。


官方网站:http://www.litedb.org/


13.CSharpCompiler


CSharpCompiler是一个.NET平台开源免费的在程序员中编译C#源代码的组件,可以做的事情很多,例如用它来实现C#写脚本。。。。以及用来创建自己的C# IDE编辑器等等。例如官方的一个例子: 

 

官方网站:http://csharpcompiler.codeplex.com/

 
csharp吧 更多文章 c#官方微信公众号-首篇语 C# memcache 清除代码异味 有人向我反馈了一个bug 25个Git用法技巧
猜您喜欢 Swift语言大改动已结束? CIO未来三年主要工作安全移动和大数据 Android 开发者需要知道的8个项目管理技巧 6款优秀的Python IDE 详述Redis和Memcached的区别