PetShop 4.0讨论专贴(Q&A)

根据fangyifeng这位朋友的意见,特开设此PetShop4.0讨论专贴,除了推荐一些关于PetShop4.0的不错的文章之外,也对大家平时遇到的问题作一下整理。

 

一.园子里相关文章

PetShop的系统架构设计 [BruceZhang]

PetShop数据访问层之数据库访问设计 [BruceZhang]

Microsoft .NET Pet Shop 4 架构与技术分析 [李天平]

 

二.PetShop 4.0 Q & A

 

QPetShop 4.0的下载地址?

Ahttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet4.asp

 

QPetShop 4.0有哪些新特性?

A1System.Transactions替代了服务组件。System.Transactions.NET Framework 2.0下出现的一个事务控制的命名空间,它是处理替代COM+来处理分布式事务的一种新的途径。

2.使用泛型的强类型代替了IList

3.使用了ASP.NET2.0下的角色及成员管理。

4.对于订单的处理提供了两种同步和基于MSMQ的异步处理。

5.使用了ASP.NET2.0中的Master PagesWizard Control

6.使用SqlCacheDependency缓存处理策略

QPetShop 4.0中用到的一些设计模式

A:常用的有抽象工厂、外观模式、策略模式等,可以参考BruceZhang的相关文章

 

[以后慢慢整理吧]

作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2006-08-31 18:09 TerryLee 阅读(6518) 评论(37)  编辑 收藏 网摘 所属分类: [01]  .NET大本营

  回复  引用  查看    
#1楼 2006-08-31 22:18 | Clingingboy      
非常喜欢讨论这些东西,我很想知道在asp.net设计中,我们常用的一些模式
  回复  引用  查看    
#2楼 2006-08-31 22:19 | 小新0574      
按照我们经理说的,Pet Shop太Java了,其实不是特别好
  回复  引用  查看    
#3楼 [楼主]2006-09-01 08:43 | TerryLee      
@Clingingboy
有人讨论就好

在PetShop4.0中用到的设计模式:抽象工厂,外观模式,策略模式
  回复  引用  查看    
#4楼 [楼主]2006-09-01 08:43 | TerryLee      
@小新0574
还是那句话,PetShop仅仅是一个范例,不是什么开发标准,呵呵

其中有一些东西还是值得借鉴的
  回复  引用    
#5楼 2006-09-01 08:48 | fangyifeng [未注册用户]
我现在有几个问题:
1.对于使用System.Transactions在此系统里面起到的作用应该不大吧?我觉得是否可以不用?各位可以谈谈自己的见解吗?
2:泛型的强类型的优势有改善性能以及提高了安全性,除此之外还有另外的一些特性或者好处吗?
3.我个人觉得此系统里面msmq用的好,除此之外系统没什么很特别的东西,是否是我理解错了,既然这是微软的一个范例,就应该有很多可以值得我们学习的地方吧?各位的见解呢?
  回复  引用  查看    
#6楼 2006-09-01 09:26 | 高海东      
值得学习
  回复  引用    
#7楼 2006-09-01 10:04 | fangyifeng [未注册用户]
谢谢,@terrylee
AggregateCacheDependency
vs2005里面的依赖缓冲大家使用过吗?不是很理解.

  回复  引用    
#8楼 2006-09-01 14:06 | fangyifeng [未注册用户]
啊~~~ 看来讨论的人不是很多啊!!!!!
  回复  引用    
#9楼 2006-09-01 14:08 | fangyifeng [未注册用户]
@Clingingboy
petshop4里面贯穿最多的就是"抽象工厂模式",其次就是"策略模式",其特点是面向接口进行编程以及层与层之间的数据访问.
  回复  引用    
#10楼 2006-09-01 14:10 | fangyifeng [未注册用户]
我只是其中的一些具体的技术要点还不是很清楚,程序架构以及其贯彻的一些思想都掌握的差不多了!希望有更多的跟帖!谢谢!
  回复  引用  查看    
#11楼 2006-09-02 14:24 | 行与思      
向大家学习中……
  回复  引用    
#12楼 2006-09-04 01:00 | qiyu20031022 [未注册用户]
真是很高兴看到你的文章,真的是要谢谢呀 。
  回复  引用  查看    
#13楼 [楼主]2006-09-04 08:27 | TerryLee      
@qiyu20031022
呵呵,别客气:-)
  回复  引用  查看    
#14楼 2006-09-08 01:31 | Slash      
好好看看先
  回复  引用    
#15楼 2006-09-08 17:24 | yangchao [未注册用户]
PETSHOP4.0把好多东西都封装起来了,看程序看的还真费劲
  回复  引用    
#16楼 2006-09-08 21:47 | lgh12345 [未注册用户]
我正在学习Petshop4.0,希望有更多的人来这里讨论呀。
  回复  引用    
#17楼 2006-09-11 11:26 | fangyifeng [未注册用户]
看来研究它的人还是不多啊 呵呵

  回复  引用    
#18楼 2006-09-11 11:47 | fangyifeng [未注册用户]
◎yangchao
我个人觉得是你开发的时候没有以它这种方式进行封装,所以会觉得看的费劲,看习惯了,就不觉得了!会觉得很自然了!
  回复  引用    
#20楼 2006-09-17 15:13 | BISOU [未注册用户]
使用SqlCacheDependency缓存处理策略
是怎么玩的?petshop是怎么用他的?那里有介绍?
  回复  引用    
#21楼 2006-09-18 13:34 | fangyifeng [未注册用户]
恩 谢谢 fengfangfang[匿名]
  回复  引用    
#22楼 2006-09-20 11:58 | zhang xiaoguang [未注册用户]
// now loop through the list and pull out items of the specified page
int start = (int)((currentPage - 1) * pageSize);
if (start <= 0) start = 1;

// skip
for (int i = 0; i < start - 1; i++) {
if (reader.Read()) numResults++;
}
if (start > 1) reader.Read();

今天看到一篇关于petshop的文件,有一点不太明白,就是上面的代码,为什么不应该改为下面的形式?
由于对PETSHOP研究有限,实在搞不懂,请教大家,谢谢。
-------------------------------------------------------------------------------------------------------
// now loop through the list and pull out items of the specified page
int start = (int)((currentPage - 1) * pageSize) + 1;
//if (start <= 0) start = 1;

// skip
for (int i = 0; i < start - 1; i++) {
if (reader.Read()) numResults++;
}
//if (start > 1) reader.Read();
  回复  引用    
#23楼 2006-09-20 12:00 | zhang xiaoguang [未注册用户]
完整函数的代码如下:
----------------------------------

public ProductResults[] GetList(string catid, int currentPage, int pageSize, ref int numResults)
{
numResults = 0;
int index=0;
SqlDataReader reader = GetList(catid);
ProductResults[] results = new ProductResults[pageSize];

// now loop through the list and pull out items of the specified page
int start = (int)((currentPage - 1) * pageSize);
if (start <= 0) start = 1;

// skip
for (int i = 0; i < start - 1; i++) {
if (reader.Read()) numResults++;
}
if (start > 1) reader.Read();

// read the data we are interested in
while (reader.Read()) {
if (index < pageSize) {
results[index] = new ProductResults();
results[index].productid = reader.GetString(0);
results[index].name = reader.GetString(1);
index++;
}
numResults++;
}

reader.Close();

// see if need to redim array
if (index == pageSize)
return results;
else {
// not a full page, redim array
ProductResults[] results2 = new ProductResults[index];
Array.Copy(results, results2, index);
return results2;
}
}

  回复  引用    
#25楼 2006-10-24 22:42 | haiqing [未注册用户]
我觉得PetShop结构美观大方,值得学习
  回复  引用  查看    
#26楼 [楼主]2006-10-24 22:58 | TerryLee      
@haiqing
:)
  回复  引用    
#27楼 2006-11-03 11:17 | doermlp [未注册用户]
那位高手能讲一下petshop4.0 的权限验证机制,只找到了sigin.aspx文件 不知道后台是怎么处理的,还有和MasterPage的LoginName和LoginView控件是怎样关联上的,如何设置,或者推荐一下介绍这个问题的好文章,多谢
  回复  引用  查看    
#28楼 [楼主]2006-11-03 21:57 | TerryLee      
@doermlp
权限依赖于MemberShip,看看Wayfare又没有介绍
  回复  引用    
#29楼 2006-12-11 17:41 | hotmy.com[匿名] [未注册用户]
《解剖PetShop》系列全部 经整理后在以下连接看:
http://hotmy.com/cms/blogs/images/petshop4.HTML
注:转载
  回复  引用    
#30楼 2007-04-18 09:21 | 孙保华 [未注册用户]
我用CodeSmith4.0 的SchemaExplorer,如果我用Oracle 数据表就报下面的错误:
extended properties table
'CODESMITH_EXTENDED_PROPERTIES' does not yet exist
能帮我看下么? 怎么解决阿 急!

  回复  引用  查看    
#31楼 2007-06-06 22:44 | 马可香蕉      
@hotmy.com[匿名]
看不到啊
  回复  引用    
#32楼 2007-07-30 15:49 | Martin [未注册用户]
公司的现在开发的ERP软件框架采用的就是PetShop4,比较适合企业级软件开发,以下几点最有价值:具有简单性质的抽象工厂模式,依赖缓存,事务处理,消息队列,其他的都没什么
  回复  引用    
#33楼 2007-11-23 19:42 | amey、 [未注册用户]
学习中,谢谢!!
  回复  引用  查看    
#34楼 2008-03-06 10:15 | 小龟爬爬      
层与层之间用外观模式来实现 的确增加了查看代码的难度 不过在项目上的好处也是众所周知的
  回复  引用    
#35楼 2008-06-06 13:27 | hunter.ruan [未注册用户]
我看到在view页面设计的时候,petshop把每一个aspx都对应的写了一个ascx.
这个有什么讲究吗?
我没有发现它提供了什么好处。

我以前也用user control. 但那些基本都是提供重用部分。不包括业务操作。不知道这个做法您会有什么看法呢
  回复  引用    
#36楼 2008-06-24 10:49 | maryra [未注册用户]
在ItemDataProxy.cs文件中GetItemsByProduct()方法,缓存中存放的数据是和product,inventory,item三张表相关,为什么建立缓存依赖ItemTableDependency时,依赖的是Product,Category,Item这三张表?还有缓存是服务器端的还是客户端的?




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-09-01 08:59 编辑过
Google站内搜索

相关文章:

相关链接: