摘要: Emit是.net Framework的Reflection的重要组成部分,其地位类同于Java中的cglib,在一些项目中特别是一些公共项目中不可或缺。在我的Kanas.net框架的数据囊中便使用了Emit,并且不可替代。 Emit的典型应用如下: 1.动态代理,参见:http://www.castleproject.org/index.php/DynamicProxy 2.解除对非托管dl... 阅读全文
posted @ 2005-08-18 17:44 双鱼座 阅读(4259) 评论(7) 推荐(0) 编辑
摘要: 这个话题来自我的MSN Space。这是原文: 元数据(metadata)这个词现在到处泛滥。其实我对元数据充其量只能说有自己的理解而已,并不能确信这个理解是正确的。 我认为,数据结构分为三个层次(UML可是四层哦):实例层:直接描述特异化的数据场景;元数据层:描述实例的结构的一组数据;元数据的元数据层:描述元数据的结构的一组数据。元数据就是用来描述实例或者描述元数据的一种结构。元数据的特征有这样... 阅读全文
posted @ 2005-08-18 11:44 双鱼座 阅读(3814) 评论(2) 推荐(0) 编辑
摘要: LazyLoad是在实体实例加载中一种可选的策略,在Hibernate2中支持引用的LazyLoad,在Hibernate3中更支持任意类型属性级的LazyLoad。大概评估了一下,LazyLoad有以下好处:1.提高运行时的响应度。执行三个SQL语句显然比执行一个SQL语句快。2.节省内存。一次性加载全部的依赖肯定会耗费更多的内存。3.不用担心循环引用。因为互相引用的两种不同的实体是在不同的时期... 阅读全文
posted @ 2005-08-10 02:40 双鱼座 阅读(2739) 评论(16) 推荐(0) 编辑
摘要: Kanas.net 1.3在紧张的测试中。为了保证数据库支持的中立性,采用SQL标准实现最差的MS Jet(MS Access 2000格式载体,使用ADO.NET的OleDb引擎)。以往这种数据库配置用得比较少,对其特异性严重掌握不够,导致排错效率不高。其中有一个TestCase出现的bug狂找了一个小时才发现,真是哭笑不得。大家看看以下两个SQL语句,相同的指令,不同的结果:命令文本:upda... 阅读全文
posted @ 2005-08-10 02:12 双鱼座 阅读(1575) 评论(7) 推荐(0) 编辑
摘要: 一、关于构造对象在Hibernate中,要持久化一个pojo,必须执行类似Session.save(myobj)这样的方法,通知事务上下文加入这个持久化请求。在执行这么方法前,任何操作对于持久层都是没有影响的。在持久层收到持久化请求后执行持久的时候,通过解析过的配置文件将这个pojo持久化。所有的一切都是在一个透明的过程中完成的。Java自始至终强调一个纯净的环境,不赞同业务层的类被污染,所以Hi... 阅读全文
posted @ 2005-08-04 02:15 双鱼座 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 此文描述实体元数据定位的解决方案。虽然更多地利用了语言的特性,但是这个方案毕竟代价低廉,效果极佳。原文 阅读全文
posted @ 2005-07-26 16:40 双鱼座 阅读(2323) 评论(0) 推荐(0) 编辑
摘要: 从Kanas.Net 1.0开始,我对元数据的处理都是这样的:TypeBroker:收集与实体类型相关的元数据信息,包括反射信息和映射信息;PropertyBroker:收集与实体类型的属性相关的元数据信息,包括反射信息和映射信息。这应该是必须经历的一步,是整个环境上下文信息中最重要的一部分。在业务层很难避免对实体元数据信息的操作,例如定位实体类或者定位实体属性。实体类型的问题还比较好办,毕竟在C... 阅读全文
posted @ 2005-07-26 16:28 双鱼座 阅读(2845) 评论(34) 推荐(0) 编辑
摘要: 摘要:有一些网友向我咨询一些Kanas.Net的背景。我也打算在本月底Release1.3版。这个版本将对所有框架代码开源,也提供相应文档,但是所提供的建模工具及Visual studio.net插件免费使用,不提供源码。非常感谢网友的关注!每一份关注对我都是一份力量!原文 阅读全文
posted @ 2005-07-13 18:01 双鱼座 阅读(5381) 评论(29) 推荐(0) 编辑
摘要: 我出生于一个非计算机相关专业的科班,所以软件行业来说,我根本就是低学历的。从86年开始在一台512K内存,5M硬盘的IBM PC上写第一个Hello World汇编语言程序的时候,就决定改行从事这个行业。但是真正专业从事这个行业却是93年以后的事情,之前的一切都属于业余级。但是好象我用的编程工具一直是Borland公司提供的,从Turbo ASM、Turbo C到Turbo Pascal,而且我一... 阅读全文
posted @ 2005-07-13 17:51 双鱼座 阅读(4581) 评论(23) 推荐(1) 编辑
摘要: 在.net下一般的的Web服务开发是这样的:先规划服务端的服务程序,例如.asmx请求处理程序。然后用disco实用程序生成发现文件,再用wsdl实用程序生成代理类的源文件,将这个源文件编译到客户端应用程序中。如果根据业务需求,修改了Web服务程序,例如增加了一个参数,那么这个过程就必须重复一遍,或者至少客户端程序必须改动。在某些情况下,这样的要求是苛刻的,或者至少是代价高昂的。例如,我的客户端... 阅读全文
posted @ 2005-07-11 13:31 双鱼座 阅读(6641) 评论(15) 推荐(1) 编辑