随笔分类 - C#.NET开发
C#.NET开发与学习,源码分享
摘要:最近偶尔发现一个算法编程学习的论坛,刚开始有点好奇,也只是注册了一下。最近有时间好好研究了一下,的确非常赞,所以推荐给大家。功能和介绍看下面介绍吧。首页的标题很给劲,很纯粹的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个部分分别进行讲解,请大家关注博客。今天要关注就是比赛信息相关的数据表设计。
阅读全文
摘要:前一篇文给大家介绍了Spire.XLS的基本功能和一些比较。这篇文章将重点介绍C#操作Excel文件时,对Excel文件本身的相关设置,全局控制的内容。因为这也是C#读写Excel文件时经常碰到的文章,也是我在使用过程中的一个学习步骤。本文将首先介绍Spire.XLS创建和加载文档的基础知识,以及文件保存,多个Excel文件合并的操作方法,其中我们还可以对生成的Excel文件做更多详细的设置,如,对Excel文件属性进行设置等等,其次很多项目中,不仅要生成Excel文件,还需要打印并获取一些分页信息;最后介绍一下使用C#设置加密保护Excel文件的方法。
阅读全文
摘要:由于数据表和业务是直接相关的,没有时间将所有相关业务都简述清楚,所以也只好将需求和表设计一起进行。相辅相成吧,如果思路有问题,大家可以交流提出自己的想法,当然必须要对足球赛事资料库有一定的了解和接触才行,本人也是走了很多弯路的。考虑到系统数据表很多,按照功能不同,分为基础数据表,比赛相关表,赔率相关表,以及特殊数据表4个部分分别进行讲解,请大家关注博客。
阅读全文
摘要:考虑到足球赛事资料库的复杂性,以及考虑到项目的前瞻性(要考虑到很多还没有发生的事情,便于以后扩展),以及大量数据,查询和计算的速度,本项目经历了3次重构,到目前为止其实也不是很成型,但基本趋于稳定。现在总结起来肯定是很流畅,但这中间的过程非常痛苦,也希望把这些经验写出来,有自己做的朋友可以一起探讨,避免踩坑。数据库很庞大,且采用了XCode非常牛逼的分库技术,秒杀千万级乃至上亿的数据需求。而只需要最基本的C#技术,对我这种数据库文盲来说,真的帮助非常大。
阅读全文
摘要:去年4月到现在,一年之中,做了很多事情,所以写博客的时间少了,在利用业余时间搭建的彩票数据库资料库快完工之际,将陆续在博客园开放这一年来的相关成果。一年来重点对数字彩和足球彩票资料库进行数据采集和分析平台的搭建,同时也利用数据挖掘和机器学习的简单知识,对足球比赛进行预测,也小有成果,虽然已经远离数字彩,但软件的结构非常容易扩展,数据也很容易采集。重点还是在足球赛事资料库,目前数据库已经包括了近10年,世界所有的联赛,杯赛和重要赛事的比赛信息,以及赔率盘口信息,对于玩算法和写代码的朋友来说,利用这些数据库可以快速的进行自己的数据分析工作。本系列文章会对数据库架构和结构进行介绍,并逐步开放相关足球数据库和彩票数据库,敬请关注。
阅读全文
摘要:前一篇文给大家介绍了Spire.XLS的基本功能和一些比较。这篇文章将重点介绍C#操作Excel文件时,对Excel文件本身的相关设置,全局控制的内容。因为这也是C#读写Excel文件时经常碰到的文章,也是我在使用过程中的一个学习步骤。本文将首先介绍Spire.XLS创建和加载文档的基础知识,以及文件保存,多个Excel文件合并的操作方法,其中我们还可以对生成的Excel文件做更多详细的设置,如,对Excel文件属性进行设置等等,其次很多项目中,不仅要生成Excel文件,还需要打印并获取一些分页信息;最后介绍一下使用C#设置加密保护Excel文件的方法。
阅读全文
摘要: 矩阵A的条件数等于A的范数与A的逆的范数的乘积,即cond(A)=‖A‖·‖A^(-1)‖,对应矩阵的3种范数,相应地可以定义3种条件数。 函数 cond(A,1)、cond(A)或cond(A inf) 是判断矩阵病态与否的一种度量,条件数越大矩阵越病态。条件数事实上表示了矩阵计算对于误差的敏感性。对于线性方程组Ax=b,如果A的条件数大,b的微小改变就能引起解x较大的改变,数值稳定性差。如果A的条件数小,b有微小的改变,x的改变也很微小,数值稳定性好。它也可以表示b不变,而A有微小改变时,x的变化情况。
阅读全文
摘要:写博客这么久,保持着高效和高产的习惯,青春年少的时光错过了,现在开始还未晚。下面这些文章都是非常经典,阅读量和推荐以及评论都非常高,大部分文章都上过博客园头条。特意开辟专栏目录。按照时间降序吧,最新的文章显示在前面。17.分享一个Visual Studio的背景插件,让堆码更富情趣;16..NET平台机器学习资源汇总,有你想要的么?15.白话贝叶斯理论及在足球比赛结果预测中的应用和C#实现【附资料】14.你用过这种奇葩的C#注释吗?如何看待 (2015-04-17 10:04)
阅读全文
摘要:矩阵的秩是反映矩阵固有特性的一个重要概念。在线性代数中,一个矩阵A的列秩是A的线性无关的纵列的极大数目。类似地,行秩是A的线性无关的横行的极大数目。矩阵的列秩和行秩总是相等的,因此它们可以简单地称作矩阵A的秩。通常表示为r(A),rk(A)或rank A。矩阵的行秩与列秩相等,是线性代数基本定理的重要组成部分. 其基本证明思路是,矩阵可以看作线性映射的变换矩阵,列秩为像空间的维度,行秩为非零原像空间的维度,因此列秩与行秩相等,即像空间的维度与非零原像空间的维度相等(这里的非零原像空间是指约去了零空间后的商空间:原像空间)。这从矩阵的奇异值分解就可以看出来。矩阵秩的计算最容易的方式是高斯消去法,这里引用维基百科的内容
阅读全文