petshop 4.0
支持多種數據庫,數據庫都MODEL 化。數據操作層DBUTILITY. 工廠模式
基本功能實現BLL----DALFactory(工廠層)---IDAL(接口層) --SQLServerDAL(數據層實現接口層)
根據WEB.CONFIG配置<add key="WebDAL" value="PetShop.oracleDAL"/>,數據層也可以由oracleDAL層實現。
訂單除了由上面方式實現外,還有一種異步實現方式實現
Synch(同步方式)
BLL - IBLLStrategy層(實現了訂單工廠層接口層合2爲1)--根據接口層實現配置<!-- Order processing options (Asynch/Synch) -->
<add key="OrderStrategyAssembly" value="PetShop.BLL"/>(訂單處理邏輯層)---BLL的實現邏輯層類這裏是爲BLL----- 根據
<add key="OrderStrategyClass" value="PetShop.BLL.OrderSynchronous"/>(訂單處理類分同步、異步處理類)----找到實現的同異步
方式--如果是同步方式----數據層實現爲DALFactory中定義的訂單數據實現---根據DALFactory中<add key="OrdersDAL"
value="PetShop.SQLServerDAL"/>定義確定具體數據層實現--IDAL---DAL
Asynch(異步)
BLL - IBLLStrategy層(實現了訂單工廠層接口層合2爲1)--根據接口層實現配置<!-- Order processing options (Asynch/Synch) -->
<add key="OrderStrategyAssembly" value="PetShop.BLL"/>(訂單處理邏輯層)---BLL的實現邏輯層類這裏是爲BLL----- 根據
<add key="OrderStrategyClass" value="PetShop.BLL.OrderSynchronous"/>(訂單處理類分同步、異步處理類)----找到實現的同異步
方式--如果是異步方式---數據工廠層MessagingFactory層----IMessaging(消息隊列層 異步)---根據<add key="OrderMessaging"
value="PetShop.MSMQMessaging"/>----數據層PetShop.MSMQMessaging確定
緩存結構(只對SQLSERVER有效ORACLE還沒有處理返回的爲空,使用ORACLE時要保持的WEBCONFIG此配置節爲空)緩存應用了SQL緩存鍵依賴項
web層的APP_CODE代碼中處理邏輯層----PetShop.CacheDependencyFactory(工廠層) ---PetShop.ICacheDependency(接口層)--
-PetShop.TableCacheDependency(數據緩存層)
SQL緩存鍵依賴項實例
AggregateCacheDependency cd = DependencyFacade.GetCategoryDependency(); 創建依賴項
HttpRuntime.Cache.Add(cacheKey, data, cd, DateTime.Now.AddHours(cacheDuration), Cache.NoSlidingExpiration,
CacheItemPriority.High, null);
protected AggregateCacheDependency dependency = new AggregateCacheDependency();
dependency.Add(new SqlCacheDependency(dbName, tableName)); 此處是增加依賴代碼根據數據庫名和表名
return dependency;
Profile實現購物車 WEB.CONFIG存在一下三個PROFILE
ShoppingCart WishList AccountInfo
PetShop.Model.AddressInfo 訂單地址即帳號
PetShop.ProfileDALFactory
PetShop.IProfileDAL
PetShop.Profile
最後一層的實現都有相應的ORACLEDAL的實現層 在消息隊列 ORACLE用的是WINDOWS 服務