aspnet4.0應(yīng)用程序結(jié)構(gòu).ppt
第4章ASP.NET4.0應(yīng)用程序結(jié)構(gòu),ASP.NET4.0應(yīng)用程序分類,ASP.NET4.0應(yīng)用程序結(jié)構(gòu),ASP.NET4.0頁面框架,4.1ASP.NET4.0應(yīng)用程序分類,4.1.1Web應(yīng)用程序在開發(fā)的ASP.NET應(yīng)用程序中最多的是ASP.NETWeb應(yīng)用程序類型,也就是ASP.NETWeb窗體應(yīng)用程序。例如,通常的ASP.NET網(wǎng)站就是這類的應(yīng)用程序。最簡單的ASP.NETWeb應(yīng)用程序包含一個目錄,其中至少包含一個.aspx文件,即ASP.NET頁。,4.1.2移動Web應(yīng)用程序,ASP.NET移動Web應(yīng)用程序?qū)嶋H上是一種特殊的Web應(yīng)用程序。它主要是針對移動設(shè)備(如手機、PDA等)而設(shè)計的。在ASP.NET中,移動Web應(yīng)用程序與普通Web應(yīng)用程序之間的主要區(qū)別在于移動Web應(yīng)用程序使用移動Web控件,這些控件包括Form表單控件和其他標(biāo)準(zhǔn)控件,如標(biāo)簽、文本框等。,4.1.3Web服務(wù),Web服務(wù)是ASP.NET提供的另一種應(yīng)用程序類型。在.NETFramework中,將其稱為XMLWeb服務(wù),主要是為了將Web服務(wù)與XML標(biāo)準(zhǔn)關(guān)聯(lián)在一起。Web服務(wù)實際上是一種能夠跨Internet調(diào)用的組件,不過,Web服務(wù)的真正威力體現(xiàn)在基礎(chǔ)結(jié)構(gòu)中。Web服務(wù)是建立在.NETFramework和CLR之上的,Web服務(wù)可以充分利用這些技術(shù)的優(yōu)點,例如,ASP.NET支持的性能、狀態(tài)管理和身份驗證都可以在使用ASP.NET生成Web服務(wù)時利用。,4.2ASP.NET4.0應(yīng)用程序結(jié)構(gòu),4.2.1應(yīng)用程序文件類型ASP.NET應(yīng)用程序可能包含以下文件。Web窗體頁(.aspx文件):這是ASP.NET應(yīng)用程序的基礎(chǔ)。Web服務(wù)(.asmx文件):為其他計算機提供共享應(yīng)用程序的服務(wù)。代碼隱藏文件:這取決于應(yīng)用程序的開發(fā)語言及代碼模型,如果采用代碼隱藏機制,將會產(chǎn)生一些源代碼文件,如選擇C#作為開發(fā)語言,就產(chǎn)生.cs文件。配置文件(web.config):該文件是XML格式的文件,包含各種ASP.NET功能的配置信息,如數(shù)據(jù)庫連接、安全設(shè)置、狀態(tài)管理等。Global.asax文件:用于處理應(yīng)用程序級事件的可選文件,該文件駐留在ASP.NET應(yīng)用程序的根目錄下。用戶控件文件(.ascx):該文件定義可重復(fù)使用的自定義用戶控件。其他組件:包含其他組件的第三方程序集,如.dll文件等。,4.2.2應(yīng)用程序目錄結(jié)構(gòu),表4.1列出了保留的目錄名及其通常包含的文件。,4.3ASP.NET4.0頁面框架,4.3.1aspx頁面元素每個aspx文件一般包含3部分元素:頁面指令、代碼腳本塊和頁面內(nèi)容。以第1章1.3節(jié)中實例的login.aspx文件的內(nèi)容來說,其中,頁面指令是以括起來的代碼,代碼如下:頁面指令用于指定當(dāng)前頁編譯處理時所使用的設(shè)置,一個頁面可包含多條頁面指令。代碼腳本塊是由“”標(biāo)簽對括起來的程序代碼。在代碼腳本塊中可以定義頁面的全局變量及程序處理過程等。,4.3.2ASP.NET頁面布局,1頁面整體結(jié)構(gòu)布局(1)表格布局。利用表格布局主要通過將網(wǎng)頁中的內(nèi)容分為若干個區(qū)塊,用表格的單元格代表區(qū)塊,然后分別在不同的區(qū)塊內(nèi)填充內(nèi)容,如圖4.1所示。,4.3.2ASP.NET頁面布局,(2)DIV+CSS布局。DIV+CSS的頁面布局是Web2.0時代提倡的一種頁面布局方式,是一種比較靈活方便的布局方法。對于DIV+CSS布局的頁面,瀏覽器會邊解析邊顯示。DIV+CSS網(wǎng)頁布局的基本流程如下:規(guī)劃網(wǎng)頁結(jié)構(gòu),把網(wǎng)站從整體上分為幾個區(qū)塊,規(guī)劃好每個區(qū)塊的大小和位置;將區(qū)塊用DIV標(biāo)簽代替,設(shè)置好每個DIV的大小和樣式;通過布局屬性設(shè)置DIV的位置布局。,4.3.2ASP.NET頁面布局,兩欄布局,即網(wǎng)頁主體部分由兩欄組成,如圖4.2所示。如果欄數(shù)超過兩個,可以通過層嵌套,將其分隔成如上所述的布局。例如,為3欄,則可以如圖4.3所示布局。,4.3.2ASP.NET頁面布局,2頁面元素布局ASP.NET的頁面元素布局方式有兩種,一種是網(wǎng)格布局(GridLayout),另一種是流布局(FlowLayout)。在流布局下,元素沒有任何定位的樣式屬性,它們將在頁中從上至下、從左至右或從右至左排列,具體取決于頁的dir屬性的設(shè)置、元素的容器元素或瀏覽器的語言設(shè)置。如果頁面中的某些元素帶有坐標(biāo)信息,則瀏覽器將以此坐標(biāo)為標(biāo)準(zhǔn),采用網(wǎng)格布局來定位所有元素。,4.3.3頁面指令,使用指令時,標(biāo)準(zhǔn)的做法是將指令放置于文件的頂端。每個指令都包含一個或多個屬性與值,形式如下:表4.2列出了ASP.NET提供的頁面指令。,4.3.3頁面指令,1Page指令Page指令用于定義特定于頁面的屬性,ASP.NET頁分析器和編譯器根據(jù)此屬性來編譯頁面。Page指令只能置于aspx文件中,并且一個頁面只允許出現(xiàn)一條Page指令。Page指令包含很多屬性,表4.3描述了Page指令的部分屬性。,4.3.3頁面指令,2Import指令I(lǐng)mport指令的語法為:導(dǎo)入命名空間后,用戶在編寫程序時可直接使用所導(dǎo)入命名空間的所有類和接口,而無須使用完全限定名來訪問這些類和接口。例如,要創(chuàng)建DataTable類的一個實例,如果不導(dǎo)入System.Data命名空間,則需要使用完全限定名來創(chuàng)建實例,代碼如下:System.Data.DataTabledt=newSystem.Data.DataTable();若將System.Data命名空間導(dǎo)入,則可以使用簡化的代碼:DataTabledt=newDataTable();,4.3.3頁面指令,3Assembly指令(1)Name:允許指定用于關(guān)聯(lián)頁面文件的程序集名稱。程序集名稱應(yīng)只包含文件名,不包含文件的擴展名,ASP.NET引擎會按照系統(tǒng)路徑逐一搜索,同時也會查找Web應(yīng)用程序的Bin目錄。例如,文件是MyAssembly.cs,Name屬性值應(yīng)是MyAssembly。(2)Src:允許指定編譯時所使用的程序集源文件,需要指明源文件的全路徑。例如,文件是MyAssembly.cs,Src屬性值應(yīng)是MyAssembly.cs。下面是使用Assembly指令的兩個例子:,4.3.3頁面指令,4Reference指令(1)Page:指定外部頁,ASP.NET應(yīng)動態(tài)編譯該頁并將它鏈接到包含Reference指令的當(dāng)前文件。(2)Control:指定外部用戶控件,ASP.NET應(yīng)動態(tài)編譯該控件并將它鏈接到包含Reference指令的當(dāng)前文件。(3)VirtualPath:引用的虛擬路徑,可以是任何文件類型。例如,它可能會指向母版頁。下面是使用Reference指令的3個例子:,4.3.3頁面指令,5Register指令(1)assembly:指定與tagprefix屬性關(guān)聯(lián)的命名空間所駐留的程序集。程序集名稱不能包括文件擴展名。(2)namespace:指定正在注冊的自定義控件的命名空間。(3)src:指定與tagprefix:tagname對關(guān)聯(lián)的聲明性ASP.NET用戶控件文件的位置(相對的或絕對的)。(4)tagname:指定與類關(guān)聯(lián)的任意別名。此屬性只用于用戶控件。(5)tagprefix:指定一個任意別名,它提供對包含指令的文件中所使用標(biāo)記的命名空間的短引用。下面是使用Register指令將用戶控件導(dǎo)入頁面的一個例子:,4.3.3頁面指令,6Implements指令I(lǐng)mplements指令的功能是允許ASP.NET實現(xiàn)特定的.NETFramework接口,如果頁面需要實現(xiàn)多個接口,可以使用多條Implements指令。Assembly指令僅支持interface屬性,指定要在頁或用戶控件中實現(xiàn)的接口。下面是使用Implements指令的一個例子:,4.3.3頁面指令,7其他指令(1)Control指令:該指令與Page指令類似,用來定義ASP.NET頁分析器和編譯器使用的特定于用戶控件(.ascx文件)的屬性。(2)Master指令:該指令定義ASP.NET頁分析器和編譯器使用的特定于母版頁(.master文件)的屬性。(3)MasterType指令:該指令提供一種方法,用于當(dāng)通過Master屬性訪問ASP.NET母版頁時,創(chuàng)建對該母版頁的強類型引用。(4)PreviousPage指令:該指令提供一種方法來獲得上一頁的強類型,可通過PreviousPage屬性訪問上一頁。(5)OutputCache指令:該指令以聲明的方式控制ASP.NET頁或頁中包含的用戶控件的輸出緩存策略。,4.3.4頁面生命周期,表4.4列出了常規(guī)頁的生命周期階段。,4.3.5頁面事件,表4.5列出了最常用的頁生命周期事件。,