網站架構


三、網站架構

在本章節我們來學習一下網站架構,弄明白一些概念東西,以便我們以后的程序開發。

什么是網站架構?筆者認為網站架構就是一套系統的規則。通過這套規則,我們可以把一個復雜的系統划分成多個簡單子系統的集合,這些子系統相互獨立,又與整個系統保持一致。網站架構分為網站物理架構和網站軟件架構。網站的物理架構規定了組成軟件系統的物理元素、這些物理元素之間的關系、以及它們部署到硬件上的策略,毋庸置疑,對於規模稍大的網站來說,其背后必然是一個服務器集群來提供網站服務。物理架構不是我們討論的重點我們只討論軟件的系統架構,所以以后我提到的網站架構就是指軟件架構。

為什么要用網站架構?網站規模到了一定的程度之后,代碼里各種邏輯糾纏在一起,會給維護和擴展帶來巨大的障礙,這就是我們網站架構的意義。網站架構有很多方式和種類,比較常用的就是進行分層設計,通常企業開發被分成表示層,業務層,數據訪問層和,這就是著名的三層架構您一定不陌生。

首先說明一下使用三層架構未必會提升性能,我們用三層結構主要目的是使項目結構更清楚,分工更明確,有利於后期的維護和升級。下面將詳細介紹一下三層架構。

1、三層架構的定義

三層架構中的三層分別為表示層(UI)、業務邏輯層(BLL)、數據訪問層(DAL),具體的架構如下圖3-1所示。

 

圖3-1 三層架構圖

2、各層的作用

表示層: 位於最外層(最上層),離用戶最近。用於顯示數據和接收用戶輸入的數據,為用戶提供一種交互式操作的界面,所有和表現相關的邏輯都應該被納入表現層的范疇,並不僅僅就指模板,它的范圍要更廣一些。網站的表示層通常表現為aspx。在這一層我們容易犯的錯誤就是把本屬於表現層的邏輯放到了其他層面去完成,這里說一個很常見的例子:我們在列表頁顯示文章標題的時候,都會設定一個最大字數,一旦標題長度超過了這個限制,就截斷,並在后面顯示“..”,這就是最典型的表現層邏輯,但是實際情況,有很多程序員都 是在非表現層代碼里完成數據的獲取和截斷,然后賦值給表現層模板,這樣的代碼最直接的缺點就是同樣一段數據,在這個頁面我可能想顯示前10個字,再另一個 頁面我可能想顯示前15個字,而一旦我們在程序里固化了這個字數,也就喪失了可移植性。

業務邏輯層: 該層處於數據訪問層與表示層中間,起到了數據交換中承上啟下的作用,無疑是系統架構中體現核心價值的部分,主要是針對具體的問題的操作,也可以理解成對數據層的操作,對數據業務邏輯處理,它的關注點主要集中在業務規則的制定、業務流程的實現等與業務需求有關的系統設計,也即是說它是與系統所應對的領域(Domain)邏輯有關,很多時候,也將業務邏輯層稱為領域層;所以我們首先要考慮的問題如何組織你的業務對象之間的關系,以便做到功能的接口與具體的實現分離,這是最重要也是最基本的,如果連這點都做不到,你的程序也就是死的,絲毫不具備可擴展性,其次應該考慮業務組件應該以怎樣的方式來為表示層提供服務。

數據訪問層:有時候也稱為是持久層,主要是對原始數據(數據庫或者文本文件等存放數據的形式)的操作層,而不是指原始數據,也就是說,是對數據的操作,而不是數據庫,具體為業務邏輯層或表示層提供數據服務.簡單的說法就是實現對數據表的Select,Insert,Update,Delete的操作。

3、如何建立一個三層體系結構解決方案

A)新建一個空白解決方案,名稱為MySnow,如圖3-2所示。。

圖3-2 空白解決方案

B) “添加”-“新建項目”—C#類庫,名稱為BLL,如圖3-3所示。

 

圖3-3 業務邏輯層

C) “添加”-“新建項目”—C#類庫,名稱為DAL。

D) “添加”-“新建項目”—C#類庫,名稱為Model。

Model又叫實體類,這個東西每個層都用到,在各層之間起到了一個數據傳輸的橋梁作用,它是面向對象編程中最基本的東西:類。一個桌子、一個椅子、int、string等也是類,Model在三層架構中的位置,和int,string等變量的地位就一樣了,沒有其它的目的,僅用於數據的存儲而已,只不過它存儲的是復雜的數據。所以如果你的項目中對象都非常簡單,那么不用Model而直接傳遞多個參數也能做成三層架構。

E) D) “添加”-“新建項目”—Asp.Net Web應用程序,名稱為SnowWeb,如圖3-4所示。。

 

圖3-4 表現層

F)添加項目依賴,在解決方案中右鍵單擊解決方案MySnow選擇屬性,在屬性頁面選擇項目依賴,SnowWeb項目依賴BLL和Model項目,如圖3-5所示。

 

3-5 SnowWeb項目依賴BLL和Model項目

BLL項目依賴DAL和Model項目,如圖3-6所示。

 

3-6 BLL項目依賴DAL依賴DAL和Model項目

DAL項目依賴Model項目,如圖3-7所示。

 

3-7 DAL項目依賴Model項目

Ok我們的一個三層架構骨架已經搭建完畢,最后解決方案如圖3-7所示。

 

3-7 三層架構解決方案


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM