.Net PetShop 4学习心得[转]
.net2.0去年就已经出来了,现在也要开始学习了,不然就要落后了。
.Net PetShop 4基于.net 2.0,Visual Studio 2005
1 分为3层体系架构:数据层、业务层、Web层
2 首先由Model工程定义业务对象类,如:AddressInfo、ItemInfo等,这些类中只含有构造
2 首先由Model工程定义业务对象类,如:AddressInfo、ItemInfo等,这些类中只含有构造
函数和属性访问。
3 然后由IDAL定义数据抽象层接口,定义每一种业务对象类的读取、修改和删除等操作,返
3 然后由IDAL定义数据抽象层接口,定义每一种业务对象类的读取、修改和删除等操作,返
回的是上面Model工程定义的业务对象类(或作为参数)。
4 DBUtility工程用来做一些帮助类,如:sqlCommand的创建等。由数据抽象层来使用。
5 SQL SERVERDAL:DataAbstractLayer,实现IDAL中的各个接口。
6 DALFactory利用反射机制定义一个类工厂,用于在业务层使用。
7 业务层BusinessLogicLayer,即用来实现各种业务逻辑的,它调用DALFactory来实现对数
4 DBUtility工程用来做一些帮助类,如:sqlCommand的创建等。由数据抽象层来使用。
5 SQL SERVERDAL:DataAbstractLayer,实现IDAL中的各个接口。
6 DALFactory利用反射机制定义一个类工厂,用于在业务层使用。
7 业务层BusinessLogicLayer,即用来实现各种业务逻辑的,它调用DALFactory来实现对数
据层的访问。
8 界面层中在App_Code目录中定义了一些代理类:ItemDataProxy等,主要用来实现从Cache
8 界面层中在App_Code目录中定义了一些代理类:ItemDataProxy等,主要用来实现从Cache
中获取对象还是调用业务层获取,从业务层获取后将其存入Cache中。
还定义了一些自定义的服务器端控件。
还定义了WebUtility类,里面含有一些网站常量,如:REDIRECT_URL,以及过滤用户输入
还定义了一些自定义的服务器端控件。
还定义了WebUtility类,里面含有一些网站常量,如:REDIRECT_URL,以及过滤用户输入
的函数。
9 界面层定义了App_Themes和MasterPage
10 将用户控件放在Controls目录中。
11 界面层中其他的就是一些常用的界面了,如:用户注册、搜索产品、购物车等。
12 此程序使用了依赖于数据库的缓存机制,所以还有ICacheDependency、
9 界面层定义了App_Themes和MasterPage
10 将用户控件放在Controls目录中。
11 界面层中其他的就是一些常用的界面了,如:用户注册、搜索产品、购物车等。
12 此程序使用了依赖于数据库的缓存机制,所以还有ICacheDependency、
TableCacheDependency,其中,Category业务对象的缓存依赖于Category数据表;Products
业务对象的缓存依赖于Category、Product数据表;Item业务对象的缓存依赖于Category、
Product和Item数据表。
13 本程序还使用了MSMQ机制来实现异步订单处理(具体搞不懂),这些工程有:
IMessaging MSMQMessaging MessagingFactory
14 本程序对Profile进行管理,使用了aspnet内建的用户角色管理数据库。这些工程有:
IProfileDAL SQLProfileDAL ProfileDALFactory Profile Membership。
15 各个工程一个单独物理目录,各个工程的命名空间是:Petshop.本工程名。
16 安装程序在sql server中建立了4个数据库:MSPetShop4、MSPetShop4Orders、
13 本程序还使用了MSMQ机制来实现异步订单处理(具体搞不懂),这些工程有:
IMessaging MSMQMessaging MessagingFactory
14 本程序对Profile进行管理,使用了aspnet内建的用户角色管理数据库。这些工程有:
IProfileDAL SQLProfileDAL ProfileDALFactory Profile Membership。
15 各个工程一个单独物理目录,各个工程的命名空间是:Petshop.本工程名。
16 安装程序在sql server中建立了4个数据库:MSPetShop4、MSPetShop4Orders、
MSPetShop4Profile、MSPetShop4Services。第四个数据库中含有aspnet内建的用户角色管
理,其中还有aspnet_WebEvent_Events表,用来记录网站的错误异常记录。
17 web.config中很有名堂。
17 web.config中很有名堂。
13 不懂之处:
BLL工程引用了IBLLStrategy工程,这个工程只定义了一个接口,接口中只有一个方法
BLL工程引用了IBLLStrategy工程,这个工程只定义了一个接口,接口中只有一个方法
Insert,说明中写道:Interface for the Synchronous/Asynchronous order insert
implementation. Developers could inlement this interface, to add a new order
insert strategy without re-compiling the whole BLL。
如何在安装程序时根据用户选择的数据库类型来动态配置web.config?