- 浏览: 144575 次
- 性别:
- 来自: 成都
最新评论
-
老八牛:
利用迭代器让异步操作更加“人性化”-山寨版的AsyncEnumerator -
老八牛:
为什么看不到代码?
利用迭代器让异步操作更加“人性化”-山寨版的AsyncEnumerator -
xi4nyu:
如果启动Application中的settings 的debu ...
玩蛇记-使用Tornado构建高性能Web之二-autoreload -
huacnlee:
"且在python下工作多日才发现原来在.NET下的 ...
玩蛇记-使用tornado构建高性能Web应用之一 -
jasongreen:
异步数据库操作,在web上有什么作用吗?
玩蛇记-使用tornado构建高性能Web应用之一
文章列表
因为ORM还是需要配置,还是需要EntityObject,所以重复劳动在所难免,这里简单来看看如何实现一个代码生成器来降低我们的劳动强度。说白了代码生成器原理相当的简单,一言概之其要点就是获取表和字段的信息这里用SqlServer数据库为例看看怎么获取的获取有哪些表和表信息用 sp_tables存储过程就可以了获取一个表里字段的信息用 sp_columns就可以了还有个方法就是去读系统视图或者系统表。获取到了数据库的元数据后,生成代码不过就是循环再循坏的小Case了这里要注意建议读取系统视图(Master库里的),准确些,在2000和2005之间sp_columns执行的结果不一样。
- 2007-01-25 11:45
- 浏览 620
- 评论(0)
因为ORM还是需要配置,还是需要EntityObject,所以重复劳动在所难免,这里简单来看看如何实现一个代码生成器来降低我们的劳动强度。说白了代码生成器原理相当的简单,一言概之其要点就是获取表和字段的信息这里用SqlServer数据库为例看看怎么获取的获取有哪些表和表信息用 sp_tables存储过程就可以了获取一个表里字段的信息用 sp_columns就可以了还有个方法就是去读系统视图或者系统表。获取到了数据库的元数据后,生成代码不过就是循环再循坏的小Case了这里要注意建议读取系统视图(Master库里的),准确些,在2000和2005之间sp_columns执行的结果不一样。
- 2007-01-25 11:45
- 浏览 707
- 评论(0)
最后我们来解决点遗留问题首先是读取Attribute的问题
Type tp = target.GetType();PropertyInfo pp = tp.GetProperty(s);foreach (object o in pp.GetCustomAttributes(false)){ if
- 2007-01-25 11:26
- 浏览 669
- 评论(0)
最后我们来解决点遗留问题首先是读取Attribute的问题
Type tp = target.GetType();PropertyInfo pp = tp.GetProperty(s);foreach (object o in pp.GetCustomAttributes(false)){ if
- 2007-01-25 11:26
- 浏览 585
- 评论(0)
恕我卖个关子,如何得到Attribute的问题先放一放,肯定通过反射,有兴趣的也可以自己研究研究今天先来说缓存的问题,对于数据缓存就我自己来说经历过很多次的反复,不过在.NET社区很多人都支持按需读取的原则,不过我觉的这是个误区,在单击程序的时候由于个人电脑的内存比较小和多用途性,很多程序都强调尽量少占用内存。不过在写服务程序的时候就是一个误区了,把常用数据缓存起来,在需要的时候快速调用才是提高性能的法宝,现在个人电脑的内存都按G算的年代,如何合理充分利用内存才是正途。所以我们决定要在我们的demo orm中实现一个缓存,缓存什么呢?,insert语句的执行结果显然是不用了,我们只需要缓存每一次 ...
- 2007-01-25 10:39
- 浏览 616
- 评论(0)
恕我卖个关子,如何得到Attribute的问题先放一放,肯定通过反射,有兴趣的也可以自己研究研究今天先来说缓存的问题,对于数据缓存就我自己来说经历过很多次的反复,不过在.NET社区很多人都支持按需读取的原则,不过我觉的这是个误区,在单击程序的时候由于个人电脑的内存比较小和多用途性,很多程序都强调尽量少占用内存。不过在写服务程序的时候就是一个误区了,把常用数据缓存起来,在需要的时候快速调用才是提高性能的法宝,现在个人电脑的内存都按G算的年代,如何合理充分利用内存才是正途。所以我们决定要在我们的demo orm中实现一个缓存,缓存什么呢?,insert语句的执行结果显然是不用了,我们只需要缓存每一次 ...
- 2007-01-25 10:39
- 浏览 555
- 评论(0)
最近越来越不知道该吃什么了。唉。
现在到了比较激动的地方了,ORM,说白了最主要的工作就是将对象和数据库表格的映射建立起来。这里我们就不用XML文件来配置了,第一会使配置文件结构变复杂加大解析难度,第二我来看看另外一种做映射的方法。
这里介绍一下.NET的Attribute,在早些时候被翻译作属性,和property混淆了。现在一般都翻译为特性或特征,它可以给一个类或者类的成员附加一些额外的特征或者功能。在.NET里面的System.Arribute作为其基类,所有继承自他的,并且类名以Attribute结尾的类型都可以作为Attribute实用,这里有一个约束,定义的时侯类名要以Attribu ...
- 2007-01-24 22:21
- 浏览 564
- 评论(0)
最近越来越不知道该吃什么了。唉。
现在到了比较激动的地方了,ORM,说白了最主要的工作就是将对象和数据库表格的映射建立起来。这里我们就不用XML文件来配置了,第一会使配置文件结构变复杂加大解析难度,第二我来看看另外一种做映射的方法。
这里介绍一下.NET的Attribute,在早些时候被翻译作属性,和property混淆了。现在一般都翻译为特性或特征,它可以给一个类或者类的成员附加一些额外的特征或者功能。在.NET里面的System.Arribute作为其基类,所有继承自他的,并且类名以Attribute结尾的类型都可以作为Attribute实用,这里有一个约束,定义的时侯类名要以Attribu ...
- 2007-01-24 22:21
- 浏览 502
- 评论(0)
第一,学习编程是一个很枯燥的过程,所以我们更要讲究效率(要把有限的时间投入到无限的泡妹妹活动中去)第二,学习不要贪多,常常看到某人今天看看Nhibernate,明天看看Ajax,学习列表上堆积了一大堆列表,最后发现每一样都是浅尝则止,最后成为了传说中的门门懂样样瘟。学习要有重点,起码要保证自己在某一领域有了较深入的研究再去投入更多精力研究其他的。第三,学习的三板斧:Know What,Know How,Know why有人已开始就去看源代码看StarterKit,这样子的方法我是不提倡的。要学习一门技术首先要知道这门技术是什么,这个都没搞清楚就到处打听怎么实现的人不在少数,冲动是魔鬼阿。在Kno ...
- 2007-01-24 20:07
- 浏览 515
- 评论(0)
第一,学习编程是一个很枯燥的过程,所以我们更要讲究效率(要把有限的时间投入到无限的泡妹妹活动中去)第二,学习不要贪多,常常看到某人今天看看Nhibernate,明天看看Ajax,学习列表上堆积了一大堆列表,最后发现每一样都是浅尝则止,最后成为了传说中的门门懂样样瘟。学习要有重点,起码要保证自己在某一领域有了较深入的研究再去投入更多精力研究其他的。第三,学习的三板斧:Know What,Know How,Know why有人已开始就去看源代码看StarterKit,这样子的方法我是不提倡的。要学习一门技术首先要知道这门技术是什么,这个都没搞清楚就到处打听怎么实现的人不在少数,冲动是魔鬼阿。在Kno ...
- 2007-01-24 20:07
- 浏览 398
- 评论(0)
原贴在:http://www.cnblogs.com/jedwin/archive/2007/01/24/629167.html我想说的是如果可以简单完成的工作就不要用麻烦的解决方案所以最近喜欢用脚本解决问题,其实这个问题我们本子族常常遇到,之前我也有一个类似的问题,那时候还是穷学生的时候因为舍不得多花一张网卡的钱,于是啄么着用一张网卡使用Winrouter做代理。当时用window的虚拟网卡,然后在物理网卡上绑定两个网段的ip,然后把虚拟网卡和物理网卡上的一个网段设置成一样的,这个就是内网网段,然后就是设置路由,后头发现这样子每次都必停用启用一次本地连接,所以就到处查资料用脚本来实现了这个功能 ...
- 2007-01-24 16:51
- 浏览 756
- 评论(0)
原贴在:http://www.cnblogs.com/jedwin/archive/2007/01/24/629167.html我想说的是如果可以简单完成的工作就不要用麻烦的解决方案所以最近喜欢用脚本解决问题,其实这个问题我们本子族常常遇到,之前我也有一个类似的问题,那时候还是穷学生的时候因为舍不得多花一张网卡的钱,于是啄么着用一张网卡使用Winrouter做代理。当时用window的虚拟网卡,然后在物理网卡上绑定两个网段的ip,然后把虚拟网卡和物理网卡上的一个网段设置成一样的,这个就是内网网段,然后就是设置路由,后头发现这样子每次都必停用启用一次本地连接,所以就到处查资料用脚本来实现了这个功能 ...
- 2007-01-24 16:51
- 浏览 702
- 评论(0)
CMMI是魔鬼继续上面的内容,这里我们要实现一个插件的结构来动态从外部载入数据组件,其好处不用我再多说了,可能有人会发问,插件是AOP的拿手好戏你咋个不用?真是晕死,就2行代码,犯得着引入那么大一堆东西进来么?插件,首先要定义接口,当然通过Refrection我们无所不能,但是有一个定义好的Interface对性能的改善来说不是一点半点的。我们引入一个新的项目来定义接口,理由呢就是消除循环引用。接口的定义:
1namespace Alexander.Xbase.Interface 2{ 3 publ
- 2007-01-24 15:29
- 浏览 575
- 评论(0)
CMMI是魔鬼继续上面的内容,这里我们要实现一个插件的结构来动态从外部载入数据组件,其好处不用我再多说了,可能有人会发问,插件是AOP的拿手好戏你咋个不用?真是晕死,就2行代码,犯得着引入那么大一堆东西进来么?插件,首先要定义接口,当然通过Refrection我们无所不能,但是有一个定义好的Interface对性能的改善来说不是一点半点的。我们引入一个新的项目来定义接口,理由呢就是消除循环引用。接口的定义:
1namespace Alexander.Xbase.Interface 2{ 3 publ
- 2007-01-24 15:29
- 浏览 595
- 评论(0)
现在中午不睡一会儿就头晕。前一篇有人留言说为什么不写web.config?我个人非常反对庞大的web.config文件,可能其根源就在于互联星空系统的巨大的配置和它带来的混乱,自己实现一个小巧灵活的机制是我比较喜欢的,这样可以降低系统的侵入性,也可以方便我改成其他语言的版本。这里我们来给刚才的Resource类加一个壳,因为我们毕竟不能用绝对的Path去访问,我们需要一个通过类名就可以访问得到配置的方式。在加这个壳之前我们先规划一下配置文件,我们这里需要两种配置文件,一个是配置数据库连接的,一种是配置每个类的操作的,前边说过了,对输入和结果的映射在类的Attribute里完成,这样子配置每个类的 ...
- 2007-01-24 13:51
- 浏览 584
- 评论(0)