长期关注和使用.NET开源项目,给我带来了很多好处:
1.可以快速完成我的想法,也就是所谓的业务细节,而不是关注如何实现;
2.可以更快更稳定的完成需求,而不是自己造轮子实现,花费时间;
3.从.NET开源项目的使用以及源码阅读中也会带来一些好处;
实际上并不是说造轮子不好,而是本来技术功底和专业水平就不够,实在造不了。所以感谢开源社区,感谢C#,感谢那些参与和共享开源项目代码的人,有了你们,我才进步更快。08年比较正式开始接触C#并用来完成研究所阶段所需要的任务以来,接触过很多开源项目,特别是经常去Codeplex,CodeProject,以及现在更加流行的github。上个月发表了一篇关于.NET平台开源的机器学习组件文章:,非常受欢迎。所以特意把自己这些年发现的一些项目总结出来,献给大家。
现在微软对开源态度越来越明确,动作越来越大,所以让我们更加关注.NET平台的开源项目。考虑到类似的汇总很多,所以我并没有列出一些常见的,而是列出一些不常见的。如果和部分文章有重合,纯属偶尔。以下排名部分先后,都是功能性质,大家收藏保留备用吧。另外部分开源项目的使用和介绍我将通过博客专题发布,将选择几个比较通用的组件,每一篇介绍其功能和基本使用,请大家关注博客的动态。
本文原文地址:http://www.cnblogs.com/asxinyu/p/4519513.html
这次先整理出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文件是一个多么可怕和充满幻想的事情,但直到一次偶然的机会碰到它了,也改变了我的想法。当然这个组件是有商业的,也有免费版本。对普通用户来说,非常棒,虽然可能大部分人用不上,但收藏一下,备用吧,没准那天就要用了。
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 以及其他文件格式。
12.LiteDB文件数据库-NoSQL
LiteDB是一个小型的.NET平台开源的NoSQL类型的轻量级文件数据库。特点是小和快,dll文件只有200K大小,而且支持LINQ和命令行操作,数据库是一个单一文件,类似Sqlite,其他功能就细说了。有空看官网文件,这个数据库我会写一篇介绍和使用文章。
13.CSharpCompiler
CSharpCompiler是一个.NET平台开源免费的在程序员中编译C#源代码的组件,可以做的事情很多,例如用它来实现C#写脚本。。。。以及用来创建自己的C# IDE编辑器等等。例如官方的一个例子:
官方网站:http://csharpcompiler.codeplex.com/
14.博易博客
博易博客是一款免费、开源的博客系统。它是基于 BlogEngine.NET 进行中文本地化,并将其努力在中国进行推广和应用。遵循 W3C 标准,具有极强的可扩展性、高性能、良好的 SEO 性能和非凡的用户体验。想自己搭建博客的朋友,这是一个不错的选择。如下图是一个风格的博客界面:
BlogEngine.NET官方网站:http://www.dotnetblogengine.net/
官方网站:http://wangxianyuan.com/blogengine/
15.小泥鳅博客系统
小泥鳅博客系统也是一个.NET平台的开源免费博客系统,创建于2008年夏天,基于.Net平台开发,拥有完整的文章发布,评论,订阅,标签等功能,满足个人/团队信息发布需求,可作为Blog,CMS,甚至建企业站。有灵活的模板机制,可以自定义关键字,自定义Url,SEO 优化,完美支持离线写作。如:Windows Live Writer(推荐)(教程),Office Word 2007,支持包括RSS订阅,评论订阅,多种性质的邮件订阅等。这个项目可以作为学习使用,参考了不少开源组件。
今天就到此为止,欲知后事如何,请听下回分解。。。剩下的,朋友们,狂点赞吧。。。。