程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> PetShop 4架構分析

PetShop 4架構分析

編輯:.NET實例教程

剛開始打開PetShop項目的時候,我們未免會被如此多的項目嚇一跳,不過只要用心的去分析,看懂它並不是非常難的事。

首先我們來看一下WEB項目,因為我們做WEB應用程序首先想到的就是看看頁面是怎麼實現的,然後一路追溯下去,直到看明白程序是如何把數據顯示到頁面和如何處理頁面的數據的。

比如說首頁吧,Default.ASPx,我們看到首頁很簡單,大多數是靜態的,只顯示了一個CategorIEs菜單,下面是對應的Html代碼

<PetShopControl:NavigationControl ID="CategorIEs" runat="server"></PetShopControl:NavigationControl>

而這些PetShopControl,NavigationControl標簽是什麼呢,我們可以在頁面Html代碼的上方看到一行

<%@ Register Src="Controls/NavigationControl.ascx" TagName="NavigationControl" TagPrefix="PetShopControl" %>

指令,通過這行指令我們可以看到CategorIEs菜單是通過NavigationControl.ascx用戶控件實現的

那好,我們現在就來打開 NavigationControl.ascx ,NavigationControl.ascx 裡面有一個Repeater控件,然後我們來看看NavigationControl.ascx的後台代碼NavigationControl.ascx.cs

頁面初绐化Page_Load調用兩個函數GetControlStyle();BindCategorIEs();

其中GetControlStyle()是為了實現菜單在首頁和其它頁面顯示不同的風格,BindCategorIEs()方法就是綁定數據了。

BindCategorIEs() {

Category category = new Category();

repCategories.DataSource = category.GetCategorIEs();

repCategorIEs.DataBind();

}

在BindCategories()方法中有個類Category,Category是在BLL項目中實現的,我們可以單擊右鍵點轉到定義快速的找到它,category.GetCategorIEs()方法我們也可以快速的找到它的定義

表現層到這就轉到業務層了,現在我們來看看業務層如何實現Category類,業務層的GetCategorIEs()方法實現如下

public IList<CategoryInfo> GetCategorIEs() {

return dal.GetCategorIEs();

}

而變量 dal 在類中有定義

private static readonly ICategory dal = PetShop.DALFactory.DataAccess.CreateCategory();

然後我們再看到PetShop.DALFactory.DataAccess.CreateCategory()

在DataAccess類的CreateCategory()方法中我們所看到的並沒有具體的數據操作,取而代之的是

string className = path + ".Category";

return (PetShop.IDAL.ICategory)Assembly.Load(path).CreateInstance(className);

我們可以看到 path 的定義

private static readonly string path = ConfigurationManager.APPSettings["WebDAL"];

path是WEB.config中定義的WebDAL節點值,我們來看看Web.config中的WebDAL值,如果裝的是SQL數據庫的話應該是 “PetShop.SQLServerDAL”

原來語句“Assembly.Load(path).CreateInstance(className)”就是通過Web.config配置來實例化PetShop.SQLServerDAL集合中的Category類,然後我們才在PetShop.SQLServerDAL.Category看到方法GetCategorIEs()的具體實現

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved