摘要: 开始进入工业自动化,买的工控机带有GPIO接口,可用于直接控制继电器。 从厂家拿到接口手册一看,居然是汇编直接操作端口,基本上是IN/OUT指令了。接口很简单,计算位移,读取;计算位移,写入。 这种接... 阅读全文
posted @ 2012-05-10 09:36 大石头 阅读(17712) 评论(64) 推荐(56) 编辑
摘要: 背景: 两个实体类:租房图片、售房图片 这两个表用于存储房源图片记录,一个房源对应多个图片,两个表的差别就在于一个业务关联字段。 租房图片中的RentID记录这个图片属于哪个租房信息; 售房图片中的S... 阅读全文
posted @ 2012-04-27 09:57 大石头 阅读(2378) 评论(7) 推荐(12) 编辑
摘要: NewLife.XCode是一个数据映射框架,包括但大于ORM的范围。XCode意为未知的代码的意思,是整个X系列组件很重要的一员。实际项目开发,会根据项目类型不同,应用场合不同,由多个不同的组件配合发力,这就导致了几乎无法发现XCode在其中的用处,而XCode的学习,也就无从做起。按某朋友的说法:“想看看这个页面怎么工作,结果页面后面一行代码也没有,深入一点发现全是接口!” 阅读全文
posted @ 2012-02-27 00:29 大石头 阅读(6687) 评论(15) 推荐(8) 编辑
摘要: 数据映射组件XCode优势 XCode是一个超越了ORM范围的映射组件,除了对象到关系数据库的映射外,还有到网络和其它二进制形式等的映射,所以称之为数据映射组件。 相对于国内外其它ORM,XCod... 阅读全文
posted @ 2012-02-27 00:14 大石头 阅读(2767) 评论(2) 推荐(1) 编辑
摘要: 昨晚做了一个梦,很长!梦到回到大学时代,我跟很多一样年纪的人,“潜入”(抱歉,实在没有更好的词)清华大学计算机系。并且我们这些冒牌跟正规清华学生一起上课。后来因为“潜入”的人实在太多,是正规生的两三... 阅读全文
posted @ 2011-11-12 22:29 大石头 阅读(916) 评论(14) 推荐(0) 编辑
摘要: 我只是一名普通的.Net开发人员,常用SqlServer,偶尔用其它数据库,属于能连上然后select/execute就行的那种。但就是我这么小的愿望,在面对Oracle时都很难实现。 虽然04年... 阅读全文
posted @ 2011-10-30 19:17 大石头 阅读(29559) 评论(105) 推荐(40) 编辑
摘要: 目的:测试XCode v8.0的正常反向功能。 正向工程:从数据库读取架构信息,生成实体类。 反向工程:根据实体类的特性构造架构信息,反向生成数据库或者修改数据库。 准备工作: 1,自备数据库实例,最好是自己的数据库,为了测试各种数据库的各种字段能否被识别为正确的.Net类型(正向工程),同时也测试.Net类型能否正确转为对应的数据库类型(反向工程)。(支持MSSQL、Access、SqlCe、S... 阅读全文
posted @ 2011-09-08 10:52 大石头 阅读(1910) 评论(11) 推荐(9) 编辑
摘要: 废话不多说,直接上代码: // try之前开始事务 Meta.BeginTrans(); try{ // do something // 强烈建议,尽可能做到只有一次提交事务,以免混乱 Meta.Commit(); } catch{ // 出错了,需要回滚事务 Meta.Rollback(); // 继续向外抛出异常 throw; } XCode还支持多级事务,实际上,除了第一级事务是真实的事... 阅读全文
posted @ 2011-09-01 11:53 大石头 阅读(1732) 评论(3) 推荐(0) 编辑
摘要: 对于一个框架来说,仅有基本的CURD不行,NewLife.XCode同时还提供了一个非常宽松的方式来使用高级查询,以满足各种复杂的查询需求。 (本文同样适用于其它任何数据访问框架) 初衷是跟大家交流技术,让大家都掌握这些应用开发经验,而不是让大家都来用XCode!有了这些东西,你也可以做出来自己的XCode! 阅读全文
posted @ 2011-08-16 12:54 大石头 阅读(7266) 评论(17) 推荐(6) 编辑
摘要: 以下只是举例! 环境: 1,通用实体库CommonEntity,里面有管理员类 class Administrator<TEntity> : Entity<TEntity>, IAdministrator where TEntity:Administrator<TEntity>{ static TE 阅读全文
posted @ 2011-07-26 12:04 大石头 阅读(806) 评论(1) 推荐(0) 编辑
摘要: 1,使用表达式。如下,缺货的产品用红色,别的绿色。 实际上,就这个表达式: 2,属性成员。这是产品订购记录,有产品编号ProductID,扩展属性Product,单位在产品类中。 注意Product.UnitName那里 阅读全文
posted @ 2011-05-31 21:53 大石头 阅读(763) 评论(2) 推荐(2) 编辑
摘要: 这个题目,不方便使用递归! 直觉告诉我,可以用两层遍历,外面一层是维数,里面一层是每一维。但实际上,要做起来很难! 最后决定最外层循环用元素个数,里面配合使用维数的循环,最终解决问题! 阅读全文
posted @ 2011-05-18 14:20 大石头 阅读(734) 评论(1) 推荐(1) 编辑
摘要: ASP.Net页面绑定时,标题超过20则省略,常规做法: Eval("Title")==null?"":(Eval("Title").ToString().Length<=20?Eval("Titl... 阅读全文
posted @ 2011-04-18 13:18 大石头 阅读(2459) 评论(14) 推荐(10) 编辑
摘要: Reflector过期?这可不行!自己动手吧! 看雪上拿到Reflector 7.0的源码,根据自己需要稍作修改,自己编译,就这么简单! 为了便于使用,自己做了一些修改: 1,移除所有授权相关代码和资... 阅读全文
posted @ 2011-04-14 14:44 大石头 阅读(20361) 评论(118) 推荐(108) 编辑
摘要: 虽然是充血模型,虽然是强类型,XCode同样支持遍历任何数据库结构,并以强类型(相对于DataSet等字典访问)方式读取数据。 要遍历数据库结构是很容易的事情,绝大多数Orm都支持。 但是在没有实体类的情况下以强类型方式读取数据,就稍微有些复杂。XCode的原理是为每张表动态创建继承自Entity<>的实体类,然后通过接口来操作实体类。 代码中有了快速反射,虽然没有性能损耗,但是用起来挺别扭的,这... 阅读全文
posted @ 2011-04-12 15:47 大石头 阅读(4938) 评论(3) 推荐(4) 编辑
摘要: 我们的目标是做一个ASP.Net版本的内容管理系统。 这个活动讲给我们带来以下好处:1,团结协作的团队精神。有了合作经验的队友,是将来做**项目时的最佳选择;2,得到一个强大的内容管理系统。团队内部开源,对外只免费。3,互相学习,提高技术。4,得到一些副产品,比如:后台框架、Js控件、弹出控件等 这 阅读全文
posted @ 2011-03-31 11:45 大石头 阅读(1541) 评论(1) 推荐(3) 编辑
摘要: 上周发布了《改进版CodeTimer及XCode性能测试》,展示了NewLife.XCode在性能上的表现。这次的主角是一位个人站长使用NewLife.XCode做的系统(采集+整理+网站),日入173刀。 阅读全文
posted @ 2011-03-21 10:49 大石头 阅读(5909) 评论(22) 推荐(14) 编辑
摘要: 前天晚上,在一个页面上拖了一个ObjectDataSource,配置数据源时发现选择业务对象的列表没有列出当前项目的实体类,甚至连NewLife.CommonEntity中的实体类也没有列出来。按以往管理,重新编译、删除引用、更新DLL……所有操作都试了一遍,还是不行。这就奇了怪了,虽然这几年来一直碰到这个问题,尽管不知道原因,但是从来没试过解决不了的。觉得也许是我安装了vs2010sp1的原因... 阅读全文
posted @ 2011-03-18 17:48 大石头 阅读(2122) 评论(0) 推荐(0) 编辑
摘要: 网上很多资料说到静态构造函数,但是很少提到与线程相关的,这个例子实际上是想测试一下静态构造函数的多线程冲突。这个问题让群里的高手纠结了一整天!(先看看大家讨论,后面再公布答案)从讨论的结果看,很多人对于多线程环境下静态构造函数的执行顺序含糊不清,你呢? 阅读全文
posted @ 2011-03-15 21:23 大石头 阅读(4486) 评论(27) 推荐(9) 编辑
摘要: 在测试XCode性能的时候,发现每次执行测试程序得到的执行时间差距实在太大,于是采用了老赵的CodeTimer来计算线程时间,后来因为测试成为稍微有点复杂,在使用匿名委托时会有参数的“打包”过程,于是改进了CodeTimer,测试功能代码通过实现一个继承自CodeTimer的类来实现,避免每次迭代时参数“打包”的过程。 阅读全文
posted @ 2011-03-11 15:45 大石头 阅读(6456) 评论(13) 推荐(18) 编辑
摘要: 忙忙碌碌有一年!做了很多东西,到头来,似乎又什么都没有做。人继续变老,程序继续改进。 XCode v3.5源码(及相关组件、例子、代码生成器等)目前存放于CodePlex,地址:http://xcode.codeplex.com/ 阅读全文
posted @ 2010-12-24 10:07 大石头 阅读(6844) 评论(44) 推荐(36) 编辑
摘要: 网络上现有的许许多多模版引擎,要么采用标签替换,要么自创模版语言,这些都增加了使用者的学习难度。XTemplate使用C#作为模版语言,这个世界安静了! 阅读全文
posted @ 2010-11-10 11:23 大石头 阅读(9604) 评论(40) 推荐(25) 编辑
摘要: 在开发某些需要跟第三方平台交互的项目时,往往需要解析或者构造符合对方协议要求的数据格式,该操作在.Net中有个很漂亮的名字——序列化! 在实际使用中,XML序列化用得比较多,二进制序列化也不错,只是可... 阅读全文
posted @ 2010-09-29 18:26 大石头 阅读(2919) 评论(11) 推荐(4) 编辑
摘要: ORM很多,但是使用充血模型(胀血模型)的很少,XCode是我们团队设计的一个充血模型ORM,这里列出它的主要功能! 本文的主旨在于对充血模型ORM的技术模型探讨,不限于具体ORM! 阅读全文
posted @ 2010-09-25 09:21 大石头 阅读(8640) 评论(58) 推荐(16) 编辑
摘要: 网络上的许多插件都不错,我比较看好vsPaste,可惜很久没更新了,在vs2010中复制代码的时候,会出现中文乱码的情况。据说是vs2010的BUG。 本插件修改自vsPaste,作者的网站无法打开... 阅读全文
posted @ 2010-09-16 12:01 大石头 阅读(3414) 评论(16) 推荐(8) 编辑
摘要: 有了前面的《动手》,基本上可以进行开发了。本篇我们来试试XCode的基本功功力如何,测试在单表一千万业务数据的环境下查询的速度,添删改等没什么可测试的。其实应该说是XCode开发模式的功力,XCode... 阅读全文
posted @ 2010-09-15 23:28 大石头 阅读(7373) 评论(25) 推荐(15) 编辑
摘要: 本篇才真正是XCode教程第一篇。《速览》是为了以最简洁的语言最短小的篇幅去吸引开发者;《简介》则是对XCode组件和XCode开发模式的一个整体介绍,让开发者从宏观的角度去理解XCode;《共舞》把XCode提到了一个新的高度,让开发者感受到它的贵族血统! 阅读全文
posted @ 2010-09-15 07:42 大石头 阅读(5566) 评论(6) 推荐(4) 编辑
摘要: 本文以ORM组件XCode作为例子,详细讲解实体类如何与ObjectDataSource的高级功能配合使用,重点是分页和排序! 阅读全文
posted @ 2010-09-13 01:39 大石头 阅读(5390) 评论(6) 推荐(6) 编辑
摘要: XCode是一个轻量级的ORM组件(对象与关系数据库映射),提供以面向对象的方式操作数据库的功能,能够解决90%以上的数据库操作场景。 做为X系列组件最重要的一员,XCode秉承了简单实用的特点,力求以最简单的做法,解决最普遍的问题。 XCode最大的“缺点”就是“不支持”多表查询!为何不支持要加双引号?那是因为XCode实际上支持多表查询,只是用起来非常复杂,也不容易讲清楚,会严重影响基本功... 阅读全文
posted @ 2010-09-13 01:27 大石头 阅读(6380) 评论(2) 推荐(3) 编辑
摘要: 啥也不说,上图: 这是最基本的增删改查代码! 符合X系列组件的一贯作风,不求万能,只求简单实用! 不支持多表查询,所以不是万能的,仅仅支持单表,所以是简单的,增删改查都得到了直接支持,完全能解决80%以上的场景,所以是实用的。 UserMember类由代码生成器生成,每张表对应一个类,每个表字段对应类属性,然后加上增删改(Insert、Update、Delete、Save=Insert/Updat... 阅读全文
posted @ 2010-09-12 12:11 大石头 阅读(5576) 评论(13) 推荐(3) 编辑
摘要: 这里以日志组件XLog作为开头,不再以专门的概要或者目录说明开始,体现新生命开发团队组件体系的基本思想——追求实用,一切从简! 我写文档资料向来行文自如,没有统一的格式。基本上标题是粗体二号居中,正文是小四,段落首行缩进2字符,行间距1.5倍。我比较喜欢上彩色的代码,因为那样阅读起来非常舒服,有时候干脆直接用代码截图替代。 就让我们从日志组件XLog开始吧! XLog是组件体系里面最最简单的一个组... 阅读全文
posted @ 2010-09-12 11:28 大石头 阅读(5045) 评论(3) 推荐(4) 编辑
摘要: 看到这么多人为了哪门语言比哪门语言更厉害而争论不休,实在心寒,何不把这份心思花在学习更多知识上呢?结论只有一个:在不同的时期,不同的场合,选择合适的语言工具! 阅读全文
posted @ 2010-06-20 23:17 大石头 阅读(2877) 评论(34) 推荐(5) 编辑
摘要: 1,IDA常用函数封装完成 2,vb.c全部融入到VBKiller插件中 3,该版本仅为测试版,可能还有很多功能不够完善,希望大家能够向我们提交BUG和各种VB格式资料 4,这次提供VBKiller的源代码,允许任何人修改,用于任何用途。注意:这只是开放源代码,而不是开源,我们不对任何后果负责! 5,强烈建议各位大大编写Delphi和MFC等各种格式的插件 阅读全文
posted @ 2010-06-05 15:17 大石头 阅读(1443) 评论(7) 推荐(0) 编辑
摘要: 这是一个IDA插件,名为IDACSharp,同时又是C#插件管理器,它的作用就是充当IDA和C#的桥梁(双向)。 阅读全文
posted @ 2010-05-06 03:32 大石头 阅读(1340) 评论(1) 推荐(3) 编辑
摘要: 1,给SelectedValue赋值时,如果Items中没有该项,则报XXX异常; 2,在绑定时,如果数据源返回null,它将不做任何动作,而我们一般习惯清空; 3,在绑定到数据源,而数据源参数依赖于别的控件时,会触发两次数据源绑定。 阅读全文
posted @ 2010-05-04 23:18 大石头 阅读(3151) 评论(7) 推荐(3) 编辑
摘要: 调试一个站点,其中用到序列化,报异常“未找到C:\WINDOWS\Temp\xxx.cs文件”,给C:\WINDOWS\Temp权限后(Everyone完全控制),问题解决。 取消C:\WINDOWS\Temp的Everyone权限后,问题无法重现…… 刚才另一个地方重现了,错误如下: 无法生成临时 阅读全文
posted @ 2008-05-14 09:50 大石头 阅读(1303) 评论(0) 推荐(0) 编辑
摘要: 1、客户端通过浏览器访问反向代理的时候,会发出一个HTTP请求,反向代理收到这个TCP连接的时候,建立一个新的会话用于处理这个请求(BeginAccept、EndAccept); 2、会话对象建立一个从客户端接收数据的委托,开始异步读取数据(BeginRead); 3、取得数据时,进入异步读取的回调函数中,开始处理数据(EndRead); 4、检查反向代理与服务器的连接是否已建立,如果没有建立,那么需要先建立连接(ConnectServer),并建立服务器的异步读取委托(BeginRead); 5、把数据异步写入服务器(BeginWrite); 6、重新建立客户端异步读取委托(BeginRead),回到3; 7、收到服务器返回数据时,处理后,异步写入客户端(BeginWrite); 8、重新建立服务器异步读取委托(BeginRead),回到7; 阅读全文
posted @ 2008-03-10 16:08 大石头 阅读(4561) 评论(28) 推荐(0) 编辑
摘要: 项目开源地址:http://www.codeplex.com/XProxy 技术支持地址:http://www.nnhy.org/bbs/dispbbs.asp?boardID=5&ID=391&page=1 QQ:99363590 E-mail:nnhy at# vip.qq.com XProxy是一个支持插件的基础代理程序集。通过编写简单的插件程序,你将能开发各种各样的代理程序。 XProxy是一个支持插件开发的数据交换机,可以编写插件对中转数据进行处理。内置有NAT插件、加解密插件、反向代理、直接代理、间接代理等插件。 附带有一个配置管理工具,可管理代理配置文件。XProxy可作为应用程序运行,也可注册为系统服务运行,这些功能都已经继承到管理工具中,只需要点击一下按钮即可。 XProxy已经历两年的运行考验,能稳定、高效的工作。 XProxy原有的资料可以在我的个人网站上找到http://www.nnhy.org 阅读全文
posted @ 2008-03-07 16:37 大石头 阅读(2334) 评论(1) 推荐(0) 编辑
摘要: XCMS是一个内容管理系统,是新生命开发团队利用业余时间开发的第一个成功项目! XCMS目前只有基本的文章发布、栏目管理、评论、用户管理和模板管理等功能。 XCMS使用了大量独立研发的组件,底层ORM框架是XCode,数据层代码全部由代码生成器XCoder生成,后台全部使用来自XControl控件库的控件,前台使用PageTemplateLib模板引擎。 因为XCode支持Access、MSSQL、Oracle三种数据库,所以基于XCode开发的XCMS也支持这三种数据库,修改Web.config中connectionStrings段的XCMS配置为不同数据库链接字符串即可。 阅读全文
posted @ 2008-01-08 10:31 大石头 阅读(2594) 评论(3) 推荐(0) 编辑
摘要: 去年为一家公司做了一个软件验证系统,所以使用该公司软件的用户都需要购买充值卡,并登录到服务器校验。服务端是IIS+ASP.Net设计的,为了保证服务端的安全(其实几乎每天都被攻击),客户想出一个办法,使用代理软件来冒充真实的服务器提供服务,而可以同时运行很多个代理来承受外部的攻击,这就是HTTP反向代理的原型了。因为这个反向代理是专门为这套验证系统而开发的,所以里面插入了不少业务代码,直接判断不是非法用户后才把请求转发到真实服务器。 阅读全文
posted @ 2007-12-09 19:43 大石头 阅读(7391) 评论(22) 推荐(1) 编辑