01 2006 档案
摘要: 我们都知道Asp.Net2.0中aspx文件结构相比以前有了很大的改变。当然,其中大多数是改善,比如,在page的source code界面的内嵌<% ... %>代码支持智能提示了,不过这个智能提示也有小小小的不爽,就是除非是System.Web等几个默认的命名空间中的类,访问其他命名空间的类如果不添加Namespace引用的话就必须用完全路径访问(我的类前面的命名空间前缀会很长啊,很难看的);有一些改善也带来一些限制,比如,除非在页面/用户控件中显式import其他页面/用户控件,否则是不能访问到外部类型的,感觉就好像这个页面/控件自己一个人带一个程序集。为了合理避免一些限制造成的语法的不爽和合理利用新的智能功能,Teddy在本文中向您展示一组MasterPage/Page/UserControl通用基类封装,他们将为您提供许多非常方便的功能和语法体验。当然,唯一的代价是,你的Page/MasterPage/UserControl必须从我的基类继承,当然,从我的基类继承的对象和从默认系统基类继承的对象是可以自由混合使用的,付出这一点点代价,您在下文中将会看到,绝对是值得的。
阅读全文
摘要: 本文介绍本人的一个简单Object Pool实现。什么是Object Pool呢?大家可能都知道什么是数据库连接池,他能极大避免不需要的对象销毁和初始化开销。本文实现的对象池是一个通用的可用于任何有实例化接口的对象的池。默认的对象的实例化接口是new,文中也演示了如果您的对象需要从一个Factory构造,或当你的对象是用Emit生成时,如何简单继承ObjectPool类,实现特殊的对象的池化操作。
阅读全文
摘要: 在上一篇《来一点反射,再来一点Emit —— 极度简化Entity!》中,Teddy运用反射和Emit极度简化了Entity的定义方式。本文将在上文的基础上,用自定义KeyValueCollection类代替原来的Dictionary类承载Entity的数据,从而改善Entity的读写性能,并保持Dictionary的方便的使用接口。
阅读全文
摘要: 在前一篇文章《没有ORM或代码生成数据就不能持久化了? - 用范型技术代替代码生成!》中,Teddy尝试运用泛型极大简化了一个轻量级持久化框架对代码生成的依赖,并且为了保证性能,整个持久化组件没有使用反射。在本文中,Teddy将在保证性能的基础上,加一点反射和加一点Emit,从而进一步简化Entity的定义和使用,当然也就进一步降低了组件对传统代码生成的依赖。读者可以对比前文阅读本文,看看改进的效果。内容绝对精彩,不容错过哟!
阅读全文