PetShop4.0的消息处理
由于在PetShop中仅对订单的处理使用了异步处理方式,因此在消息接口IMessaging中,仅定义了一个IOrder接口.因此,如果是实例化如下的对象,将会调用PetShopQueue的Receive()方法,而不是子类Order的Receive()方法:PetShopQueue queue = new Order();queue.Receive();从设计上来看,由于PetShop采用"面向接口设计"的原则,如果我们要创建Order对象,应该采用如下的方式:IOrder order = new Order();order.Receive();考虑到IOrder的实现有可能的变化,PetShop仍然利用了工厂模式,将IOrder对象的创建用专门的工厂模块进行了封装.
风雨轩 - Wed, 15 Aug 2007 17:49:37 GMT
学习PetShop4.0,顺便复习下基础
在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。3) 不能用sealed(密封类)修饰符修改抽象类,这意味着抽象类不能被继承。4) 从抽象类派生的非抽象类必须包含继承的所有抽象方法和抽象访问的实现。继承是对于父类来说是被动的,可以描述为:父类XXX被子类XXX继承 而派生对于父类来说是主动的。描述为:父类XXX派生子类XXX。关于派生类和子类的区别:应该是继承关系的层次结构的概念区别。类B派生类C, 类B被类C继承。
风雨轩 - Mon, 13 Aug 2007 02:20:14 GMT
petshop学习之三:表现层(2)
接下来介绍MasterPage.master页面,这是一个默认的模板页面,好象一个支架一样,其他页面只要包含它就可以在这个支架上添加内容,从而简少了代码总量,并使得程序有统一的风格。我们来看一个完整的页面products.aspx,其中使用了MasterPageFile="~/MasterPage.master" 命令使得页面的框架自动生成,我们要做的就是添加上需要的页面信息,这里添加了一个产品控件ProductControl,代码一共只有六行,明显很简单J。Product.aspx是点击一个产品类别是生成的页面,通过ProductControl控件生成产品的列表,并以定义好的格式显示;
guagua - Tue, 31 Jul 2007 13:30:50 GMT
petshop学习之三:表现层(1)
其中的theme定义了控件的外观,styleSheetTheme定义了页面样式信息。第二句则是用户自定义控件的注册信息,注册了一个导航控件,它的实现在Src属性中定义,感兴趣的可以去看看实现。记住,以<asp:Name.... 开头的是vs2005自带的控件,以<PetShopControl:Name....开头的是用户自定义的控件,经过注册后可在页面中使用。这个控件定义了一个输入框,用户可以输入要搜索的内容,然后点击搜索按钮控件就可以执行搜索。查看这个控件的定义:发现它使用了一个Repeater控件,这个控件能将重复得将信息显示在导航栏中,并生成超链接。
guagua - Fri, 27 Jul 2007 08:26:17 GMT
Petshop4.0 超级详细介绍(二)
昨天说到了Default.aspx页面今天来讲Products.aspx页面,该页面由有一个母版页和一个用户控件组成。其中的用户控件中只包涵了一个CustomList自定义控件它继承至DataList 并实现分页: public event DataGridPageChangedEventHandler PageIndexChanged; override public object DataSource { set { try { dataSource = (IList)value; //非泛型列表的基接口,避免用户将没有继承Icollection的类型传递进来如int型之类的。 ItemCount = dataSource.Count; //获取dataSource中元素的数量 } catch { dataSource = null; ItemCount =
sunchaohuang - Sat, 21 Jul 2007 09:13:24 GMT
petshop学习之二:总体结构
PetShop4.0采用了三层的架构,表示层 业务逻辑层和数据访问层。表示层展示用户看到的界面,包含在web项目文件里;业务逻辑层(BLL:Business Logic Layer) 处理后台的操作,比如定单的处理,用户信息的修改,物品的信息都在这里得到加工;
guagua - Thu, 19 Jul 2007 15:31:04 GMT
PetShop4.0的学习
我是asp.net的新手,刚下了这个宠物商店的源代码,准备边研究代码边学习asp.net的基本语法 。我准备先从整体架构,再到实现的细节,一步一步得学习这个示例,并把学习心得写下来,希望对刚学习PetShop4.0的新手们有点帮助(老鸟们就权当看闲情小说拉)。
guagua - Thu, 19 Jul 2007 14:50:40 GMT
Petshop4.0 超级详细介绍(一)
Petshop4.0 超级详细介绍(一) 今天辞职了,看了一下petshop4.0,通俗的把代码解释一下,希望能给初学者提供一些帮助,写的不好的地方还请大家理解!现在开始吧。我们从启始页Default.aspx开始,微软的启始页当然是Default.aspx啦,该页面有一个用户控件NavigationControl 先来说说它,从简单入手嘛。 从它的Page_Load事件开始: protected void Page_Load(object sender, EventArgs e) { GetControlStyle();//设置<td>的样式,在webconfig中已经配置了网站的全局样式App_Themes中有它的详细配置资料,在这里进行样式的选择 BindCategories();//这里对Repeater控件进行了绑定,请看BindCategories()方法; //让它选择了连接会变颜色 string categoryId = Request.QueryString["categoryId"]; if (!string.IsNu
sunchaohuang - Wed, 18 Jul 2007 22:09:55 GMT
PetShop 4.0分层结构
PetShop4.0采用了多层应用程序体系结构,并且应用了"反射注入"技术,简间抽象工厂模式,策略模式和外观模式,从而构建了一个高内聚,低耦合的,易于扩展和维护的,适合于团队开发的小型企业分布式应用系统。业务逻辑层业务逻辑层包含宠物商店与核心业务相关的逻辑。另外,业务逻辑层中还包括实现订单的Order.实现订单处理有两种方式,一种是同步订单处理,另一种是异步处理。PetShop4.0的数据访问层包括以下几个部分:一是实现针对Oracle数据库的成员资格提供程序(针对SQL Server 数据库成员资格提供程序为ASP.NET2.0内置)。
华奇英 - Wed, 18 Jul 2007 10:34:33 GMT
.Net PetShop 4.0的层次结构
Net PetShop 4.0的层次结构。从这一点来说,B/S结构可认为是三层结构----数据库服务器层、WEB应用服务器层和客户端浏览器一层。数据访问层直接访问和操作数据库,商务逻辑层调用数据访问层,表现层调用商务逻辑层。比较Duwamish7.0与PetShop 4.0,后者项目众多,但使用工具生成的代码很少。当数据库的表结构更改后,使用代码生成器产生的代码通常要重新产生,因次如果对这两个项目中的代码做了手工的改动,在重新生成代码时,改动的代码将会丢失。
langwolf - Sun, 08 Jul 2007 23:16:20 GMT
Petshop4.0之策略模式
策略模式属于对象行为型模式,主要针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式中有三个对象:(1) 环境对象:该类中实现了对抽象策略中定义的接口或者抽象类的引用。(2) 抽象策略对象:它可由接口或抽象类来实现。利用策略模式构建应用程序,可以根据用户配置等内容,选择不同有算法来实现应用程序的功能。在PepShop4.0中的应用,PetShop4.0中可以使用同步和异步两种不同的算法来实现定单的处理,根据这一需求,使用策略模式是相当好的一种解决方案。
TonyWang - Fri, 08 Jun 2007 08:38:49 GMT
petshop4.0设计说明 asp.net初学者
petshop4.0设计说明 一、项目名称及描述:(实现步骤为:4-3-6-5-2-1)1、WEB=表示层2、BLL=业务逻辑层3、IDAL=数据访问层接口定义4、Model=业务实体5、DALFactory=数据层的抽象工厂(创建反射)6、SQLServerDAL=SQLServer数据访问层 / OracleDAL=Oracle数据访问层。二、项目引用关系1、Web 引用 BLL。2、BLL 引用 IDAL,Model,使用DALFactory创建实例。5、DALFactory 引用IDAL,通过读取web.config里设置的程序集,加载类的实例,返回给BLL使用。6、SQLServerDAL 引用 Model和IDAL,被DALFactory加载的程序集,实现接口里的方法。
紫极 - Fri, 08 Jun 2007 07:12:59 GMT
[开始]petshop 4.0 设计研究——petshop 4.0 的命名空间 以及各个项目模块的说明
序号项目名称程序集名称assemblyname...
作者 - Thu, 07 Jun 2007 01:20:57 GMT
PetShop体系结构学习
PetShop4.0采用了多层应用程序体系结构,并且应用了"反射注入"技术,简间抽象工厂模式,策略模式和外观模式,从而构建了一个高内聚,低耦合的,易于扩展和维护的,适合于团队开发的小型企业分布式应用系统。业务逻辑层业务逻辑层包含宠物商店与核心业务相关的逻辑。另外,业务逻辑层中还包括实现订单的Order.实现订单处理有两种方式,一种是同步订单处理,另一种是异步处理。另外,为了实现异步订单处理,PetShop4.0中使用了消息队列MSMQ.5. 对象模型对象模型也称为业务实体。
TonyWang - Fri, 01 Jun 2007 15:20:30 GMT
PetShop之业务逻辑层设计
虽然在业务逻辑层中,针对B2C业务定义了相关的领域对象,但这些领域对象仅仅是完成了对数据访问层中数据对象的简单封装而已,其目的仅在于分离层次,以支持对各种数据库的扩展,同时将SQL语句排除在业务逻辑层外,避免了SQL语句的四处蔓延。领域对象Product实际上还完成了对数据对象Product的封装,它们暴露在外的接口方法是一致地,正是通过封装,使得表示层可以完全脱离数据库以及数据访问层,表示层的调用者仅需要关注业务逻辑层的实现逻辑,以及领域对象暴露的接口和调用方式。图5-4 PetShop 4.0中表示层与业务逻辑层的关系。
winderxp - Sat, 19 May 2007 14:28:37 GMT
petshop4.0学习(1)
要上班了,不能再随便忽悠,开始好好看看petshop,结果碰上了一些以前没有的问题(以前也安装过petshop,只是没有好好看:-(),记录下碰上的问题。
robin - Fri, 18 May 2007 13:05:30 GMT
PetShop之ASP.NET缓存
放入缓存中的应用程序数据对象,以键/值对的方式存储,这便于用户在访问缓存中的数据项时,可以根据key值判断该项是否存在缓存中。页输出缓存分为整页缓存和部分页缓存。Net 2.0引入的自定义缓存依赖项,特别是基于MS-SQL Server的SqlCacheDependency特性,使得我们可以避免"数据过期"的问题,它能够根据数据库中相应数据的变化,通知缓存,并移除那些过期的数据。当缓存内不存在相关数据项时,则直接调用业务逻辑层Product的GetProductsByCategory()方法来获取数据,并将其与对应的AggregateCacheDependency对象一起存储在缓存中。
winderxp - Tue, 08 May 2007 09:44:38 GMT
PetShop体系结构学习
PetShop4.0采用了多层应用程序体系结构,并且应用了"反射注入"技术,简间抽象工厂模式,策略模式和外观模式,从而构建了一个高内聚,低耦合的,易于扩展和维护的,适合于团队开发的小型企业分布式应用系统。业务逻辑层业务逻辑层包含宠物商店与核心业务相关的逻辑。另外,业务逻辑层中还包括实现订单的Order.实现订单处理有两种方式,一种是同步订单处理,另一种是异步处理。另外,为了实现异步订单处理,PetShop4.0中使用了消息队列MSMQ.5. 对象模型对象模型也称为业务实体。
AspxNews - Sat, 05 May 2007 10:27:19 GMT
为petshop4.0安装数据库时碰到的小问题
今天从网上下了petshop4.0,想看看里面的代码,没想到安装数据库的时候就碰到了一些有意思的麻烦,遂将收获记录在下:(1)建库脚本(以及删除库的脚本)里大量使用了osql和aspnet_regsq...
邢瑜琨 - Wed, 18 Apr 2007 15:33:57 GMT
PetShop数据访问层之消息处理
MSMQMessaging模块中,Order对象实现了IMessaging模块中定义的接口IOrder,同时它还继承了基类PetShopQueue,其定义如下:public class Order:PetShopQueue, PetShop.IMessaging.IOrder方法的实现代码如下: public new OrderInfo Receive() { // This method involves in distributed transaction and need Automatic Transaction type base.transactionType = MessageQueueTransactionType.Automatic; return (OrderInfo)((Message)base.Receive()).Body; }
winderxp - Fri, 06 Apr 2007 13:42:44 GMT
PetShop数据访问层之数据库访问设计
在PetShop中,系统需要处理的数据库对象分为两类:一是数据实体,对应数据库中相应的数据表。第二类数据库对象则是数据的业务逻辑对象。这里所指的业务逻辑,并非业务逻辑层意义上的领域(domain)业务逻辑(从这个意义上,我更倾向于将业务逻辑层称为"领域逻辑层"),一般意义上说,这些业务逻辑即为基本的数据库操作,包括Select,Insert,Update和Delete。然而,当我们利用配置文件和反射功能时,具体工厂的创建就显得有些"画蛇添足"了,我们完全可以在配置文件中,直接指向具体的数据库对象实现类,例如PetShop.SQLServerDAL.IOrder。
winderxp - Thu, 05 Apr 2007 13:44:39 GMT
PetShop的系统架构设计
微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层,如图所示:如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。在数据访问层(DAL)中,仍然采用DAL Interface抽象出数据访问逻辑,并以DAL Factory作为数据访问层对象的工厂模块。图七中BLL是业务逻辑层的核心模块,它包含了整个系统的核心业务。也正因为此,PetShop将核心的业务逻辑都放到了一个模块BLL中,并没有将具体的实现和抽象严格的按照模块分开。
winderxp - Thu, 29 Mar 2007 11:15:13 GMT
Petshop4.0之简单工厂模式
抽象工厂模式是一种创建模式,用于当需要时返回一系列相关类中的某一个,而每一个类都能根据需要返回不同的对象时使用。(1)抽象工厂接口或类,它的创建与应用程序业务逻辑无关,通常使用接口或者抽象类实现。(3)抽象产品接口或类,该对象包括具体产品的父类,或者具体产品所实现的接口,所以定义内容与业务逻辑有密切相关。(4)具体的产品类,它们继承产品抽象类或实现产品接口。
21aspnet - Mon, 19 Mar 2007 20:00:29 GMT
Petshop4.0之策略模式
策略模式属于对象行为型模式,主要针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式中有三个对象:(1) 环境对象:该类中实现了对抽象策略中定义的接口或者抽象类的引用。(2) 抽象策略对象:它可由接口或抽象类来实现。利用策略模式构建应用程序,可以根据用户配置等内容,选择不同有算法来实现应用程序的功能。在PepShop4.0中的应用,PetShop4.0中可以使用同步和异步两种不同的算法来实现定单的处理,根据这一需求,使用策略模式是相当好的一种解决方案。
21aspnet - Mon, 19 Mar 2007 19:59:40 GMT
Petshop4.0之“反射注入”技术
在程序实现上就用Assembly.Load(AssemblyName).CreateInstance(typeName)在程序运行时动态创建实例.PetShop4.0中多次应用了与配置文件相强合的反射注入技术。下面就介绍一下反射注入技术在PetShop4.0多层应用程序和应用。PetShop.执行Assembly.Load(AssemblyName).CreateInstance(typeName)进行动太创建实例 其实PetShop4.0中实现反射注入技术都是上面的那种思想。所以下面就省去配置文件中的 信息和实现的代码实现信息,只是统计反射注入技术在PetShop4.0中应用的位置信息。public static PetShop.Publics tatic PetShop.
21aspnet - Mon, 19 Mar 2007 19:58:09 GMT
PetShop体系结构学习
PetShop4.0采用了多层应用程序体系结构,并且应用了"反射注入"技术,简间抽象工厂模式,策略模式和外观模式,从而构建了一个高内聚,低耦合的,易于扩展和维护的,适合于团队开发的小型企业分布式应用系统。业务逻辑层业务逻辑层包含宠物商店与核心业务相关的逻辑。另外,业务逻辑层中还包括实现订单的Order.实现订单处理有两种方式,一种是同步订单处理,另一种是异步处理。另外,为了实现异步订单处理,PetShop4.0中使用了消息队列MSMQ.5. 对象模型对象模型也称为业务实体。
21aspnet - Mon, 19 Mar 2007 19:57:08 GMT
汉化petshop4.0下载
汉化petshop4.0汉化的petshop没什么特别的只是注释什么的还有标题汉化英语不好的可以看看帮助学习参考一下吧我安装的时候使用时有时有问题不能预览但我发现先安装英文版的petsho...
迪奥尼所思 - Tue, 06 Feb 2007 10:35:12 GMT
学习Petshop4.0实验品
做了一个小blog,基本是petshop4.0的项目结构。项目列表:Web.SQLServerDALDALFactoryDBUtilityMODEL.
lazy - Sun, 24 Dec 2006 17:01:25 GMT
Petshop 4 分析汇总
四.PetShop 4.0 Q &A:Q:PetShop 4.0的下载地址?Q:PetShop 4.0有哪些新特性?Transactions是.NET Framework 2.0下出现的一个事务控制的命名空间,它是处理替代COM+来处理分布式事务的一种新的途径。Q:PetShop 4.0中用到的一些设计模式。
孤峰皓月 - Sat, 23 Dec 2006 16:12:48 GMT
PetShop 4.0 FAQS - Q & A
Q:PetShop 4.0有哪些新特性?5.使用了ASP.NET2.0中的Master Pages,Wizard Control等6.使用SqlCacheDependency缓存处理策略。Q:PetShop 4.0中用到的一些设计模式A:常用的有抽象工厂、外观模式、策略模式等,可以参考BruceZhang的。
成林 - Tue, 19 Dec 2006 16:48:26 GMT
PETSHOP4.0学习链接
PETSHOP4.0学习链接:http://blog.csdn.net/ronanlin/archive/2006/12/14/1442986.aspx.
netone04 - Tue, 19 Dec 2006 09:54:10 GMT
petshop 分析1
以PetShop为例,业务逻辑层的相关设计,均和网上宠物店特有的逻辑相关,例如查询宠物,下订单,添加宠物到购物车等等。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。在数据访问层(DAL)中,仍然采用DAL Interface抽象出数据访问逻辑,并以DAL Factory作为数据访问层对象的工厂模块。图六:数据访问层的模块结构图。图七:业务逻辑层的模块结构图。也正因为此,PetShop将核心的业务逻辑都放到了一个模块BLL中,并没有将具体的实现和抽象严格的按照模块分开。
liangjingbo - Thu, 07 Dec 2006 12:32:54 GMT
PetShop Enhanced by NBear V3!
经过近一天的努力,初步实现了PetShop 4.0的大部分功能(Check Out暂时还没做),Web Form 95%以上的代码沿用PetShop 4.0,从使用的角度没有任何区别。能做到这样,基本上是由 NBear 框架里的 ServiceInterfaces 与 PetShop 4.0 中的 BLL 之间接口做个映射关系,但采用NBear后代码量明显减少。代码下载 v0.1PetShop 4.0 安装文件下载安装数据库的脚本文件安装方法:1、数据库的安装方法 a. 如果没有安装过PetShop 4.0,可以从上面的链接处下载并安装。
JasonYe - Thu, 16 Nov 2006 00:00:00 GMT
学习pet shop4.0的好地方
这两天为了学习petshop找了很多文章,很多都大同小异,都是一些英文文章的翻译,只有brucezhang的这个《petshop解剖》最好,深入浅出,功底好,文笔好,很值得初学者学习;http://www.brucezhang.com/?page_id=69 //
拿砖拍 - Tue, 07 Nov 2006 00:00:00 GMT
PetShop 4.0讨论专贴(Q&A)
根据fangyifeng这位朋友的意见,特开设此PetShop4.0讨论专贴,除了推荐一些关于PetShop4.0的不错的文章之外,也对大家平时遇到的问题作一下整理。一.园子里相关文章PetShop的系统架构设计 [BruceZhang]PetShop数据访问层之数据库访问设计 [BruceZhang]Microsoft .NET Pet Shop 4 架构与技术分析 [李天平] 二.PetShop 4.0 Q &A: Q:PetShop 4.0的下载地址?