09 2006 档案
Remoting使用情况性能测试(二)
摘要: 基于远程代理的对象调用,成员的操作对性能影响还是比较大的。从2和1测试用例对比可以看到,只是多了一个成员的调用并发率竟然能相差这么大。因此在调用远程对象时最好是基于无状态方法的调用,这样可以减少远程对象的访问次数,从而获取性能上的提高。
缓存的利用也是一个很重要的因素,这样可以避免远对象创建过程中带来的损耗问题。直接由RemotingConfiguration配置代理的对象内部已经提供这处机制,如果代理对象是通过另一个代理创建时缓存就变得很重要从2和5的测试图可以看到差别。多层代理对象的创建对性能的影响比较严重,因此遇到这情况要特别注意。
阅读全文
posted @
2006-09-26 12:41 henry 阅读(1201) |
评论 (1) 编辑
UI行为控制器
摘要: 前两天同事讲解他编写的快速开发模型,他把现实中的不同功能的ASP.NET页面归类,然后根据不同情况实现了相关的模板类;当你需要某此功能时从相关模板派生出来然后重写某些成员很快就能完成(如某行为的Button,或数据编辑Entity来源)。在他演视时并没有看到他编写业务逻辑,于是就好怪地问他是如何处理的;原来在每个类别的页面模板内部都捆绑数据处理功能,他试图在模板类中完成所有数据处理的情况和相关业务逻辑规则。当然这情况我是非常反对的,因为随着业务的变更模板类就会变得臃肿难以维护,最后可能出现更糟的事情!当我提的一大堆面对的问题后确被一个很直接的答案了结了“快速开发”,的确真的很方便对于他描述的例子,我也不能否认!
其实同事的方案是很好的,能使开发人员够遵循一个规则并进行快速开发。只是有一点我是很不认同的就是UI、BLL和DAL捆绑在一起,集中捆绑对代码的修改和维护都是致命的;何况修改和维护的时间往往比开发的时间要长,相应的成本就更高!除非能保证代码能适应所有情况,这显然是不太可能...
阅读全文
posted @
2006-09-18 16:32 henry 阅读(1358) |
评论 (2) 编辑
SQL Artisan处理规则结构描述
摘要: 本文主要介绍SQL Artisan处理规则结构,认大家对组件的结构有个大体的认识。SQL Artisan主要由:数据处理容器,操作行为描述,条件描述和映射处理描述等四大部分构成;各自完成数据库操作中不同部分,最后整合完成整个数据库操作处理。虽然通过组件进行数据库操作很方便,实际在处理过程都会经过这四个环节处理。
接下来简单介绍这四个模块的类结构和类关系信息:
(文章尾部可以下载清晰类结构图)
阅读全文
posted @
2006-09-15 12:17 henry 阅读(1326) |
评论 (7) 编辑
利WMI实现监视局域网计算机CPU使用情况
摘要: 由于近期项目有可能需要使用到WMI技术,因此这段时间有机会学习一下这种技术。本来以为是挺复杂的东西,没想到这方面的资源还是挺多,复杂的东西MS都帮你完成了;.NET FrameWork还直接支持了这种功能的调用,只要花上一点时间就能够写一些基于WIN系统简单监控程序。为了体验一下于是做一个简单的局域网计算机CPU监视程序;.Net FrameWork提供了System.Management名称空间下的一系列对象来处理WMI功能,虽然使用相关的对象并不多,但是WMI Classes整个库还是很庞大的;当然没有必要全部都记录下来当你需要时从MSDN获取就可以了。在使用的过程中主要用ManagementObjectSearcher 和 ManagementQuery 派生的类来查询计算机的资源...
阅读全文
posted @
2006-09-14 09:28 henry 阅读(2169) |
评论 (7) 编辑
对IExpression聚合统计的扩展实现
摘要: IExpression是Sql Artisan组件的条件描述接口,组件中使用的所有条件(包括组合条件)都是以IExpression体现出来。但现有版本中的IExpression只支持数据查询、删除和修改操作,对于聚合统计并没有直接支持,只能通过视图对象的方式来描述聚合统计;但这种方式需要描述实体使用不是很方便,因此产生对IExpression简化聚合统计的想法。接下来为大家介绍以外部扩展的方式对IExpression实现数据聚合统计功能。
阅读全文
posted @
2006-09-12 12:05 henry 阅读(1144) |
评论 (0) 编辑
SQL Artisan 1.3功能使用介绍
摘要: 经过一段时间的修改SQL Artisan1.3功能已经完成,新版本并没引入太多的新功能,主要着手于使用方便性上的改进和完善。在这个版本中你可以看到数据操作变得很方便简洁,包括数据查询和统计;大部分的操作方式都是基于条件的驱动,让使用者在数据查询和统计中只关心条件,从而达到简单快捷地实现相关数据操作功能。由于这个版对基础的修改比较多因此并不稳定,在这里发表组件使用功能的主要目的是想得到大家意见。
接下来介绍SQL Artisan1.3的功能使用,主要包括以下几个方面:数据修改操作,数据查询操作(包括复杂的关联查询),聚合统计。通过介绍组件使用的过程你会体会组件在数据操作上的方便性,其效果相信不会令你失望;当然更希望得到的是你宝贵的意见...
阅读全文
posted @
2006-09-10 12:52 henry 阅读(1459) |
评论 (6) 编辑
Flex调用不同参数类型的.Net WebMethod
摘要: Flex在调用WebService方面封装的非常好,在调用.Net WebMethod过程中参数对象或返回对象都可以和Flex本地对象容合,并不需要作特定的转换(不过.Net有些对象还是不能被Flex所识别,如果DataSet)。以下是描述Flex调用具备不同参数类型或返回值类型的.Net WebMethod,从而让不了解Flex朋友认识到Flex在调用WebService的方便灵活性。大家都知道.Net WebMethod提供参数或返回值的类型是非常多样的,可以是值类型(最简单的类型)、普通实体模型(只有值类型属性)或比较复杂的对象模型(内嵌其他对象)。Flex有调用这些WebMethod的方式都是一样,只是在构造参数有些差别...
阅读全文
posted @
2006-09-08 12:43 henry 阅读(2100) |
评论 (8) 编辑
制定统一业务逻辑基础规则
摘要: 在编写业务逻辑上定义基础处理规则,这样就能够清楚明确系统中所有业务逻辑的处理过程(主要也是方便对业务逻辑的理解和维护);在实际情况中业务逻辑的规则是比较复杂和多变的,似乎制定一个统一的规则比较难。但是事实上可以采用Command模式制定业务逻辑的基础规则,用于描述业务逻辑执行的切入点;对于一些复杂的规则(如业务流程处理等)可以通过Template Method模式对基础规则进行扩展;这种制定规则只适用于单一职责业务逻辑,对于一些多职责业务逻辑只能选择别的方式。
在软件开发中解决问题的方法很多,虽然都是解决同一问题但不同人实现的方法却可以完全不一样;因此以下描述的内容只是本人在项目制定的业务逻辑基础规则。在系统设计时会制定以下两种业务逻辑的基础规则:
1) 多职责规则;用于业务数据的基础操作,主要是添加,修改和删除。
2) 单一职责规则;用于扩展出查询、统计和复杂处理的基础规则(实际上是规范所有单一职责的业务逻辑)。
阅读全文
posted @
2006-09-04 22:18 henry 阅读(1689) |
评论 (3) 编辑
对象成员数据验证组件实现
摘要: 由于业务逻辑数据来源于UI,因此在UI验证数据就已经够安全;如果在业务逻辑再进行一次验证似乎有点多此一举。实际上我认为这样很不合理,因为业务逻辑本身就是一个独立体,把数据的合法性依赖于UI是很不应该的。但在业务逻辑中对成员的数据验证并不象UI那样有着方便的验证控件,如果手动对每个数据成员进行编码验证的确会增加很大的工作。为了解决这方面问题想出了通过Custom Attribute的方式来简化对象成员数据验证的功能;通过Attribute来配置需对象成员需要验证的方式,然后通过容器进行统一验证,从而达到简化验证代码的编写。
阅读全文
posted @
2006-09-01 10:59 henry 阅读(1706) |
评论 (18) 编辑