• 客服
    咨詢
  • 公告3
  • 關(guān)注

    關(guān)于時(shí)代 更多優(yōu)惠活動(dòng)等您來拿!
    寶雞網(wǎng)絡(luò)公司微信 掃一掃關(guān)注——微信公眾號(hào) 時(shí)代手機(jī)瀏覽 掃一掃立即手機(jī)瀏覽
  • 關(guān)閉
  • 頂部
  • 網(wǎng)站建設(shè)技術(shù)asp.net三層架構(gòu)分別是什么

    時(shí)間:2014-07-05 21:31 來源:未知
      網(wǎng)站建設(shè)中使用N層架構(gòu)的優(yōu)勢(shì).
      因?yàn)榫W(wǎng)站建設(shè)中每一層都可以在僅僅更改很少量的代碼后,就能放到物理上不同的服務(wù)器上使用,因此結(jié)構(gòu)靈活而且性能更佳。此外,每層做些什么其它層是完全看不到的,因此更改、更新某層,都不再需要重新編譯或者更改全部的層了。這是個(gè)很強(qiáng)大的功能。例如,如果把數(shù)據(jù)訪問代碼與業(yè)務(wù)邏輯層分離,當(dāng)數(shù)據(jù)庫服務(wù)器更改后,你只需要更改數(shù)據(jù)訪問的代碼,因?yàn)闃I(yè)務(wù)邏輯層是不變的,因此不需要更改或者重新編譯業(yè)務(wù)邏輯層。
      網(wǎng)站建設(shè)中一個(gè)N層的應(yīng)用程序通常有三層:表現(xiàn)層、業(yè)務(wù)層和數(shù)據(jù)層。下面讓我們看看每層都做些什么。
      表現(xiàn)層(Presentation Layer)
      表現(xiàn)層用于用戶接口的展示,以及用業(yè)務(wù)層的類和對(duì)象來“驅(qū)動(dòng)”這些接口。
      在ASP.NET中,該層包括aspx頁面、用戶控制、服務(wù)器控制以及某些與安全相關(guān)的類和對(duì)象。
      業(yè)務(wù)層(Business Tier)
      業(yè)務(wù)層用于訪問數(shù)據(jù)層,從數(shù)據(jù)層取數(shù)據(jù)、修改數(shù)據(jù)以及刪除數(shù)據(jù),并將結(jié)果返回給表現(xiàn)層。
      在ASP.NET中,該層包括使用SqlClient或OleDb從SQL Server或Access數(shù)據(jù)庫取數(shù)據(jù)、更新數(shù)據(jù)及刪除數(shù)據(jù),并把取得的數(shù)據(jù)放到DataReader或DataSet中返回給表現(xiàn)層。返回的數(shù)據(jù)也許只有一個(gè)整型數(shù)字,比如一個(gè)表的行記錄數(shù)目,但這也要用數(shù)據(jù)層的數(shù)據(jù)進(jìn)行計(jì)算。
      BLL和DAL
      通常該層被劃分成兩個(gè)子層:業(yè)務(wù)邏輯層(Business Logic Layer,BLL)和數(shù)據(jù)訪問層(Data Access Layers,DAL)。業(yè)務(wù)邏輯層在數(shù)據(jù)訪問層之上,也就是說BLL調(diào)用DAL的類和對(duì)象。DAL訪問數(shù)據(jù)并將其轉(zhuǎn)給BLL。
      在ASP.NET中,該層可以用SqlClient或OleDb從SQL Server或Access數(shù)據(jù)庫取數(shù)據(jù),把數(shù)據(jù)通過DataSet 或DataReader的形式給BLL,BLL處理數(shù)據(jù)給表現(xiàn)層。有的時(shí)候,例如直接把DataSet 或DataReader送給表現(xiàn)層的時(shí)候,BLL是一個(gè)透明層。
      數(shù)據(jù)層(Data Tier)
      數(shù)據(jù)層是數(shù)據(jù)庫或者數(shù)據(jù)源。在.NET中,通常它是一個(gè)SQL Server或Access數(shù)據(jù)庫,但不僅限于此兩種形式,它還可能是Oracle,mySQL,甚至是XML。
      邏輯層VS(分布式)物理層
      人們?nèi)菀讓⑦@兩個(gè)概念搞混。我們說邏輯層是把層按類的集合來劃分,而這些層都在同一臺(tái)個(gè)服務(wù)器上。(分布式)物理層是指類的集合在不同的服務(wù)器上,用附加的代碼來處理層間的通信,比如remoting和web服務(wù)。
      決定如何劃分你的層(是物理的還是不是物理的)是非常重要的。在劃分時(shí)應(yīng)考慮下面因素:
      1、注意如果劃分成物理層,你的應(yīng)用程序的速度會(huì)因?yàn)椴煌⻊?wù)器在網(wǎng)絡(luò)中通信的延遲而減慢。所以,如果你決定用物理層,請(qǐng)確保獲得性能的提升大于性能的降低。
      2、按照n層架構(gòu)設(shè)計(jì)你的應(yīng)用程序。
      3、部署以及維護(hù)物理分布式的應(yīng)用程序的成本是很高的。你首先需要不止一臺(tái)服務(wù)器,你還需要網(wǎng)絡(luò)硬件來連接這些服務(wù)器。在這種情況下,部署應(yīng)用變得更加復(fù)雜!因此這樣做之前請(qǐng)確定這樣做是否值得。
      另外還要注意,網(wǎng)站建設(shè)中你的應(yīng)用程序的每層都做何使用。你也許因?yàn)檫\(yùn)行的多個(gè)服務(wù)都需要某一層而把該層放到別臺(tái)服務(wù)器上。例如,你也許會(huì)因?yàn)榻o不同的用戶定制不同的表現(xiàn)層,而將業(yè)務(wù)邏輯層放于別處;你也許會(huì)因?yàn)檫有其它的應(yīng)用訪問同一個(gè)數(shù)據(jù)庫,而把SQL server服務(wù)放到別處。