You are on page 1of 32

PetShop & Design

www.hzdsw.net
2004 Hewlett-Packard Development Company, L.P.
The information contained herein is subject to change without notice

PetShop

PetShop
PetShop

.Net J2EE

4.0 .Net
Framework 2.0 Asp.Net

PetShop

.Net

PetShop

PetShop

MS Sql DB

Oracal
DB

PetShop

.Net BS

PetShop
PetShop

2.0

PetShop
PetShop

3.0

PetShop
PetShop

4.0

PetShop

DAL

DALFactory

IDAL

Model

DAL

SQLServerDAL
MS Sql Server
I DAL

OracleDAL
Oracle
IDAL

PetShop

BLL


IBBLStrategy

BBL

DALFactory

IDAL

Model

PetShop

Web Component

BBL


Factory

Strategy
Facade

Factory

DALFactory

DAL

IDAL

Factory

IDAL

ICategory
IInventory
IItem
IOrder
IProduct

Factory

DALFactory DataAccess
public sealed class DataAccess
{
public static PetShop.IDAL.ICategory CreateCategory() {}

{}

public static PetShop.IDAL.IInventory CreateInventory()

public static PetShop.IDAL.IItem CreateItem() {}

public static PetShop.IDAL.IOrder CreateOrder() {}

public static PetShop.IDAL.IProduct CreateProduct() {}

Strategy


IBBLStrategy

BBL

Strategy

PetShop

Order

<<interface>>
IOrderStrategy
+Insert()

OrderSynchronous

OrderAsynchronous

+Insert()

+Insert()

Facade

Faade

Faade

Facade

PetShop Cache
Cache .Net Web
Cache
System.Web.Caching.AggregateCacheDepe
ndency

protected

AggregateCacheDependency
dependency = new
AggregateCacheDependency();

dependency.Add(new

SqlCacheDependency(dbName,
tableName);

Facade

CacheDependcy PetShop
DependencyAccess

public static class DependencyAccess


{

public static IPetShopCacheDependency

CreateCategoryDependency() {}

public static IPetShopCacheDependency


CreateProductDependency() {}

public static IPetShopCacheDependency


CreateItemDependency() {}

Facade
DependencyAccess
+CreateCategoryDependcy() : IPetShopCacheDependency
+CreateProductDependcy() : IPetShopCacheDependency
+CreateItemDependcy() : IPetShopCacheDependency

<<interface>>
IPetShopCacheDependency
+GetDependency()

AggregateCacheDependency

1
*

TableDependency
+GetDependency()

SqlCacheDependency
1

protected AggregateCacheDependency dependency =


new AggregateCacheDependency();
dependency.Add(new SqlCacheDependency(dbName, tableName));

Facade

IPetShopCacheDependency
Table Name
SqlCacheDependency
AggregateCacheDependency

IPetShopCacheDependency
GetDependency()
Faade
DependencyFacade

IOrderStrategy
BLL
OrderStrategy

IOrderStrategy

orderInsert = new

OrderSynchronous();
BBL
OrderSynchronous

(Dependency Injection)

Martin Fowler
http://
martinfowler.com/articles/injection.html

Spring PicoContainer .Net


Spring.Net

xml

PetShop

DALFactory DataAccess


PetShop Asp.Net
Web.Config
ConfigurationManager

private

static readonly string orderPath =


ConfigurationManager.AppSettings["Orders
DAL"];

Web.config
<add

key="OrdersDAL"
value="PetShop.SQLServerDAL"/>

Oracle
web.config

<add

key="OrdersDAL"
value="PetShop.OracleDAL"/>

DALFactory

OrderStrategy
BBL Order
IOrderStragety

private static readonly PetShop.IBLLStrategy.IOrderStrategy


orderInsertStrategy = LoadInsertStrategy();

private static PetShop.IBLLStrategy.IOrderStrategy


LoadInsertStrategy()
{
// Look up which strategy to use from config file
string path =
ConfigurationManager.AppSettings["OrderStrategyAssembly"
];
string className =
ConfigurationManager.AppSettings["OrderStrategyClass"];
return (PetShop.IBLLStrategy.IOrderStrategy)
Assembly.Load(path).CreateInstance(className);
}

IOrderStrategy LoadInsertStrategy()
OrderStrategyAssembly
OrderStrategyClass
web.config

<add key="OrderStrategyAssembly"
value="PetShop.BLL"/>
<add key="OrderStrategyClass"
value="PetShop.BLL.OrderSynchronous"/>

<add key="OrderStrategyClass"
value="PetShop.BLL. OrderAsynchronous"/>

PetShop
http://msdn.microsoft.com/library/default.asp?url=/librar
PetShop 4.0 download:
http://msdn.microsoft.com/library/default.asp?url
=/library/en-us/dnbda/html/bdasamppet4.asp
PetShop 3.0 download:
http://msdn.microsoft.com/library/default.asp?url
=/library/en-us/dnbda/html/bdasamppet3.asp
PetShop 4.0 .Net Framework 2.0
3.0 2.0 .Net Framework 1.x

.Net 1.x PetShop 3.0


PetShop 4.0 .Net 2.0
Transacation Asp.Net 2.0 MemberShip

You might also like