随笔分类 - .NET开源项目
.NET开源项目,分析,使用,介绍等等
摘要:全国成百上千家互联网彩票公司,都有足球赛事资料库系统,但是他们不共享,都是自己采集,而有大量的业余研究人员,特别是程序员玩足球的,很多都要自己采集数据,多多少少造成了很多浪费,不仅仅是精力时间的浪费,更多的是网络资源,带宽的浪费。所以我开放这些数据的目的,基于以下几点:1.让喜欢足球的程序员,可以直接获取足球赛事资料数据,不用重复采集;2.开放基础数据库,让更多的人可以实现自己的思路和想法,专注业务,而不是这些没有技术含量的数据;3.采集数据,从某些角度上说,只要花时间,都可以做,我就是把自己花时间做的,分享出来,降低大家的门槛。4.我们不仅开源核心的数据库,同时也开放针对数据库的数据访问接口代码(C#版本),大家有数据库,也可以自己写相应代码,但前提是搞清楚数据库的结构,可以参考上面提到的系列文章。
阅读全文
摘要:在上一篇文章中,给大家初步介绍了一下FluentValidation验证组件的使用情况。文章从构建间的验证器开始,到最后的结果,以及复杂验证等都做了比较深入的讲解和使用。但其实一个完整的组件是麻雀虽小五脏俱全的,一篇文章还不能说明问题,,一篇文章还不能说明问题,对优秀的组件,我将分开尽量多一点的进行很完整的介绍。FluentValidation在使用的时候,我们也可以看到例子中,有一些验证方法,例如NotNull等,其实是其内部已经实现的几个常规的验证。所以先来看看他们的使用以及作用。FluentValidation本身附带了一个内置的验证器,每个验证器都可以输出固定格式的错误信息。这些内置的验证器是大家自定义验证器的基础。
阅读全文
摘要:上午10点一个朋友紧急求助,单位要进行在线测评,开卷考试,题库以及答案已经发给他们了,但是太多,好几百道题目,翻资料都来不及。问我能不能做一个软件,能够快速填充答案或者找到题目,节省时间,提高准确率。经过半个小时的QQ沟通,基本明确了大概要做的,由于时间紧急,晚上就要用,尽量搞简单的吧。总结下来,有这么几个需求:要能快速导入题库,几百道题,手动添加得多长时间,不敢想象,再说了,会写点程序就是要减轻工作量;要尽量自动化,直接填充答案是不可能了,不是技术上不可行,是时间来不及,在线考试的页面都没见到;题库类型比较多,有填空题,单选题,多选题以及判断题,要尽量区分,第一时间找到原题和答案;
阅读全文
摘要: 在前2篇文章.net开源项目的文章中,大伙热情高涨。再次拿出自己的私货,在.NET平台处理文档相关的开源组件。文档处理在开发中是一个非常常见的任务了,例如导出Excel,导出Word,生成PDF报表等等。今天的主要内容有:Excle神器NPOI,NPOI扩展—NPOI.CSS,ExcelReport报表引擎,Epplus,LinqToExcel,Doc文档工具Docx,PDF处理组件PDFsharp,MigraDoc文档生成器,PdfReport报表工具,文件差异比较diffplex等等
阅读全文
摘要:Software Protector说简单的,这个东西就是序列号生成器,用来保护应用程序的授权的。可以生成和验证不同类型的序列号(20位),能限制时间(最多999天),还能够锁定特定机器的key。这个组件是GUI界面,内核使用的是SKGL(Serial Key Generating Library)组件。 对SKGL源码的分析,由于总共代码量很少,实际的代码量只有260行,所以我对这个源代码进行了简单的翻译,特别是主要核心方法的功能,便于理解。后面我们将提供制作好的CHM帮助文档,供使用参考。SKGL中总共有5个类,其中比较核心的只有3个类,另外2个是抽象基类以及内部核心方法。所以主要看看3个核心类。我们将通过代码来具体演示调用情况。
阅读全文
摘要:今天要关注就是核心的赔率指数表,由于赔率指数表的内容比较多,所以将分为2篇来进行。赔率指数是赛事预测的重要参考条件,虽然有一定的随机因素,但是根据长期的分析和统计,赔率还是具有很强的指导性。所以赔率指数数据库的设计也尤为重要。一方面要考虑到日益增长的赔率数据越来越多,需要确保查询分析的速度;另外一方面赔率的类型比较复杂,设计要比较合理,才能在后续的统计分析和预测模型中方便使用。 本篇文章是赔率指数表第二篇,因为指数类型比较多,今天要介绍的是几种大家可能接触比较少的,一般在国外用得比较多的,考虑到系统的完善性,而且也不复杂,所以都包括进来了。还是沿用上一篇文章的思路,赔率指数都是继承公共的基类,这里也只贴出不同的字段。
阅读全文
摘要:Expression Evaluator是一个轻量级的可以在运行时解析C#表达式的开源免费组件。表达式求值应该在很多地方使用,例如一些工资或者成本核算系统,就需要在后台动态配置计算表达式,从而进行计算求值。经过看源代码,这组件是用到了一个Antlr3的开源工具,Antlr3是一个开源的,支持多平台的语法解析器。该组件目前还在更新中,所以值得关注。Expression Evaluator支持的特性有:*支持算术运算符,支持关系运算符,以及逻辑运算符 *支持表达式分组和括号,以及递增递减运算符 *支持表达式属性访问以及动态类型,支持字符串的+运算
*支持数值类型的后缀d/f/m/l/u/ul、
阅读全文
摘要:介绍了LiteDB的基本使用情况以及部分技术细节,我还没有在实际系统中大量使用,但文章发布后,有不少网友反应在实际项目中使用过,效果还可以吧。同时也有人碰到了关于LiteDB关于分页的问题,还不止一个网友,很显然这个问题从我的思考上来说,作者不可能不支持,同时也翻了一下源码,发现Find方法有skip和limite参数,直觉告诉我,这就是的。但是网友进一步提问,这个方法并不是很好用,它也没有实现的分页的情况。所以就亲自操刀,看看到底是神马情况?不看不知道,这个过程还真的不是那么回事,不过还是能解决啊。
阅读全文
摘要:最近偶尔发现一个算法编程学习的论坛,刚开始有点好奇,也只是注册了一下。最近有时间好好研究了一下,的确非常赞,所以推荐给大家。功能和介绍看下面介绍吧。首页的标题很给劲,很纯粹的Coding社区。。。。虽然目前人气可能一般,但这里面题目和资源还是比较丰富的,希望给初学者一个帮助。 论坛主要是进行算法学习和交流,需要进行注册才可以进入。论坛有大量的算法讨论问题,以及算法编程竞赛。最主要的是论坛还可以针对编程问题,可以在线提交代码,以及进行编译和时间计算。
阅读全文
摘要:FluentValidation是一个使用Linq表达式,非常流畅的小型业务对象验证组件。流畅也可以说优雅。类似链式操作。易于理解,功能完善。还可以配合MVC使用直接在页面进行验证,当你看到它的语法时,非常优雅,非常令人心动。不仅可以使用Linq的操作,还能自带验证返回信息。更重要的是,组件内部已经封装好了10几种验证器。当然可以自定义一个复杂的哦。核心dll文件也不大,130多k。如果好用,可以自己移植到自己的系统哦。直接更好。目前一直在更新中,主要是bug修复。
阅读全文
摘要:上个月在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 和 .NET平台开源项目速览(1)SharpConfig配置文件读写组件 中都提到了SharpConfig组件,简单轻量级,速度快,而且还有比较深入的使用介绍。在文章发布后,也有网友提到一些问题,当时我也没仔细去分析,在这次我亲自使用的过程中,就对几个问题进行了比较深入的研究,同时对不满足自己的地方,也进行了扩展。所以今天就把对SharpConfig的源码进行一个简单的分析,同时也根据需求对自己的一个特殊情况进行扩展。自己动手丰衣足食。。。
阅读全文
摘要:程序的注释在程序的编写和维护中扮演着相当重要的角色,在Visual C#中,可以为代码创建文档,方法是在XML标记所指的代码块前面,直接在源代码的特殊注释字段中包括XML 标记。编译器编译时将在源代码中搜索所有的 XML 标记,并创建一个XML文档文件。.NET文档生成工具(下文简称为ADB)通过反射程序集及其代码中的XML注释来创建MSDN形式的API文档。很久以前就使用ADB这个工具来生成项目的帮助文档。功能强大,在学习一些开源项目的过程中,官方没有提供CHM帮助文档,所以为了快速的了解项目结构和注释。就生成文档来自己看,非常好用。这也是一个学习方法吧。
阅读全文
摘要:经常采集数据,肯定会碰到解析字符串,包括整个页面的html,或者json以及一些不标准的json格式。以前用json序列化,有时候需要实体类,有的时候没有,比较麻烦,听说可以用JsonMapper,解析为字典格式。不过没用过,习惯了用最原始的方法来解析字符串,所以这里分享几个解析的案例。也许会有点作用。 解析字符串最常用的应该是Splite和Replace了。分割,然后替换一些引号之类的。最后组合。特别是采集的时候,经常会把html页面中某一段要提取出来,可能很多人用正则表达式,可是不会啊,也不愿意去学。那只好用这些原始的方法了,时间久了,也积累一些经验或者函数。看看几个例子。
阅读全文
摘要:在上个月发表的一篇文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 ,得到了很多朋友的响应。最近再次整理一些比较实用的.NET开源组件,如果大家有兴趣,下个月再整理2篇,分别是比较大型的和算法方面的。注意,本文所列出的.NET开源组件都是功能比较实用,但日常中曝光度比较少的,很多大家都知道的项目,我也没必要再发出来了。可能部分已经放弃更新了,但并不能说就不能用了,对于新手来说,可以是一个学习的过程,同时很多小功能组件,并不需要多长久的更新,稳定就行了。
阅读全文
摘要:LiteDB是一个小型的.NET平台开源的NoSQL类型的轻量级文件数据库。特点是小和快,dll文件只有200K大小,而且支持LINQ和命令行操作,数据库是一个单一文件,类似Sqlite。 主要特点有:1.NoSQL文件存储。这是和传统关系型数据库的主要区别;支持实体类的字段更新;2.类似MongoDB的简单API;3.完成使用C#代码,在.NET 4.0环境下编写,核心dll小巧,只有168K;
4.支持ACID事务处理;5.可以进行写入失败的恢复;6.存储到文件或者数据流中(类似MongoDB的GridFS);7.类似Sqlite的单一文件存储;8.支持文件索引,可以进行快速搜索;9.支持Linq查询;【这也许是C#编写最直接的好处】;10.支持命令行操作数据库,官方提供了一个Shell command line;11.完全开源和免费,包括商业使用;
阅读全文
摘要:Compare .NET Objects组件是.NET平台用于深入比较2个.NET对象的开源组件,一直在更新,主要功能如名字所示就是深入比较2个.NET对象,是否相等或者是否有差异。可能很多.NET对象实现了一些.NET自带的接口可以直接进行比较,但是这个组件比较的范围和功能更加广泛。例如:可以比较默认的子节点;可以比较结构体;可以比较IList对象;可以比较单维或者多维的数组对象;可以比较枚举类型;可以比较IDictionary对象;可以比较数据集,数据表,字典等等;可以比较私有字段或者属性等等。Compare .NET Objects支持.NET 3.5及更高版本,同时也支持 Silverlight 5+, Windows Phone 8+, Windows RT 8+, Xamarin iOS, and Xamarin Droid等环境。
阅读全文
摘要:在.NET平台日常开发中,读取配置文件是一个很常见的需求。以前都是使用System.Configuration.ConfigurationSettings来操作,这个说实话,搞起来比较费劲。不知道大家有没有同感。所以更多时候我还是喜欢使用开源的东西,更加方便简洁,也稳定。省去自己的麻烦。今天就介绍一个非常精致的.NET平台开源的操作配置文件(cfg/ini)的组件——SharpConfig。走过路过,千万不要错过!
阅读全文
摘要:长期关注和使用.NET开源项目,给我带来了很多好处:1.可以快速完成我的想法,也就是所谓的业务细节,而不是关注如何实现;2.可以更快更稳定的完成需求,而不是自己造轮子实现,花费时间;3.从.NET开源项目的使用以及源码阅读中也会带来一些好处;这次先整理出15个个人认为比较好的项目。后面有时间还整理出15个左右,包括:时间周期处理,绘图,3D建模,配置文件,邮件系统,对象比较,安全,多语言与本地化,数据库架构读取,C#源码编译,文件数据库,博客系统等。。全部是.NET平台的干货啊。。。还等什么。。
阅读全文
摘要:今天要关注就是核心的赔率指数表,由于赔率指数表的内容比较多,所以将分为2篇来进行。赔率指数是赛事预测的重要参考条件,虽然有一定的随机因素,但是根据长期的分析和统计,赔率还是具有很强的指导性。所以赔率指数数据库的设计也尤为重要。一方面要考虑到日益增长的赔率数据越来越多,需要确保查询分析的速度;另外一方面赔率的类型比较复杂,设计要比较合理,才能在后续的统计分析和预测模型中方便使用。今天先介绍常规的赔率指数表的设计,主要是胜平负指数,大小盘,半全场,总进球,比分指数的数据库设计。
阅读全文
摘要:由于数据表和业务是直接相关的,没有时间将所有相关业务都简述清楚,所以也只好将需求和表设计一起进行。相辅相成吧,如果思路有问题,大家可以交流提出自己的想法,当然必须要对足球赛事资料库有一定的了解和接触才行,本人也是走了很多弯路的。考虑到系统数据表很多,按照功能不同,分为基础数据表,比赛相关表,赔率相关表,以及特殊数据表4个部分分别进行讲解,请大家关注博客。今天要关注就是比赛信息相关的数据表设计。
阅读全文