min10

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

10 2008 档案

摘要:e = {"没有为 SQL 缓存通知启用数据库“ReplaceShop”。\r\n\r\n要为 SQL 缓存通知启用数据库,请使用 System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications 方法,或命令行工具 aspnet_regsql。要使用此工具,请运行“aspnet_regsql.exe -?”以了解详细信息。"} aspn... 阅读全文
posted @ 2008-10-31 16:42 min10 阅读(1431) 评论(0) 推荐(0)

摘要:web.config加上 阅读全文
posted @ 2008-10-31 16:27 min10 阅读(431) 评论(0) 推荐(0)

摘要:http://topic.csdn.net/u/20081030/16/38f2a1fa-181a-4dfc-b3c3-8667bb566524.html?seed=290120242 阅读全文
posted @ 2008-10-31 15:40 min10 阅读(258) 评论(0) 推荐(0)

摘要:1、using System.Data; 2、using System.Data.SqlClient; 添加引用的时候,只要添加System.Data “类型的初始值设定引发异常” “未能加载程序集或它的某一个依赖项”-------这种错误可能跟(命名空间)程序集的引用有关系 阅读全文
posted @ 2008-10-30 10:03 min10 阅读(275) 评论(0) 推荐(0)

摘要:petshop4.0中订单的异步插入使用的是windows的“消息队列”服务。安装后即可像petshop4.0中的MSMQMessaging一样使用消息队列异步插入数据。不知道是不是这样子的。 “队列不存在或您没有足够的权限执行该操作”,配置文件中的设置如下: 当向MSMQ队列添加消息时,可以成功。 通过计算机管理--->服务和应用程序--->消息队列--->传出队列 也是可以找到所创建的特... 阅读全文
posted @ 2008-10-29 11:50 min10 阅读(790) 评论(0) 推荐(0)

摘要:我做了一下测试: 1、使用ASP.NET登陆控件,使用MemberShip,那么返回登陆前的链接就可以这么写 Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->if (HttpContext.Current.Request.QueryStrin... 阅读全文
posted @ 2008-10-28 15:33 min10 阅读(235) 评论(0) 推荐(0)

摘要:本文将通过以下四个案例来分析C#中的接口究竟是如何工作的。 阅读全文
posted @ 2008-10-28 14:18 min10 阅读(182) 评论(0) 推荐(0)

摘要:一、 策略(Strategy)模式 策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 假设现在要设计一个贩卖各类书籍的电子商务网站的购物车(Shopping Cat)系统。一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定比这要复杂。比如,本网站可能对所有的教材类图书实行每本一元的... 阅读全文
posted @ 2008-10-28 13:28 min10 阅读(156) 评论(0) 推荐(0)

摘要:一、 访问者(Visitor)模式 访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。 问题提出 System.Collection命名空间下提供了大量集合操作对象。但大多数情况下处理的都是同类对象的聚集。换言之,在聚集上采取的操作都是一些针对同类型对象的同类操作。但是如果针对一个保存有不同类型对象的聚集采取某种操作该怎么办... 阅读全文
posted @ 2008-10-28 13:27 min10 阅读(142) 评论(0) 推荐(0)

摘要:一、 模板方法(Template Method)模式 准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模版方法模式的用意。 阅读全文
posted @ 2008-10-28 13:27 min10 阅读(161) 评论(0) 推荐(0)

摘要:一、 观察者(Observer)模式 观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 一个软... 阅读全文
posted @ 2008-10-28 13:26 min10 阅读(172) 评论(0) 推荐(0)

摘要:一、 命令(Command)模式 命令(Command)模式属于对象的行为模式【GOF95】。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给... 阅读全文
posted @ 2008-10-28 13:25 min10 阅读(175) 评论(1) 推荐(0)

摘要:行为模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且是关于它们之间的相互作用的。 行为模式分为类的行为模式和对象的行为模式两种。 类的行为模式:类的行为模式使用继承关系在几个类之问分配行为。 对象的行为模式:对象的行为模式则使用对象的聚合来分配行为。 在后面将要介绍的行为模式包括以下几种: C... 阅读全文
posted @ 2008-10-28 13:25 min10 阅读(144) 评论(0) 推荐(0)

摘要:一、 桥梁(Bridge)模式 桥梁模式是一个非常有用的模式,也是比较复杂的一个模式。熟悉这个模式对于理解面向对象的设计原则,包括"开-闭"原则(OCP)以及组合/聚合复用原则(CARP)都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。 注:《Java与模式》一书认为Bridge模式不是一个使用频率很高的模式,我不太赞同,我认为Bridge模式中蕴涵了很多设计模式的关键... 阅读全文
posted @ 2008-10-28 13:24 min10 阅读(191) 评论(0) 推荐(0)

摘要:一、 门面(Facade)模式 外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。 医院的例子 用一个例子进行说明,如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。 首先病人必须先挂号,然后门诊。如果医生要求... 阅读全文
posted @ 2008-10-28 13:23 min10 阅读(171) 评论(0) 推荐(0)

摘要:一、 享元(Flyweight)模式 Flyweight在拳击比赛中指最轻量级,即"蝇量级",有些作者翻译为"羽量级"。这里使用"享元模式"更能反映模式的用意。 享元模式以共享的方式高效地支持大量的细粒度对象。享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State)。内蕴状态是存储在享元对象内部并且不会随环境改变而改变。因此内蕴状态并可以共享... 阅读全文
posted @ 2008-10-28 13:23 min10 阅读(160) 评论(0) 推荐(0)

摘要:一、 代理(Proxy)模式 代理(Proxy)模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。 代理模式的英文叫做Proxy或Surrogate,中文都可译成"代理"。所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 二、 代理的种类 如果按照使用目的来划... 阅读全文
posted @ 2008-10-28 13:22 min10 阅读(153) 评论(0) 推荐(0)

摘要:一、 装饰(Decorator)模式 装饰(Decorator)模式又名包装(Wrapper)模式[GOF95]。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 引言 孙悟空有七十二般变化,他的每一种变化都给他带来一种附加的本领。他变成鱼儿时,就可以到水里游泳;他变成雀儿时,就可以在天上飞行。而不管悟空怎么变化,在二郎神眼里,他永远是那只猢狲。 装饰模式以对客户透明的方式动... 阅读全文
posted @ 2008-10-28 13:22 min10 阅读(182) 评论(0) 推荐(0)

摘要:一、 合成(Composite)模式 合成模式有时又叫做部分-整体模式(Part-Whole)。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。 从和尚的故事谈起 这是小时候我奶奶讲的故事:从前有个山,山里有个庙,庙里有个老和尚在给小和尚讲故事,讲的什么故事呢?从前有个山,山里有个庙……。奶奶的故事要循环多少次,根据你多长时间睡着而定。... 阅读全文
posted @ 2008-10-28 13:21 min10 阅读(147) 评论(0) 推荐(0)

摘要:结构模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构。结构模式描述两种不同的东西:类与类的实例。根据这一点,结构模式可以分为类的结构模式和对象的结构模式。 后续内容将包括以下结构模式: 适配器模式(Adapter):Match interfaces of different classes 合成模式(Composite):A tree s... 阅读全文
posted @ 2008-10-28 13:20 min10 阅读(161) 评论(0) 推荐(0)

摘要:一、 原型(Prototype)模式 原型模式的用意是:通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类型对象。 从孙大圣的手段谈起 孙悟空在与黄风怪的战斗中,"使一个身外身的手段:把毫毛揪下一把,用口嚼得粉碎,望上一喷,叫声'变',变有百十个行者,都是一样得打扮,各执一根铁棒,把那怪围在空中。"换而言之,孙悟空可以根据自己的形象,复制出很多"身外身"来... 阅读全文
posted @ 2008-10-28 13:20 min10 阅读(130) 评论(0) 推荐(0)

摘要:一、 建造者(Builder)模式 建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。 对象性质的建造 有些情况下,一个对象会有一些重要的性质,在它们没有恰当的值之前,对象不能作为一个完整的产品使用。比如,一个电子邮件有发件人地址、收件人地址、主题、内容、附录等部分,而在最起码的收件人地址未被赋值之前,这个电子邮件不能发出。 有些情... 阅读全文
posted @ 2008-10-28 13:19 min10 阅读(128) 评论(0) 推荐(0)

摘要:一、 单例(Singleton)模式 单例模式的特点: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其它对象提供这一实例。 单例模式应用: 每台计算机可以有若干个打印机,但只能有一个Printer Spooler,避免两个打印作业同时输出到打印机。 一个具有自动编号主键的表可以有多个用户同时使用,但数据库中只能有一个地... 阅读全文
posted @ 2008-10-28 13:18 min10 阅读(234) 评论(0) 推荐(0)

摘要:一、 抽象工厂(Abstract Factory)模式 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。 为了方便引进抽象工厂模式,引进一个新概念:产品族(Product Family)。所谓产品族,是指位于不同产品等级结构,功能相关联的产品组成的家族。如图: 图中一共有四个产品族,分布于三个不同的产品等级结构中。只要指明一个产品所处的产品族以及它所属的等级结构,就可以唯一... 阅读全文
posted @ 2008-10-28 13:17 min10 阅读(155) 评论(0) 推荐(0)

摘要:工厂方法(Factory Method)模式 工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。 工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。 在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负... 阅读全文
posted @ 2008-10-28 13:16 min10 阅读(147) 评论(0) 推荐(0)

摘要:工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态: 简单工厂(Simple Factory)模式 工厂方法(Factory Method)模式 抽象工厂(Abstract Factory)模式 一、 简单工厂(Simple Factory)模式 Simple Factory模式... 阅读全文
posted @ 2008-10-28 13:15 min10 阅读(114) 评论(0) 推荐(0)

摘要:三、 依赖倒置原则(DIP) 依赖倒置(Dependence Inversion Principle)原则讲的是:要依赖于抽象,不要依赖于具体。 简单的说,依赖倒置原则要求客户端依赖于抽象耦合。原则表述: 抽象不应当依赖于细节;细节应当依赖于抽象; 要针对接口编程,不针对实现编程。 反面例子: 缺点:耦合太紧密,Light发生变化将影响ToggleSwitch。 解决办法一: 将Ligh... 阅读全文
posted @ 2008-10-28 13:15 min10 阅读(137) 评论(0) 推荐(0)

摘要:《人月神话》焦油坑、没有银弹 * 软件腐化的原因: 问题所在 设计目标 ---------------------------------------------------------------------------- 过于僵硬 可扩展性(新性能可以很容易加入系统) 过于脆弱 灵活性(修改不会波及其它) 复用率低 粘度过高 可插入性(新功能容易加入系统(气囊加入方向盘... 阅读全文
posted @ 2008-10-28 13:14 min10 阅读(164) 评论(0) 推荐(0)

摘要:这学期开设设计模式课程,将课件放上来。 课本:《C#设计模式》,电子工业出版社,ISBN 7-5053-8979-3。33元含光盘。 课程内容:设计模式 来源:亚历山大的建筑模式、Gamma等人(1995)创作的"Design Patterns: Elements of Reusable Software"。这本书通常被称作"Gang of Four"或"GoF",开创性的创造了《设计模式》... 阅读全文
posted @ 2008-10-28 13:13 min10 阅读(195) 评论(0) 推荐(0)

摘要:今天突然发现状态模式原来是这么好用的.具体的原理这里就不说了,可以去看 head first design pattern等.现在举个例子说明之: 比如有一个系统,需要根据客户的积分来作一些处理,比如如果客户积分大于某个积分,对应的操作为有不同的话,则可以考虑使用状态模式.比如积分500等时,它们都要执行同样的操作,比如展示信息给用户,但展示的内容不同,则这个时候可以考虑使用状态模式... 阅读全文
posted @ 2008-10-28 13:04 min10 阅读(195) 评论(0) 推荐(0)

摘要:http://www.cnblogs.com/yuyijq/category/108222.html 阅读全文
posted @ 2008-10-28 13:03 min10 阅读(130) 评论(0) 推荐(0)

摘要:在sqlserver2005的management studio中,用鼠标拖动表,或字段到vs2005中,可以自动生成gridview, 真是太神奇了 阅读全文
posted @ 2008-10-28 09:47 min10 阅读(160) 评论(0) 推荐(0)

摘要:策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 策略模式的好处在于你可以动态的改变对象的行为。 设计原则是把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口(c#中可以用抽象类),然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类的行为。下面是一个例子。 Code Co... 阅读全文
posted @ 2008-10-27 17:15 min10 阅读(245) 评论(0) 推荐(0)

摘要:使用设计模式的一个重要目的是降低代码之间的耦合性,通俗一点说,使代码之间少一些 牵连关系,将变动局部化,而不是牵一发而动全身!同时,使代码便于扩展。 当然,即使不用设计模式,也可以实现我们要的基本功能,但设计出来程序不具有良好的 结构,如果一旦需求变化,需要改动,则会带来很大的麻烦。 具体到Strategy模式,它把算法一个个封装成单独的类,并且使它们可以互相替换,使 ... 阅读全文
posted @ 2008-10-27 17:07 min10 阅读(180) 评论(0) 推荐(0)

摘要:大家都知道,在petshop4.0中,使用了消息处理订单数据,以实现数据的异步插入,提高系统的数据库访问性能,可是我看了半天,也没看懂这个异步是怎么实现的,无奈之下,只得再细细的读petshop4.0 详解之三(PetShop数据访问层之消息处理)(转帖) ,后来才有了自己的一下想法,也不知道对不对,先写下来: 首先,在BLL中,Category.cs,Inventory.cs,Item.cs... 阅读全文
posted @ 2008-10-27 16:32 min10 阅读(273) 评论(0) 推荐(0)

摘要:鼠 1936, 1948, 1960 1972, 1984, 1996 牛 1937, 1949, 1961 1973, 1985, 1997 虎 1938, 1950, 1962 ... 阅读全文
posted @ 2008-10-27 14:49 min10 阅读(829) 评论(0) 推荐(0)

摘要:一、简单的日期判断(YYYY/MM/DD): ^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$ 二、演化的日期判断(YYYY/MM/DD| YY/MM/DD): ^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}年\d{1,2}月\d{1,2}日$)$ 三、加入闰年的判断的: 实例: ^((((1... 阅读全文
posted @ 2008-10-24 16:06 min10 阅读(418) 评论(0) 推荐(0)

摘要:反射的概述反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等,。System.reflection命名空间包含的几个类,允许你反射(解析)这些元数据表的代码和反射相关的命名空间(我们就是通过这几个命名空间访问反射信息): System.Reflection.Me... 阅读全文
posted @ 2008-10-24 16:03 min10 阅读(244) 评论(0) 推荐(0)

摘要:适用于: Microsoft .NET Framework 2.0 Microsoft Visual Studio 2005 Microsoft Windows Server 2003 Microsoft InterNET Information Services Microsoft Message Queuing Microsoft SQL Server 2005 Oracle 10G D... 阅读全文
posted @ 2008-10-24 15:56 min10 阅读(228) 评论(0) 推荐(0)

摘要:一个小型WEB项目,MYComics的漫画网站。对微软的讲座断断续续看完后,自己动手照着做了下,看来真是万事事必躬亲才知其中滋味啊。 算是摸了点ASP.NET2.0的皮毛,这里我主要写写Profile服务,即针对用户收藏架那块。 .开发软件:.NET2005和SQL2005Express版本。 SQL2000也能完成这个项目,只不过在最初我使用SQL2000时,打开源码会有末名奇妙BU... 阅读全文
posted @ 2008-10-24 15:30 min10 阅读(250) 评论(0) 推荐(0)

摘要:C# 2.0中泛型编程初级教程 C# 2.0,与C# 1.x相比,新版本增加了很多新特性,其中最重要的是对泛型的支持。通过泛型,我们可以定义类型安全的数据结构,而无需使用实际的数据类型。这能显著提高性能并得到更高质量的代码。泛型并不是什么新鲜的东西,他在功能上类似于C++的模板,模板多年前就已存在C++上了,并且在C++上有大量成熟应用。 什么是泛型 我们在编写程序时,经常遇到两个模块... 阅读全文
posted @ 2008-10-24 15:28 min10 阅读(183) 评论(0) 推荐(0)

摘要:接口 VS 抽象类 介绍: 在本文中,我将借一个DEMO讨论下接口和抽象类。抽象类和接口的的概念对初学面向对象编程的人来说,总容易迷惑。所以,我试着讨论下两者的理论并比较他们的使用。最后我将演示下怎么用C#使用它们。 背景: 一个抽象类在没有执行时就象一个接口一样。但在它们间有很多不同点,下面就解释它们的概念,比较他们的相似点和不同点。 什么是抽象类? 一个抽象类是... 阅读全文
posted @ 2008-10-24 15:27 min10 阅读(145) 评论(0) 推荐(0)

摘要:第一部份:工厂模式 一、项目名称及描述:(实现步骤为:4-3-6-5-2-1)1、WEB=表示层2、BLL=业务逻辑层3、IDAL=数据访问层接口定义4、Model=业务实体5、DALFactory=数据层的抽象工厂(创建反射)6、SQLServerDAL=SQLServer数据访问层 / OracleDAL=Oracle数据访问层DBUtility 数据库访问组件基础类二、项目引用关系1、Web... 阅读全文
posted @ 2008-10-24 14:33 min10 阅读(267) 评论(0) 推荐(0)

摘要:翻开《韦氏大词典》,我们可以发现术语“多态(polymorphism)”被定义为“可以呈现不同形式的能力或状态”。 而在面向对象编程中,多态是指两个或多个属于不同类型的对象,对同一个消息(方法调用)做出不同响应的能力。 举个通俗的例子,如果我们要求三种人------外科医生、发型师和演员------“cut!”,则 1、外科医生会在病人身上割开一个切口(cut=切开); 2、发... 阅读全文
posted @ 2008-10-23 15:07 min10 阅读(243) 评论(0) 推荐(0)

摘要:白话C#反射 转帖自:http://www.cnblogs.com/Autumoon/archive/2008/06/23/1228335.html C#白话文系列 反射是一种晚绑定,它可以被开发者用来设计出更具灵活性的代码,而代价则是花费更多的系统资源开销使得应用程序可以在运行时获取一些未知信息。 说白了,在编写代码的时候,开发者可能还不知道或不能确定一些对象的信息,于是把决定权交给代... 阅读全文
posted @ 2008-10-23 09:27 min10 阅读(280) 评论(0) 推荐(0)

摘要:表示一个程序集,它是一个可重用、无版本冲突并且可自我描述的公共语言运行库应用程序构造块。 使用 Assembly 类可以加载程序集、浏览程序集的元数据和构成部分、发现程序集中包含的类型以及创建这些类型的实例。 若要获取 Assembly 对象(表示当前加载到应用程序域(例如,简单项目的默认应用程序域)中的程序集)的数组,可以使用 AppDomain.GetAssemblies 方法。 若要动态加载... 阅读全文
posted @ 2008-10-23 09:23 min10 阅读(470) 评论(0) 推荐(0)

摘要:用户自定义控件(Grids.ascx)中包含控件GridView,比如希望实现GridView里的删除事件.为此,需在用户控件和页面代码中分别作一些处理. Grids.ascx.cs中的处理: 1. 定义public的事件委托,如ClickDeleteEventHandler; 2. 在UserControl类中声明事件,如Click; 核心代码如下: public delegate void ... 阅读全文
posted @ 2008-10-22 11:15 min10 阅读(462) 评论(0) 推荐(0)

摘要:一、委托 委托类似于函数指针,但函数指针只能引用静态方法,而委托既能引用静态方法,也能引用实例方法。 委托使用分三步:1、委托声明。2、委托实例化。3、委托调用。 例程一: using System; namespace 委托 { delegate int NumOpe(int a,int b); //委托声明 class Class1 { static void Mai... 阅读全文
posted @ 2008-10-22 11:12 min10 阅读(206) 评论(0) 推荐(0)

摘要:eGroupWare在国内使用的很少,我整理了一些资源,比较杂乱,也许对初学者的研究有用。 http://www.egroupware.org 这是eGW的大本营,我觉得eGW是贪多嚼不烂,现有模块有些已经没有人做维护了,有些模块运行有问题,比如它的电子邮件系统,在问题多多的情况下,开发团队又想和DBmail合作。它的论坛上有很少的中国人,意大利和俄国人到不少。 http://www.l... 阅读全文
posted @ 2008-10-22 10:59 min10 阅读(430) 评论(0) 推荐(0)

摘要:专栏作品 对比.NET PetShop和Duwamish来探讨Ado.NET的数据库编程模式 卢彦 .NET PetShop和Duwamish简单介绍 相信大家一定听说过有名的"宠物店大战",没错,本文的主角之一就是获胜方.NET PetShop,微软号称以27倍的速度和1/4的代码量遥遥领先于基于J2EE的PetStore宠物商店。虽然SUN也曾对此抱怨过不满,指责此"大战"有水分,不... 阅读全文
posted @ 2008-10-22 10:57 min10 阅读(211) 评论(0) 推荐(0)

摘要:下面有从浅入深的6个问题,您可以尝试回答一下 一个如下的语句for (int i = 0; i < 10; i++){if (i == 5)j = 5;},什么都写在一行,你怎么在j=5前面插入断点 在一个1000次的循环体内部设置断点,你希望当循环进行到900次后中断,怎么才能做到呢? 你有一个表达式在上面循环的某一次发生了变化,你想知道是哪一次,在哪个地方,怎么才能做到? 你希望你的断点在被... 阅读全文
posted @ 2008-10-22 10:50 min10 阅读(218) 评论(0) 推荐(0)

摘要:浅谈“三层结构”原理与用意 序 在刚刚步入“多层结构”Web应用程序开发的时候,我阅读过几篇关于“asp.net三层结构开发”的文章。但其多半都是对PetShop3.0和Duwamish7的局部剖析或者是学习笔记。对“三层结构”通体分析的学术文章几乎没有。 2005年2月11日,Bincess BBS彬月论坛开始试运行。不久之后,我写了一篇题目为《浅谈“三层结构”原理与用意》的文章。旧版文章以彬... 阅读全文
posted @ 2008-10-22 10:47 min10 阅读(267) 评论(0) 推荐(0)

摘要:代码中,InsertUser()方法就是负责用户的创建,而在之前则需要判断创建的用户是否已经存在。InsertUser()方法的定义如下: private static bool InsertUser(OracleTransaction transaction, int userId, string email, string password, int passFormat, string pa... 阅读全文
posted @ 2008-10-22 10:42 min10 阅读(220) 评论(0) 推荐(0)

摘要:6.4 ASP.NET 2.0新特性 由于PetShop 4.0是基于.NET Framework 2.0平台开发的电子商务系统,因而它在表示层也引入了许多ASP.NET 2.0的新特性,例如MemberShip、Profile、Master Page、登录控件等特性。接下来,我将结合PetShop 4.0的设计分别介绍它们的实现。 6.4.1 Profile特性 Profile提供的功能是针... 阅读全文
posted @ 2008-10-22 10:37 min10 阅读(265) 评论(0) 推荐(0)

摘要:表示层(Presentation Layer)的设计可以给系统客户最直接的体验和最十足的信心。正如人与人的相交相识一样,初次见面的感觉总是永难忘怀的。一件交付给客户使用的产品,如果在用户界面(User Interface,UI)上缺乏吸引人的特色,界面不友好,操作不够体贴,即使这件产品性能非常优异,架构设计合理,业务逻辑都满足了客户的需求,却仍然难以讨得客户的欢心。俗语云:“佛要金装,人要衣装”,... 阅读全文
posted @ 2008-10-22 10:35 min10 阅读(239) 评论(0) 推荐(0)

摘要:业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,我们也将业务逻辑层称为领域层。例如Martin Fowler在《Patterns of Enterprise Application Architecture》一书中... 阅读全文
posted @ 2008-10-22 10:34 min10 阅读(216) 评论(0) 推荐(0)

摘要:如果对微型计算机硬件系统有足够的了解,那么我们对于Cache这个名词一定是耳熟能详的。在CPU以及主板的芯片中,都引入了这种名为高速缓冲存储器(Cache)的技术。因为Cache的存取速度比内存快,因而引入Cache能够有效的解决CPU与内存之间的速度不匹配问题。硬件系统可以利用Cache存储CPU访问概率高的那些数据,当CPU需要访问这些数据时,可以直接从Cache中读取,而不必访问存取速度相对... 阅读全文
posted @ 2008-10-22 10:33 min10 阅读(244) 评论(0) 推荐(0)

摘要:在进行系统设计时,除了对安全、事务等问题给与足够的重视外,性能也是一个不可避免的问题所在,尤其是一个B/S结构的软件系统,必须充分地考虑访问量、数据流量、服务器负荷的问题。解决性能的瓶颈,除了对硬件系统进行升级外,软件设计的合理性尤为重要。 在前面我曾提到,分层式结构设计可能会在一定程度上影响数据访问的性能,然而与它给设计人员带来的好处相比,几乎可以忽略。要提供整个系统的性能,还可以从数据库的优化... 阅读全文
posted @ 2008-10-22 10:27 min10 阅读(289) 评论(0) 推荐(0)

摘要:在系列一中,我从整体上分析了PetShop的架构设计,并提及了分层的概念。从本部分开始,我将依次对各层进行代码级的分析,以求获得更加细致而深入的理解。在PetShop 4.0中,由于引入了ASP.Net 2.0的一些新特色,所以数据层的内容也更加的广泛和复杂,包括:数据库访问、Messaging、MemberShip、Profile四部分。在系列二中,我将介绍有关数据库访问的设计。 在PetSho... 阅读全文
posted @ 2008-10-22 10:22 min10 阅读(210) 评论(0) 推荐(0)

摘要:序号 项目名称 描述1 BLL 业务逻辑层2 CacheDependencyFactory 缓存依赖类的工厂类 3 WEB 表示层 4 DALFactory ... 阅读全文
posted @ 2008-10-22 10:16 min10 阅读(355) 评论(0) 推荐(0)

摘要:轉貼: 设计模式之Factory——买货篇 今天老婆让我去市场买一些水果,具体买什么自己定(哈,老婆放放权了!)。来到市场,我发现主要有一些水果:苹果(Apple),葡萄(Grape)和鸭梨(Pear)。 到底买什么好呢?我一阵思量。俗话说:“饭后一只烟,赛过活神仙。饭后吃苹果,西施见我躲。”为了老婆的漂亮,我决定买苹果。 好,言归正传,开始买吧!... 阅读全文
posted @ 2008-10-20 15:50 min10 阅读(271) 评论(0) 推荐(0)

摘要:为了实现更好的灵活性 应改面向接口编程。因此,应该面向接口提供工场。 比如,Cat, Dog, Mouse,都是4条腿会跑的动物。 因此,我们建立一个接口叫做FourLegs interface FourLegs { void run(); } 我们可能需要一个实验使用一个会跑得动... 阅读全文
posted @ 2008-10-17 16:49 min10 阅读(465) 评论(0) 推荐(0)

摘要:http://nhibernate.sourceforge.net/quickstart.html 什么是NHibernate NHibernate 是一个基于.Net 的针对关系型数据库的对象持久化类库。Nhibernate 来源于非常优秀的基于Java的Hibernate 关系型持久化工具。 NHibernate 从数据库底层来持久化你的.Net 对象到关系型数据库。NHiber... 阅读全文
posted @ 2008-10-17 09:37 min10 阅读(348) 评论(0) 推荐(0)

摘要:在windows 编程中用到最多的就是控件的事件了,微软给我们很好的方式,把注意力放到事件执行方法的设计和编码上,但是但我们真正弄懂了事件的真正出发执行原理的话,对我们的编程的提高真是非常有帮助的,例如在windows编程中,如果我单击了一个button按钮触发了button 的click事件 Button1_Click(){} ,但是我们编程的时候,不但想要触发button 的单击事件,还想... 阅读全文
posted @ 2008-10-09 17:21 min10 阅读(860) 评论(0) 推荐(0)

摘要:经过高人指教之后的代码: using System; using System.Windows.Forms; using System.Drawing; namespace MyApplication { public partial class Form1 : Form { private delegate void ShowText(); Tex... 阅读全文
posted @ 2008-10-09 16:36 min10 阅读(312) 评论(0) 推荐(0)

摘要:委托和接口都允许类设计器分离类型声明和实现。任何类或结构都能继承和实现给定的接口。可以为任何类上的方法创建委托,前提是该方法符合委托的方法签名。接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。既然存在这些相似性,那么类设计器何时应使用委托,何时又该使用接口呢? 在以下情况下,请使用委托: 当使用事件设计模式时。 当封装静态方法可取时。 ... 阅读全文
posted @ 2008-10-09 15:14 min10 阅读(346) 评论(0) 推荐(0)

摘要:using System; using System.Windows.Forms; public delegate void SampleEventHandler(string item); public class Class1 { public event SampleEventHandler sampleEvent; public virtual void OnSample... 阅读全文
posted @ 2008-10-09 14:52 min10 阅读(285) 评论(0) 推荐(0)

摘要:using System; using System.Windows.Forms; using System.Drawing; public class Class1 { public Class1() { } static void Main() { CreatForm(); } public static void... 阅读全文
posted @ 2008-10-09 12:30 min10 阅读(403) 评论(0) 推荐(0)