随笔分类 - C#.NET开发
C#.NET开发与学习,源码分享
摘要:Tiny Mapper是一个.net平台开源的对象映射组件,根据测试结果是目前.NET平台最快的对象映射组件,说到.NET平台的对象映射,大名鼎鼎的可能就是AutoMapper。TinyMapper小巧,快速,简单容易使用,值得推荐。
阅读全文
摘要:最近在大量使用Redis来进行数据统计前的清洗和整理,每天的数据量超5千万+,在开发过程中,数据量小,着重注意业务规则的处理,在上线基本测试后发现了大量的问题,其中之一就是Redis存储数据过多,内存的使用量大大增加。进过简单分析,对存储非常频繁的实体类进行了改进,字段名字进行缩写处理,一下子就减少了很多内存使用量。在对Redis的研究过程中,发现网络有人对Redis的不同数据结构内存占有量进行了对比。比较敢兴趣,所以也抽空进行了测试。
阅读全文
摘要:Win10左下角菜单打不开,好痛苦,点击右下角的时间也没反应,各种不爽,折磨了我好几天,重装又不忍心,实在费劲,一堆开发环境要安装,上网找了很多方法都不适用。今天偶然解决了,仔细想了下,难道是Win10的一个Bug?
阅读全文
摘要:Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员、同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的时候,会开放思路。当然不得不说,Ons的.NET接口还很不完善,甚至没有独立在Windos 2008/2012服务器测试过,希望官方加把力。
1、阿里云ONS介绍
ONS(Open Notification Service)即开放消息服务,是基于阿里开源消息中间件MetaQ(RocketMQ)打造的一款云消息产品,历经多次天猫双十一海量消息考验,在阿里巴巴内部有1000+个应用在使用,产品成熟稳定可靠, 是构建大型分布式系统的核心组件之一。Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员、同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的时候,会开放思路。当然不得不说,Ons的.NET接口还很不完善,甚至没有独立在Windos 2008/2012服务器测试过,希望官方加把力。
阅读全文
摘要:10月份收到微软总部寄来的荣誉证书,非常激动,虽然有些小波折,但还算顺利。本人8月份提交申请后来就没注意过,而且邮箱也没有收到邮件,所以没在意。收到联邦快递的电话着实下了一跳,欣喜之余,感谢所有人的支持,同时感谢博客园这个大舞台。10年前偶尔的一次C#选修课,让我接触它,10年后,我用它来作为一个密不可分的工具来解决工作和生活中的问题,唯一的感触就是,路是自己走出来的,选择自己所选择的,热爱自己所热爱的!这一刻,来自大家的支持:
阅读全文
摘要:本文对旅行商问题(TSP)的历史进行了简单的总结,以及相关算法进行了描述,重点介绍了Tsp优化问题的新算法——群蚁算法的原理和过程,详细对算法的理论和过程进行了解释和实例分析,并使用C#语言编写程序实现该算法。整篇论文是学习群蚂算法的基础性文章,同时也是了解TSP问题新动向,编程学习的一个好的例子。TSP问题在实际生活和工作中的出镜率非常高,说不定你就用得上,一起来看看吧。
阅读全文
摘要:开放该数据库的目的是为了让可能需要该类型做相关研究准备,该数据库目前有390万记录,存储为Sqlite数据库,目前覆盖了全国34个省、直辖市、自治区以及特别行政区的所有县级市区。该数据库的历史天气时间范围是2011年1月至2015年8月底的数据,包括的天气数据有:天气情况,气温情况,风力情况。考虑每2-3个月更新一次。目前为一个总库,考虑到实际的城市等级,我对省份和城市进行了大概分级,具体研究分析的时候可以自己单独提取城市,单独处理。
阅读全文
摘要:今天的主要内容是HtmlAgilityPack的基本介绍、使用,实际代码。最后我们以采集天气数据为例子,来介绍实际的采集分析过程和简单的代码。我们将在下一篇文章中开源该天气数据库和C#操作代码。采集核心就只是在这里介绍,其实核心代码都有了,自己加工下就可以了,同时也免费对有需要的人开放。至于具体详情,请关注下一篇文章。
阅读全文
摘要:微软牛津计划(网址:https://cn.projectoxford.ai/#) 提供了一组基于Rest架构的API和SDK工具包,帮助开发者轻轻松松使用微软的自然数据理解能力为自己的解决方案增加智能服务。利用微软牛津计划构建你自己的解决方案,支持任意语言及任意开发平台。主要提供了4个自然语言处理方面的核心问题解决方案:
1)人脸识别:微软最先进的人脸算法,以云平台为基础,检测和识别图片中的人脸。为您的移动应用和桌面应用提供人脸算法的技术支持。
2)语音识别:Speech API为开发者提供最先进的语音处理算法。通过这些API,开发者可以轻松地为自己的应用添加语音操作功能。在一定条件下,这些API还可以实现与用户之间的实时交互。
3)计算机视觉:Computer Vision APIs为开发者提供最顶尖的图像处理算法。通过这些API你可以获得基于图像视觉内容的各种信息并生成理想的缩略
阅读全文
摘要:今天分享给大家的是关于WinForm开发相关的小巧灵活的开源项目。虽然现在WinForm开发可能不常见了,都转向B/S了,但偶尔还是有用到的地方的,特别是学校,以及一些研究演示之类的。所以这篇文章部分项目的实用性可能不高,但的确是一个非常值得学习的东西。因为看到这些功能组件,我会想到我刚自学入门的时候,是多么的难过,每天拖控件,想自己做一个都那么难,就是因为没接触到这些东西。所以分享是总结,是一个过程,不要让大家重复的踩坑和减少重复时间。所以特意做一个总结专题,以后如果有部分优秀的,也会单独更新在博客的。
阅读全文
摘要:Accord.NET为.NET应用程序提供了统计分析、机器学习、图像处理、计算机视觉相关的算法。Accord.NET框架扩展了AForge.NET框架,提供了一些新功能。同时为.NET环境下的科学计算提供了一个完整的开发环境。该框架被分成了多个程序集,可以直接从官网下载安装文件或者使用NuGet得到。Accord.NET框架主要有三个大的功能性模块。分别为科学技术,信号与图像处理,支持组件。下面将对3个模型的命名空间和功能进行简单介绍。可以让大家更快的接触和了解其功能是否是自己想要的,下面是主要的命名空间介绍。
阅读全文
摘要:在足球彩票玩法中,经常要选择几场比赛,以及每场比赛不同的结果组合,进行投注,这个时候就要生成所有的排列组合了,以便进行下一步的平衡投注计算。 KwCombinatorics,它是.NET平台一个高效的生成排列组合序列的开源类库,它提供了4种生成排列与组合序列的方式。虽然原理和功能都很简单,但是这个类库在软件测试、组合数学以及密码学等方面都有很大的用处。很早就接触了这个类库,以前在一些小程序中也使用过,有时候为了遍历所有可能的组合,自己去写循环,生成,的确很繁琐,有了KwCombinatorics 之后,都变得简单写了,接下来将详细介绍该类库的使用。
阅读全文
摘要:全国成百上千家互联网彩票公司,都有足球赛事资料库系统,但是他们不共享,都是自己采集,而有大量的业余研究人员,特别是程序员玩足球的,很多都要自己采集数据,多多少少造成了很多浪费,不仅仅是精力时间的浪费,更多的是网络资源,带宽的浪费。所以我开放这些数据的目的,基于以下几点: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参数,直觉告诉我,这就是的。但是网友进一步提问,这个方法并不是很好用,它也没有实现的分页的情况。所以就亲自操刀,看看到底是神马情况?不看不知道,这个过程还真的不是那么回事,不过还是能解决啊。
阅读全文