• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






( ^_^ )程序员

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

2013年1月11日

C#基础系列:实现自己的ORM(MiniORM的测试代码)
摘要: 【转 http://blog.csdn.net/RonoTian/article/details/2912349】看到有同学反馈,说MiniORM代码有Bug,也不知道怎么用,所以今天我就写了些测试代码。希望能够给点帮助。 同时也发现了两Bug,一并罗列出: 1、MiniORM.PubFuncs.GetObjectType()函数:publicstatic Type GetObjectType(string assemblyname, string namespacename, string classname){ Type objType = (Type)_HashObjectType[as 阅读全文
posted @ 2013-01-11 17:31 修身、律己 阅读(200) 评论(0) 推荐(0)
 
C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)
摘要: 【转 http://blog.csdn.net/ronotian/article/details/2900714】反射以及Attribute在ORM中的应用一、 反射 什么是反射? 简单点吧,反射就是在运行时动态获取对象信息的方法,比如运行时知道对象有哪些属性,方法,委托等等等等。 反射有什么用呢? 反射不但让你在运行是获取对象的信息,还提供运行时动态调用对象方法以及动态设置、获取属性等的能力。 反射在ORM中有什么用呢? 我这里所讨论的ORM实现是通过自定义Attribute的方式进行映射规则的描述的。但是我们并不知道具体哪个对象需要对应哪个表,并且这些对象是独立于我们的ORM框架的,所以我 阅读全文
posted @ 2013-01-11 17:29 修身、律己 阅读(172) 评论(0) 推荐(0)
 
C#基础系列:实现自己的ORM(ORM的基础概念)
摘要: 【转 http://blog.csdn.net/ronotian/article/details/2900698】ORM(O/R Mappping对象关系映射)的基础概念在我们的系统中,存在大量的需要进行持久化存储的对象,这些对象可能是各种各样的业务单据,也可能是我们的系统配置信息等。另外一些属于内存中使用而不需要进行持久化存储的对象,不属于我们的讨论范围。而在支持对象序列化的语言比如C#,Java中,我们可以将这些对象序列化到磁盘文件或者直接保存到关系数据库中。其中关系数据库是我们最主要也是最安全的选择。 在对数据库中的业务数据进行各种操作的时候我们发现,我们进行的大量的Insert、Upd 阅读全文
posted @ 2013-01-11 17:26 修身、律己 阅读(386) 评论(0) 推荐(0)
 
C#基础系列:实现自己的ORM(构造我自己的ORM)
摘要: 【转 http://blog.csdn.net/ronotian/article/details/2900734】构造我自己的ORM通过前面两章的描述,我相信很多朋友都已经明白我了下面将要讨论到的ORM的实现方法了,那就是根据自定义Attribute来定义O/R Mapping规则,然后通过反射来动态获取此规则,动态构造SQL语句。 由于这个小东西(ORM)出生在深圳,所以我想来想去,她应该有个深圳的名字,所以我就叫她“MiniORM”。不知道各位认为如何? MiniORM采用的是ONE_INHERIT_TREE_ONE_CLASS(一个继承树对应于一个表)的结构,虽然这种结构容易导致数据冗余 阅读全文
posted @ 2013-01-11 17:22 修身、律己 阅读(287) 评论(0) 推荐(0)
 
C#基础系列:开发自己的窗体设计器(在容器上拖动鼠标增加控件)
摘要: 【转 http://blog.csdn.net/ronotian/article/details/3159595】本文我们实现一个简单的通过拖动鼠标来增加控件的方法。在我们使用vs2005来开发WinForm应用程序的时候,我们通过选择左边“工具箱”中的某个控件,然后在我们自己的窗体上通过拖动鼠标,一个我们需要的控件就出现了,觉得很爽!其实vs2005中已经有这方面的组件,我们通过简单的代码就可以直接使用,这个你可以用“窗体设计器”Google一下,已经有人做了这方面的介绍。所以我要说的是,难道除了使用vs2005中提供的这个标准组件,就不能自己弄出一个来?即使不够强大,但是最终都是自己折腾出 阅读全文
posted @ 2013-01-11 17:19 修身、律己 阅读(646) 评论(0) 推荐(0)
 
C#基础系列:开发自己的窗体设计器(实现控件的选择)
摘要: 【转 http://blog.csdn.net/ronotian/article/details/3165816】所谓控件的选择,就是在设计器上某个控件被选中或者控件获得焦点(通过Tab调整控件焦点)的时候,在控件的四周显示出调整手柄。如下图:如上,通过控件的调整手柄,我们可以调整控件的宽度和高度。而实现这个调整手柄的关键点其实得益于vs2005控件的灵活性。因为这8个正方形的调整手柄其实就是8个控件。所以我们本文的重点如下:1、开发自定义的调整手柄控件,也就是这正方形控件;2、组合这8个调整手柄控件,目标是使设计器上的控件与调整手柄完全解耦,调整手柄能够不做任何的修改就可以应用于所有的控件; 阅读全文
posted @ 2013-01-11 17:16 修身、律己 阅读(902) 评论(0) 推荐(0)
 
C#基础系列:开发自己的窗体设计器(实现控件的拖动)
摘要: 【转 http://blog.csdn.net/ronotian/article/details/3168178】控件移动的关键点就是需要设计一个独立于任何控件的类(UIMoveKnob)来控制控件的移动。我这里实现的方法只针对一个控件,如果需要同时选择多个控件,然后同时移动的话,你需要修改这个类,这里是有点难于控制,我使用的方法严重耦合,所以只在这里给出移动一个控件的办法,具体移动过个控件的方法请各位讨论。要移动某个选定的控件,我们需要实现控件的:MouseDownMouseMoveMouseUp这3个事件。在MouseDown的时候,记录鼠标点击的开始位置,并设置开始移动标志为True;在 阅读全文
posted @ 2013-01-11 17:05 修身、律己 阅读(501) 评论(0) 推荐(0)
 
C#基础系列:开发自己的窗体设计器(PropertyGrid显示中文属性名)
摘要: 【转 http://blog.csdn.net/ronotian/article/details/3183907】既然是一个窗体设计器,那就应该能够设置控件的属性,设置属性最好的当然是PropertyGrid了,我们仅仅需要使用一个PropertyGrid.SelectedObject = Control就可以搞定,让PropertyGrid显示Control的所有属性。可是这里显示的属性名是英文的。对于我们开发人员来说这无可厚非,我们也乐于接受。并且让PropertyGrid显示中文属性名,这对于我们开发人员的使用来说显得多此一举。可是,对于我这种类型的一个应用工具,英文属性名对于很多客户来 阅读全文
posted @ 2013-01-11 17:03 修身、律己 阅读(627) 评论(0) 推荐(0)
 
C#实现ORM的四种方案
摘要: 【转 http://www.csharpwin.com/csharpspace/10432r8685.shtml】正如ORM名称所指示的,实现ORM的关键点在于解决“对象--关系”之间的映射,例如,如何将一个DataRow转换为一个Entity Object,又如何将一个对某Entity Object的操作映射到一个IDbCommand,等等。我们以DataRabbit为例,在DataRabbit中,使用IORMapping接口来抽象这些映射:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.C 阅读全文
posted @ 2013-01-11 16:57 修身、律己 阅读(746) 评论(0) 推荐(0)