petshop的文章
当前主要的几个问题是:
1、 选择外观层(Presentation Layer Architecture):thin client (browser based) or smart client deployment.
(是否要参考一下:http://www.theserverside.net/news/thread.tss?thread_id=31381和http://msdn.microsoft.com/architecture/default.aspx?pull=/library/en-us/dnmaj/html/choosing_presentation_layer.asp)
2、 选择程序的架构:采用PetShop的架构还是采用Duwamish7的架构,还是整合二者弄个新的架构,又或者以Duwamish7的架构为主,稍微改造一下。
3、 确定了架构之后,就要考虑永久层的实现方式、选哪个代码生成工具等等。
4、 当前台访问数据时,提取数据库中一条记录、少量记录(几百到几千条)、大量记录时的处理方式,这依赖于系统架构的选择。
5、 报表工具:初步定为Reporting Services。
先请教大家几个问题:
在PetShop的DAL(数据访问层)当返回一个DTO时,是直接建立一个DTO对象实例,当返回一个DTO集合时,返回的是一个ArrayList(IList接口)对象,
1、 当ArrayList(IList接口)对象(集合)的数据量较大时,应该和DataTable没有性能上的差别吧?
2、 为何不直接用DataRow取代DTO,用DataTable(或DataSet)取代ArrayList?主要是担心需求的改变而带来的代码修改吗?
3、 使用DTO时,当数据库发生变化,或需求发生变化时修改简单吗?,DataRow取代DTO时修改麻烦吗?
4、 .net毕竟是.net,考虑问题的解决方案,就应该有.net特色,而不是照搬J2EE的,.net已经提供了强大的ado.net,我们为什么舍近求远,自已创建dto,业务实体?
5、 VS.net2003为什么自带的例子是Duwamish7,而不是PetShop,幕后的原因是什么?
下面是我对petshop的初步认识:
1、Model层实际上就是建立各个DTO(Data Transfer Object)对象,DTO对象只有携带数据的能力,并不包含各种CRUD方法和其他业务逻辑方法。
2、IDAL层定义了各个Business Entity的接口,只有CRUD等方法,并没有字段和属性,用到属性时,则用DTO对象来提供。
3、DAL层实现了各个业务实体的数据访问能力。
4、DALFactroy层用配置文件实现了对不同数据库的访问,是典型的工厂方法。
5、BLL层实现了各个业务实体,可以加入实际的业务逻辑。
6、PL层没得说,就是各种访问页面。
另:发现SimplePager在打开页面时有错误,加上下面的代码试试:
public class SimplePagerDesigner : System.Web.UI.Design.ControlDesigner
{
public override string GetDesignTimeHtml()
{
return base.GetDesignTimeHtml ();
//return "Repeater设计时外观";
}
}
[Designer(typeof(PetShop.Web.Controls.SimplePagerDesigner))]
public class SimplePager : Repeater {
。。。。。。
}