conan

导航

08 2005 档案

Enterprise LibraryV1.0-数据应用程序块
摘要:1、简介数据应用程序块把我们从大量的机械的数据库访问代码中解放出来,同时给我们带来了在多个数据库甚至多个不同类型的数据库的中无缝切换的可能。数据应用程序块的类继承层次非常简单,这里就不做详细介绍了(向看此文的朋友问个问题:为什么Vs.net2003的类视图窗口中很多类都不显示?)。我们在我前面的配置应用程序块中提到过,要读取我们的自定义配置数据,首先要写一个配置数据类,数据应用程序块也不例外,这个... 阅读全文

posted @ 2005-08-26 01:18 Conan 阅读(237) 评论(0) 推荐(0)

关于数据访问模式(八)—— Resource Pool模式
摘要:Resource Pool(资源池)模式已经在上一篇Post中露过脸了,这次让我们再对其看个仔细吧。Resource Pool模式是在应用程序开发中十分常见的一种模式,如果你使用过任何一个主流的应用服务器,如Tomcat,Weblogic,Websphere,Resin等等,对连接池(Connection Pool)的配置一定都不会陌生。我们从几乎无处不在的连接池就可以知道Reso... 阅读全文

posted @ 2005-08-26 00:54 Conan 阅读(600) 评论(0) 推荐(0)

.Net中的设计模式——Factory Method模式
摘要:Factory Method模式 一、模式概述 也许Factory Method模式是设计模式中应用最广泛的模式。在面向对象的设计中,关于对象的管理是其核心所在,而其中对象的创建则是对象管理的第一步。对象的创建非常简单,在C#中,只需要应用new操作符调用对象的构造函数即可,然而创建对象的时机却非常重要。 首先我们从对象的特征来看,代表抽象关系的类型,如接口和抽象类,是不能创建的,换句话说... 阅读全文

posted @ 2005-08-26 00:44 Conan 阅读(255) 评论(0) 推荐(0)

dotnet程序优化心得(三)
摘要:(4)继续优化――用空间换取时间 现在对每一个字符,都要用get_Item(object key)方法过一遍,可这个乖乖方法那么长,肯定太耗时间了,能不能用更简单的手段呢?改Hashtable?哇,那代码,叫一个看不懂。仔细琢磨琢磨,有了,直接用数组!每一个汉字对应一个Int16,以该值为索引,数组中在那个位置的值为值,这样最快速了。就是占点空间,内存便宜嘛。反正这东西只初始化一次,占不了多少k。... 阅读全文

posted @ 2005-08-26 00:42 Conan 阅读(191) 评论(0) 推荐(0)

dotnet程序优化心得(二)
摘要:下面以实际例子具体解释相关技巧。 (1)缘起 bfax@smth.org发了一个字符串转换程序,引起了热烈讨论。原程序如下: 1 2Function B2G()Function B2G(prestr As String) As String 3 Dim i, j As Integer 4 Const GB_Lib = "" //几千个字符吧,因为字符串长度限制,原程序是由... 阅读全文

posted @ 2005-08-26 00:41 Conan 阅读(235) 评论(0) 推荐(0)

dotnet程序优化心得(一)
摘要:近一段时间测试过几个程序,有一些心得。具体步骤如下: (1)写出测试程序(2)测试原程序,记录运行时间,作为优化的基础。要在Release下测试。(3)检查算法,是不是最有效的算法。尤其是现在内存便宜,看有没有能够用空间换取时间的方法(4)用Reflector查看类库,看你使用的方法是不是最有效率的方法(5)对于运行次数多,性能关键的地方,不要直接调用类库。类库是为通用目的设计的,用Reflec... 阅读全文

posted @ 2005-08-26 00:40 Conan 阅读(355) 评论(0) 推荐(0)

关于存储过程编程细节
摘要:存储过程。 存储过程是数据库编程里面最重要的表现方式了。 呵呵,这里我要提到上次说道的:我拒绝使用触发器。这里我要开始猛批一顿触发器了。 在SQL 2000里,说实话,我实在找不出触发器可以存在的理由。回忆一下:触发器是一种特殊的存储过程。它在一定的事件(Insert,Update,Delete 等)里自动执行。我建议使用sp和级联来代替触发器。 在SQL 7 里面,触... 阅读全文

posted @ 2005-08-26 00:27 Conan 阅读(540) 评论(2) 推荐(0)

Bridge模式之我见
摘要:我在博客园上搜到各位大哥对于Bridge模式的相关介绍: 1、 设计模式随笔-蜡笔与毛笔的故事 2、 Bridge Strategy 和State的区别 3、 设计模式(16)-Bridge Pattern 4、 学习设计模式之Bridg... 阅读全文

posted @ 2005-08-26 00:23 Conan 阅读(238) 评论(0) 推荐(0)

Bridge Strategy 和State的区别
摘要:首先需要申明的是本文不是介绍Bridge Strategy 和State模式,而是讨论它们的区别,所以需要你对它们先有所了解。 Bridge模式用一句话来说就是将抽象和实现分离。这句话如何理解,在《Design Pattern Explained》一书中做了很详细的解释。说实话,我现在已经记不清它是怎么说的了。 吕震宇对此也做了解释。 我是这样理解的:对一个事物进行抽象,得... 阅读全文

posted @ 2005-08-26 00:18 Conan 阅读(232) 评论(0) 推荐(0)

设计模式随笔-蜡笔与毛笔的故事(bridge模式)
摘要:我想大家小时候都有用蜡笔画画的经历吧。红红绿绿的蜡笔一大盒,根据想象描绘出格式图样。而毛笔下的国画更是工笔写意,各展风采。而今天我们的故事从蜡笔与毛笔说起。 设想要绘制一幅图画,蓝天、白云、绿树、小鸟,如果画面尺寸很大,那么用蜡笔绘制就会遇到点麻烦。毕竟细细的蜡笔要涂出一片蓝天,是有些麻烦。如果有可能,最好有套大号蜡笔,粗粗的蜡笔很快能涂抹完成。至于色彩吗,最好每种颜色来支粗的,除了蓝天还有绿地呢... 阅读全文

posted @ 2005-08-26 00:12 Conan 阅读(295) 评论(0) 推荐(0)

分析:李开复事件拉开微软Google争霸赛
摘要:李开复争夺战仅仅是互联网时代与PC时代较量的开始 □记者 虞立琪 实习记者 高健 46岁的李开复微笑的时候嘴角微微上翘,甚至显得有些腼腆。但近来,很少有人看到李开复的笑容。 美国当地时间7月28日,美国华盛顿州高等法院法官发布一项临时禁令,暂时禁止李开复在Google从事任何与他在微软时从事的相类似的工作,开发类似产品,参加类似项目,包括网际网络和桌面搜索技术。 事... 阅读全文

posted @ 2005-08-25 23:47 Conan 阅读(265) 评论(0) 推荐(0)

Google欲图霸主位置 微软桌面神话可能终结
摘要:2005年7月19日,微软高级副总裁李开复向媒体宣布从微软辞职,正式加盟Google。颇感羞辱的微软20日发表声明,称李开复违反了与微软签订的员工保密协议和非竞争协议。随后,微软向美国华盛顿州地方法院提起诉讼,指控Google和李开复违反了行业竞争禁止协议。 直到28日,华盛顿州地方法院发布一项临时禁令,禁止李开复在Google从事如网络和桌面搜索技术等这些与微软相竞争的领... 阅读全文

posted @ 2005-08-25 23:46 Conan 阅读(340) 评论(0) 推荐(0)

界面设计模式 之 我的Tree-Client模式
摘要:平时在用C#做界面的时候,尤其是在做参数设置界面的时候,经常会遇到左边是树,右边根据树节点对应的数据类型显示不同的内容。VS2003的选项设置界面就是这种布局。那么我们自己来实现的时候,如何设计才比较好呢? 先看一下我的界面示意图: 这里我们可以看到有如下几个我们需要关注的对象: 节点(TreeNode):其中包含了我们最核心的数据,只有根据其中的数据我们才能选择我们需要的显示界面界面容器(Sit... 阅读全文

posted @ 2005-08-25 01:30 Conan 阅读(358) 评论(0) 推荐(0)

.Net中的设计模式——Composite模式
摘要:一、模式概述 描述Composite模式的最佳方式莫过于树形图。从抽象类或接口为根节点开始,然后生枝发芽,以形成树枝节点和叶结点。因此,Composite模式通常用来描述部分与整体之间的关系,而通过根节点对该结构的抽象,使得客户端可以将单元素节点与复合元素节点作为相同的对象来看待。 由于Composite模式模糊了单元素和复合元素的区别,就使得我们为这些元素提供相关的操作时,可以有一个统一的接口。... 阅读全文

posted @ 2005-08-25 01:27 Conan 阅读(228) 评论(0) 推荐(0)

ASP.NET 中的跨应用程序单点登录
摘要:对于大多数的web应用程序,很多人喜欢采用表单验证的方法。当许多应用程序运行在一个主域下面的多个子域时,使用单点登录将是很不错的一个选择,当用户在www.exapmle.com登录之后,可以访问everything.example.com的资源。 表单验证默认不支持这种特性,但是,通过合适的方法调整它并不复杂。 ASP.NET表单验证的技术内幕并不复杂:它创建了一个特殊的Cookie,这个cook... 阅读全文

posted @ 2005-08-25 01:10 Conan 阅读(671) 评论(0) 推荐(0)

让我最后罗嗦一下Visitor模式——关于双重分派
摘要:昨天罗嗦了一下Visitor模式,idior以及Cavingdeep兄都写下了很多促使我进一步去思考的Feedback,在这里谢谢两位了!感谢的话说完了,让我们言归正传——开始罗嗦,呵呵。 在昨天的Post中我提到了Visitor模式中最重要的一点是:double-dispatch(双重分派)。说来惭愧,昨天在写post的时候,我仅仅在震宇兄的Post中对double-... 阅读全文

posted @ 2005-08-25 00:51 Conan 阅读(539) 评论(1) 推荐(0)

Ajax学习笔记(2) - 一定要用XML吗?
摘要:Ajax一定要用XML吗?我觉得不一定用。不用XML的理由:1. javascript脚本解析Xml比较慢;2. 对于一些简单数据,用Xml有点大炮轰蚊子的感觉;3. XmlHttp提供了responseText,就是给了大家不用Xml的方便;不用Xml用什么?可以采用技术很多,对于简单数据你可以返回自定义的数据格式,比如,第1位是状态位,第2位之后是数据。对于复杂数据,你甚至可以直接返回java... 阅读全文

posted @ 2005-08-25 00:49 Conan 阅读(408) 评论(0) 推荐(0)

Ajax 学习笔记(1)
摘要:技术的核心是采用XmlHttp来请求和接收回应。XmlHttp只是一种技术规范,具体的实现上IE和Firefox有所不同,IE是用ActiveX方式,而Firefox是内置实现的。IE下创建XmlHttp对象:A=new ActiveXObject('Msxml2.XMLHTTP');Firefox下创建XmlHttp对象:A=new XMLHttpRequest();还可以用下面的写法,可以比较... 阅读全文

posted @ 2005-08-25 00:44 Conan 阅读(249) 评论(0) 推荐(0)

企业应用分层模型之讨论
摘要:最近做一个Project,考虑到时间紧迫,对以前的分层结构做了些修改,没想到开发效率比以前提高75%,以前两天一个功能点,现在只需要半天甚至更少了。具体来看一下,以前的分层如下业务单元在Manager完成,Manager之间不能互相调用,事务在Facade完成,直接拼装Manager,Manager中不能Delete,Insert,Update等数据库更新的语句,涉及数据库更新的全部在持久化代理层... 阅读全文

posted @ 2005-08-25 00:39 Conan 阅读(281) 评论(0) 推荐(0)

分析模式读书心得之责任模式
摘要:Martin Fowler的《分析模式》买了许久,也看了很多遍,始终未能全部领会。这篇读书心得也只是疏浅的一点看法而已。 要说责任模式(Accountability)还需要先从组织架构的程序实现谈起。凡是一个项目,或多或少都要涉及到部门组织架构的描述。目前我们的解决方法无非就是两种:一种是需要递归的处理方式,另外是一种不需要递归的处理方式。 所谓需要递归的处理方式,就是每一个部门采用如下的数据结构... 阅读全文

posted @ 2005-08-25 00:33 Conan 阅读(348) 评论(0) 推荐(0)

Dot Net设计模式—适配器、桥接与外观三模式之间的关系
摘要:这几天一直在研究各种各样的设计模式,在学习适配器模式、桥接模式和外观模式模式的时候,发现他们之间存在着一定的关系,实际上模式不适单一存在的,在我们的现实编程生活中往往是几种模式结合使用的。1.适配器模式与桥接模式的区别和联系 适配器模式和桥接模式都是间接引用对象,因此可以使系统更灵活,在实现上都涉及从自身以外的一个接口向被引用的对象发出请求。 两种模式的... 阅读全文

posted @ 2005-08-25 00:27 Conan 阅读(244) 评论(0) 推荐(0)

JavaScript实际应用:简单二级联动菜单实现
摘要:今天需要一个联动菜单的功能,查看网上资料,基本实现。 执行效果比较满意,下一步就是实现如何动态的加入数据库数据。 阅读全文

posted @ 2005-08-23 21:38 Conan 阅读(774) 评论(1) 推荐(0)

AOP应用之权限管理
摘要:在系统实现中AOP常用于并发、权限管理、事务处理、日志记录、错误处理方面。本文介绍如何使用EnterpriseServerBase类库中的AOP框架来实现权限管理。 一个用户是否有权限调用某个操作(方法),是由我们的应用决定了,不同的应用有不同的实现,但是,如果需要使用EnterpriseServerBase类库中的AOP的权限管理,则应用必须实现下面的接口IPermissionVerifier:... 阅读全文

posted @ 2005-08-23 21:34 Conan 阅读(2879) 评论(17) 推荐(3)

第三只眼看AOP(AOP定义)
摘要:本文仅介绍了自己对AOP的认识,没有技术含量啊,只是希望自己能够在AOP的大旗下,做个摇旗呐喊的小卒,借本文鼓吹一下AOP。不过,这种鼓吹有点反面的意思,然而却是自己较为冷静的思考。识见疏陋,希望大家不吝赐教。本文发表与2005年《程序员》第五期,发表时略有删改。 什么是AOP? 最初听到AOP这个名词,我总是错觉其与OOP是否具有孪生性?那么,所谓AOP,即面向方面编程(Aspect Orien... 阅读全文

posted @ 2005-08-23 21:33 Conan 阅读(293) 评论(0) 推荐(0)

.Net中的设计模式——Iterator模式
摘要:一、模式概述 在面向对象设计时,我们常常需要辨认对象的职责。理想的状态下,我们希望自己建立的对象只具有一个职责。对象的责任越少,则该对象的稳定性就越好,受到的约束也就越少。职责分离,可以最大限度地减少彼此之间的耦合程度,从而建立一个松散耦合的对象网络。 职责分离的要点是对被分离的职责进行封装,并以抽象的方式建立起彼此之间的关系。在C#中,我们往往将这些可能变化的对象抽象为接口和抽象类,从而将原... 阅读全文

posted @ 2005-08-22 18:46 Conan 阅读(247) 评论(1) 推荐(0)

页面间传递变量的方法及使用范围的讨论
摘要:不管什么时候,总能看到网上有人在问页面之间怎么传递变量,针对这一情况,我想把所有能想到的传递变量的方法汇总一下,然后再介绍各种方法的使用范围,供大家参考,也希望大家在此给点建议,来帮助后来或刚开始学.net的朋友。 我总共就总结了这么几种方法: (1)Session (2)Cookie (3)Application (4)URL地址中的参数 (5)通过隐藏字段来传递数... 阅读全文

posted @ 2005-08-22 18:39 Conan 阅读(279) 评论(0) 推荐(0)

驳:光荣与失落 开发工程师人生之路
摘要:这几天一个朋友给我发了篇文章,名曰:光荣与失落 开发工程师人生之路 (点击这里参照看原文)。拜读后感触颇多,诚然该文作者也是一个老IT了,他将自己或许近10年来的体会、经验、和观点不啬地表达了出来,非常地真实,很多描述感觉就象是写我自己的经历似的,非常值得我们这些晚辈或者同辈借鉴。然而,本人对该文所暗含的结论实在不敢苟同。该文标题直接表达说:恭喜/悲哀,你选择开发工程师做为... 阅读全文

posted @ 2005-08-21 14:29 Conan 阅读(206) 评论(0) 推荐(0)

开发工程师人生之路
摘要:恭喜,你选择开发工程师做为自已的职业 悲哀,你选择开发工程师做为自已的职业 本文所指的开发工程师,仅指程序开发人员和以数字电路开发为主的电子工程师。 当你选择计算机或者电子、自控等专业进入大学时,你本来还是有机会从事其它行业的,可你毕业时执迷不悟,仍然选择了开发做为你的职业,真是自做孽不可活。不过,欢迎你和我一样加入这个被其它人认为是风光无限的“白领”吧。 如果你不是特别的与人世隔绝... 阅读全文

posted @ 2005-08-21 14:26 Conan 阅读(239) 评论(0) 推荐(0)

Google的秘密 -- 《Google成功的七堂课》读后感
摘要:每天都在Google,不论是技术问题、生活问题,碰到问题就Google。但是几年了,却很少去了解Google背后的事情,直到那天朋友介绍gmail给我用,起初认为gmail不就是有2g的容量,可是看了才知道,就是这么一个被无数公司做过的email系统,Google居然还是有了那么多创新(后面再做介绍),不由得对Google肃然起敬。感叹机会从来都不是上天赐予的,机会就在身边,我们发... 阅读全文

posted @ 2005-08-21 13:20 Conan 阅读(246) 评论(0) 推荐(0)

初学C#+ASP.NET+Oracle时积累的备忘点滴
摘要:在asp.net中,如何回车触发指定按钮的事件? 假设: 解决方法: 在.aspx页面中添加: 在Page_Load事件中添加: TextBox1.Attributes.Add("onkeydown","EnterKeyClick('ButtonOK');"); 关于DATAGRID数据更改时点2次/行号跟不准/失去焦点/丢失e等一系列问题的解决办法: 首先把数据连接/da... 阅读全文

posted @ 2005-08-18 13:32 Conan 阅读(348) 评论(0) 推荐(0)

创建型模式之单件模式
摘要:先看这段vb.net代码: Public Class ForComClass ForCom Public Shared com_counter As Integer Private Shared glbCom As ForCom Private legalInst As Boolean Private Sub New()Sub New() glbCom = ... 阅读全文

posted @ 2005-08-09 19:53 Conan 阅读(206) 评论(0) 推荐(0)

Don’t Ask, Tell
摘要:让我们从一个计算工资的老例子说起. 不同的员工有各种不同的工资计算方法, 这种情况下如何为全公司的员工计算呢? 想想现实中的情况, 在公司可能有一个会计部,每到发薪的日子. 会计部就会把全公司的员工资料集中到一起, 看看张三是什么类型的员工, 如果是小时工就按小时工来计算,如果是办公室主任就按主任的方法来计算. 基于这样的考虑, 我们在建模的时候也会相应的建立一个类似于会计部的类, 其中... 阅读全文

posted @ 2005-08-09 00:11 Conan 阅读(290) 评论(0) 推荐(0)

整理了一些t-sql技巧
摘要:一、 只复制一个表结构,不复制数据 select top 0 * into [t1] from [t2] 二、 获取数据库中某个对象的创建脚本 1、 先用下面的脚本创建一个函数 if exists(select 1 from sysobjects where id=object_id('fgetscript') and objectproperty(id,'IsInlineFunction... 阅读全文

posted @ 2005-08-08 14:00 Conan 阅读(371) 评论(1) 推荐(0)

关于Application Security的学习笔记——保护 ASP.NET 应用的安全
摘要:这里很多人都有丰富的ASP.NET web应用开发经验,但是可能有很多人对应用的安全没有足够的重视,下面就ASP.NET的安全问题做一个简要的叙述。 1. 概述 1.1. 配置文件 在创建Asp.net的应用时,Asp.net为我们提供了配置文件来配置session state、授权和认证等等。有两个配置文件: (1) Maching.config——用来定义server的配置,安... 阅读全文

posted @ 2005-08-08 13:52 Conan 阅读(286) 评论(0) 推荐(0)

T-SQL 存储过程: (修订版) 根据基本表结构及其数据生成 INSERT INTO ... 的 SQL
摘要:根据基本表结构及其数据生成 INSERT INTO ... SQL 的 T-SQL 存储过程,在网上能够搜索出的版本主要有两个:1. CSDN Sky_blue 所作: proc_insert (可 google)2. CSDN playyuer 所作: spGenInsertSQL (可 google)但这两个版本的程序都曾收录到:http://www.cnblogs.com/kasa... 阅读全文

posted @ 2005-08-08 13:32 Conan 阅读(255) 评论(0) 推荐(0)