ASP.NET2.0+SQL Server2005構(gòu)建多層應(yīng)用第1/4頁
更新時(shí)間:2006年12月11日 00:00:00 作者:
【推薦】ASP.NET2.0+SQL Server2005構(gòu)建多層應(yīng)用!!!!!@申請(qǐng)加分!@@!
[sell=5]隨著.NET 2.0的發(fā)布,將會(huì)使得使用ASP.NET 2.0來構(gòu)建的Web應(yīng)用越來越容易。使用ASP.NET 2.0和SQL Server 2005,將會(huì)比ASP.NET 1.1更方便地構(gòu)建多層體系架構(gòu)的web應(yīng)用。本文,將使用ASP.NET 2.0和SQL Server 2005 (.net使用Visual Studio 2005 beta 2,SQL Server 2005使用april ctp版本)來構(gòu)建一個(gè)簡(jiǎn)單的多層應(yīng)用的例子,并且說明其中在.NET 2.0和SQL Server 2005中的一些新的特性,比如objectdatasource,master pages,clr 存儲(chǔ)過程,tableadapter向?qū)У取?
多層應(yīng)用簡(jiǎn)介
什么是多層架構(gòu)的應(yīng)用呢?傳統(tǒng)上的CLR模式便是兩層應(yīng)用的典型例子,也就是客戶機(jī)/服務(wù)器模式。這種模式只是兩層架構(gòu),客戶機(jī)發(fā)出請(qǐng)求給服務(wù)器,服務(wù)器將處理大量來自客戶端的請(qǐng)求,經(jīng)過業(yè)務(wù)邏輯運(yùn)算和處理后,再返回給客戶端。兩層架構(gòu)的模式顯然不能滿足現(xiàn)代以互聯(lián)網(wǎng)為趨勢(shì)的企業(yè)計(jì)算處理要求,因?yàn)槠洳渴穑?fù)載均衡等處理十分麻煩,所以就有了三層架構(gòu)乃至于多層架構(gòu)便出現(xiàn)了。多層架構(gòu)的核心思想是,將整個(gè)業(yè)務(wù)應(yīng)用劃分為表示層-業(yè)務(wù)層―數(shù)據(jù)訪問層-數(shù)據(jù)庫,明確地將客戶端的表示層、業(yè)務(wù)邏輯訪問、和數(shù)據(jù)訪問及數(shù)據(jù)庫訪問劃分出來,十分有利于系統(tǒng)的開發(fā),維護(hù)、部署和擴(kuò)展。下面我們以典型的一個(gè)例子來說明,如何使用ASP.NET 2.0和SQL Server 2005來構(gòu)建一個(gè)多層應(yīng)用。
我們的這個(gè)例子十分簡(jiǎn)單,但足以能夠說明問題。我們的應(yīng)用只有兩個(gè)頁面,第一個(gè)頁面將調(diào)用SQL Server 2005數(shù)據(jù)庫中的pubs數(shù)據(jù)庫的author表,列出所有的作者,然后點(diǎn)選每個(gè)作者的鏈接,將顯示該作者寫過哪些書籍。
下面的圖,說明了在ASP.NET 2.0架構(gòu)下,我們的這個(gè)多層應(yīng)用的架構(gòu)圖:

從上圖可以看出,我們將以這樣的方式來構(gòu)建這個(gè)多層應(yīng)用。首先,從圖的最上方開始看,藍(lán)色部分的是表示層,就是我們web應(yīng)用的外觀顯示,該層直接和用戶打交道,比如處理輸入輸出等,在ASP.NET 2.0中,我們可以使用master page模版技術(shù),以構(gòu)建一個(gè)外觀風(fēng)格保持一致的頁面(這在下文中會(huì)提到)。接下來是業(yè)務(wù)邏輯層,一般在該層中會(huì)直接處理業(yè)務(wù)邏輯及相關(guān)計(jì)算等,而在ASP.NET 2.0中,我們可以很方便地通過使用objectdatasource控件來處理業(yè)務(wù)邏輯層。
業(yè)務(wù)邏輯層再接著和數(shù)據(jù)訪問層(data access layer)打交道。數(shù)據(jù)訪問層的作用是,將所有對(duì)數(shù)據(jù)庫*作的有關(guān)過程業(yè)務(wù)分離出來,當(dāng)數(shù)據(jù)庫的結(jié)構(gòu)等發(fā)生改變時(shí),只需要對(duì)數(shù)據(jù)訪問層的代碼進(jìn)行修改就可以了,不需要再修改其他的地方,這樣會(huì)方便和不同的數(shù)據(jù)庫進(jìn)行打交道。在ASP.NET 2.0中,通過使用TableAdapter數(shù)據(jù)向?qū)?作,可以十分快速地從已有的數(shù)據(jù)庫中,生成數(shù)據(jù)訪問層的代碼,而基本上不需要寫什么代碼。
最后,我們通過使用SQL Server 2005 新特性:clr stored procedure(clr 存儲(chǔ)過程),來創(chuàng)建存儲(chǔ)過程。在SQL Server 2005 中,你可以使用自己熟悉的.NET語言來創(chuàng)建存儲(chǔ)過程了。
多層應(yīng)用簡(jiǎn)介
什么是多層架構(gòu)的應(yīng)用呢?傳統(tǒng)上的CLR模式便是兩層應(yīng)用的典型例子,也就是客戶機(jī)/服務(wù)器模式。這種模式只是兩層架構(gòu),客戶機(jī)發(fā)出請(qǐng)求給服務(wù)器,服務(wù)器將處理大量來自客戶端的請(qǐng)求,經(jīng)過業(yè)務(wù)邏輯運(yùn)算和處理后,再返回給客戶端。兩層架構(gòu)的模式顯然不能滿足現(xiàn)代以互聯(lián)網(wǎng)為趨勢(shì)的企業(yè)計(jì)算處理要求,因?yàn)槠洳渴穑?fù)載均衡等處理十分麻煩,所以就有了三層架構(gòu)乃至于多層架構(gòu)便出現(xiàn)了。多層架構(gòu)的核心思想是,將整個(gè)業(yè)務(wù)應(yīng)用劃分為表示層-業(yè)務(wù)層―數(shù)據(jù)訪問層-數(shù)據(jù)庫,明確地將客戶端的表示層、業(yè)務(wù)邏輯訪問、和數(shù)據(jù)訪問及數(shù)據(jù)庫訪問劃分出來,十分有利于系統(tǒng)的開發(fā),維護(hù)、部署和擴(kuò)展。下面我們以典型的一個(gè)例子來說明,如何使用ASP.NET 2.0和SQL Server 2005來構(gòu)建一個(gè)多層應(yīng)用。
我們的這個(gè)例子十分簡(jiǎn)單,但足以能夠說明問題。我們的應(yīng)用只有兩個(gè)頁面,第一個(gè)頁面將調(diào)用SQL Server 2005數(shù)據(jù)庫中的pubs數(shù)據(jù)庫的author表,列出所有的作者,然后點(diǎn)選每個(gè)作者的鏈接,將顯示該作者寫過哪些書籍。
下面的圖,說明了在ASP.NET 2.0架構(gòu)下,我們的這個(gè)多層應(yīng)用的架構(gòu)圖:

從上圖可以看出,我們將以這樣的方式來構(gòu)建這個(gè)多層應(yīng)用。首先,從圖的最上方開始看,藍(lán)色部分的是表示層,就是我們web應(yīng)用的外觀顯示,該層直接和用戶打交道,比如處理輸入輸出等,在ASP.NET 2.0中,我們可以使用master page模版技術(shù),以構(gòu)建一個(gè)外觀風(fēng)格保持一致的頁面(這在下文中會(huì)提到)。接下來是業(yè)務(wù)邏輯層,一般在該層中會(huì)直接處理業(yè)務(wù)邏輯及相關(guān)計(jì)算等,而在ASP.NET 2.0中,我們可以很方便地通過使用objectdatasource控件來處理業(yè)務(wù)邏輯層。
業(yè)務(wù)邏輯層再接著和數(shù)據(jù)訪問層(data access layer)打交道。數(shù)據(jù)訪問層的作用是,將所有對(duì)數(shù)據(jù)庫*作的有關(guān)過程業(yè)務(wù)分離出來,當(dāng)數(shù)據(jù)庫的結(jié)構(gòu)等發(fā)生改變時(shí),只需要對(duì)數(shù)據(jù)訪問層的代碼進(jìn)行修改就可以了,不需要再修改其他的地方,這樣會(huì)方便和不同的數(shù)據(jù)庫進(jìn)行打交道。在ASP.NET 2.0中,通過使用TableAdapter數(shù)據(jù)向?qū)?作,可以十分快速地從已有的數(shù)據(jù)庫中,生成數(shù)據(jù)訪問層的代碼,而基本上不需要寫什么代碼。
最后,我們通過使用SQL Server 2005 新特性:clr stored procedure(clr 存儲(chǔ)過程),來創(chuàng)建存儲(chǔ)過程。在SQL Server 2005 中,你可以使用自己熟悉的.NET語言來創(chuàng)建存儲(chǔ)過程了。
您可能感興趣的文章:
- 使用基于Node.js的構(gòu)建工具Grunt來發(fā)布ASP.NET MVC項(xiàng)目
- ASP.NET MVC3手把手教你構(gòu)建Web
- ASP.NET性能優(yōu)化之構(gòu)建自定義文件緩存
- Asp.net TreeView來構(gòu)建用戶選擇輸入的方法 推薦
- ASP.NET MVC+EF框架+EasyUI實(shí)現(xiàn)權(quán)限管系列
- ASP.NET中的Inherits、CodeFile、CodeBehind的區(qū)別詳解
- asp.net(c#)ref,out ,params的區(qū)別
- asp.net TemplateField模板中的Bind方法和Eval方法
- ASP.NET Ref和Out關(guān)鍵字區(qū)別分析
- ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后臺(tái)管理系統(tǒng)之前端頁面框架構(gòu)建源碼分享
相關(guān)文章
.Net行為型設(shè)計(jì)模式之職責(zé)鏈模式(Chain of Responsibility)
這篇文章介紹了.Net行為型設(shè)計(jì)模式之職責(zé)鏈模式(Chain of Responsibility),文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05ASP.NET web.config 配置節(jié)點(diǎn)詳解
這篇文章主要介紹了ASP.NET web.config 節(jié)點(diǎn)的配置,講解的非常詳細(xì),需要的朋友可以參考下。2016-06-06.Net設(shè)計(jì)模式之單例模式(Singleton)
這篇文章介紹了.Net設(shè)計(jì)模式之單例模式(Singleton),文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05.Net?Core微服務(wù)rpc框架GRPC通信實(shí)際運(yùn)用
這篇文章介紹了.Net?Core微服務(wù)rpc框架GRPC通信實(shí)際運(yùn)用,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01ASP.NET實(shí)現(xiàn)word文檔在線預(yù)覽功能代碼
文檔管理系統(tǒng)需要實(shí)現(xiàn)WORD能在線預(yù)覽功能,以前覺得挺難的,經(jīng)過一番研究發(fā)現(xiàn),WORD自帶的另存為可以保存為HTMl文件。2010-07-07