ASP.NET 4權(quán)威指南(完整版)_第1頁
ASP.NET 4權(quán)威指南(完整版)_第2頁
ASP.NET 4權(quán)威指南(完整版)_第3頁
ASP.NET 4權(quán)威指南(完整版)_第4頁
ASP.NET 4權(quán)威指南(完整版)_第5頁
已閱讀5頁,還剩892頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

ASP.NET4權(quán)威指南目錄\h第一部分ASP.NET開發(fā)基礎(chǔ)\h第0章預(yù)備課:學(xué)習(xí)從這里開始\h0.1認(rèn)識(shí)Microsoft.NET\h0.2ASP.NET的特點(diǎn)\h0.3ASP.NET的版本變遷\h0.4ASP.NET4為我們帶來了什么\h0.5MicrosoftVisualStudio2010集成開發(fā)環(huán)境\h0.6本章小結(jié)\h第1章開發(fā)你的第一個(gè)ASP.NET應(yīng)用—“Hello,World”\h1.1創(chuàng)建“Hello,World”Web應(yīng)用程序\h1.2ASP.NET網(wǎng)頁代碼模型\h1.3ASP.NET生命周期\h1.4ASP.NET配置\h1.5全局應(yīng)用程序類Global.asax\h1.6新建Web網(wǎng)站與新建Web應(yīng)用程序的區(qū)別\h1.7本章小結(jié)\h第2章HTML服務(wù)器控件\h2.1ASP.NET服務(wù)器控件概述\h2.2HTML服務(wù)器控件概述\h2.3HTML輸入控件\h2.4HTML容器控件\h2.5HtmlImage控件\h2.6使用代碼處理HTML服務(wù)器控件\h2.7本章小結(jié)\h第3章Web標(biāo)準(zhǔn)服務(wù)器控件\h3.1Web標(biāo)準(zhǔn)服務(wù)器控件概述\h3.2數(shù)據(jù)顯示控件\h3.3數(shù)據(jù)輸入控件\h3.4數(shù)據(jù)提交控件\h3.5圖像顯示控件\h3.6文件上傳控件\h3.7Calendar控件\h3.8HyperLink控件\h3.9Panel控件\h3.10HiddenField控件\h3.11AdRotator控件\h3.12本章小結(jié)\h第4章ASP.NET驗(yàn)證控件\h4.1驗(yàn)證控件概述\h4.2表單驗(yàn)證控件:RequiredFieldValidator\h4.3范圍驗(yàn)證控件:RangeValidator\h4.4比較驗(yàn)證控件:CompareValidator\h4.5正則驗(yàn)證控件:RegularExpressionValidator\h4.6自定義邏輯驗(yàn)證控件:CustomValidator\h4.7驗(yàn)證信息顯示:ValidationSummary\h4.8驗(yàn)證控件編程實(shí)踐\h4.9驗(yàn)證組\h4.10本章小結(jié)\h第5章ASP.NET用戶控件\h5.1用戶控件詳解\h5.2@Control指令\h5.3創(chuàng)建簡單的用戶控件\h5.4用戶控件編程\h5.5ClientIDMode屬性\h5.6本章小結(jié)\h第二部分ASP.NET數(shù)據(jù)訪問\h第6章ASP.NET數(shù)據(jù)管理\h6.1ADO.NET概述\h6.2Connection類\h6.3連接池\h6.4Command類和DataReader類\h6.5常用的數(shù)據(jù)庫操作\h6.6事務(wù)\h6.7非連接的數(shù)據(jù)概述\h6.8DataTable類\h6.9DataSet類\h6.10DataView類\h6.11提供程序無關(guān)的代碼\h6.12本章小結(jié)\h第7章數(shù)據(jù)控件綁定與操作\h7.1List數(shù)據(jù)控件\h7.2DetailsView控件\h7.3FormView控件\h7.4Repeater控件\h7.5ListView控件\h7.6DataList控件\h7.7Chart控件\h7.8本章小結(jié)\h第8章詳解GridView控件\h8.1GridView控件基礎(chǔ)\h8.2格式化GridView\h8.3樣式定義\h8.4GridView控件的基本操作\h8.5選擇行\(zhòng)h8.6GridView模板\h8.7GridView的常用編程技巧\h8.8本章小結(jié)\h第9章LINQ查詢基礎(chǔ)\h9.1LINQ查詢概述\h9.2LINQ基本子句\h9.3LINQ查詢操作\h9.4本章小結(jié)\h第10章LINQtoADO.NET\h10.1LINQtoSQL\h10.2LINQtoDataSet\h10.3QueryExtender控件\h10.4本章小結(jié)\h第11章XML與LINQtoXML\h11.1XML概述\h11.2基于流的XML處理\h11.3基于內(nèi)存中的XML處理\h11.4驗(yàn)證XML\h11.5LINQtoXML\h11.6本章小結(jié)\h第12章ADO.NET實(shí)體框架\h12.1理解ADO.NET實(shí)體框架\h12.2LINQtoEntities\h12.3EntitySQL\h12.4操作對(duì)象\h12.5本章小結(jié)\h第三部分構(gòu)建ASP.NET站點(diǎn)\h第13章頁面樣式與布局\h13.1在HTML中使用CSS的三種形式\h13.2CSS基本語法\h13.3CSS框模型\h13.4CSS定位\h13.5CSS浮動(dòng)\h13.6在VS2010中編輯CSS\h13.7常用頁面布局標(biāo)簽\h13.8本章小結(jié)\h第14章ASP.NET母版頁\h14.1母版頁基礎(chǔ)\h14.2在母版頁和內(nèi)容頁之間傳遞數(shù)據(jù)\h14.3以編程方式設(shè)置母版頁\h14.4嵌套母版頁\h14.5本章小結(jié)\h第15章主題和皮膚\h15.1使用ASP.NET中的主題\h15.2創(chuàng)建自己的主題\h15.3定義多個(gè)皮膚選項(xiàng)\h15.4以編程的方式設(shè)置主題\h15.5理解Page和Master頁面的EnableTheming屬性\h15.6本章小結(jié)\h第16章站點(diǎn)導(dǎo)航\h16.1多視圖頁面\h16.2理解站點(diǎn)地圖\h16.3SiteMapDataSource控件\h16.4SiteMapPath控件\h16.5處理站點(diǎn)地圖文件\h16.6自定義SiteMapProvider從數(shù)據(jù)庫中讀取站點(diǎn)地圖數(shù)據(jù)結(jié)構(gòu)\h16.7站點(diǎn)地圖安全性調(diào)整\h16.8TreeView控件\h16.9Menu控件\h16.10本章小結(jié)\h第四部分ASP.NET高級(jí)話題\h第17章ASP.NET狀態(tài)管理\h17.1ASP.NET狀態(tài)管理概述\h17.2Response對(duì)象\h17.3Request對(duì)象\h17.4Server對(duì)象\h17.5Cookie\h17.6會(huì)話狀態(tài)\h17.7視圖狀態(tài)\h17.8ASP.NET路由\h17.9本章小結(jié)\h第18章自定義服務(wù)器控件\h18.1創(chuàng)建簡單的自定義服務(wù)器控件\h18.2元數(shù)據(jù)特性\h18.3視圖狀態(tài)與控件狀態(tài)\h18.4事件處理\h18.5簡單屬性和子屬性\h18.6集合屬性\h18.7自定義狀態(tài)管理\h18.8組合式控件\h18.9本章小結(jié)\h第19章ASP.NET緩存\h19.1理解ASP.NET緩存\h19.2輸出緩存\h19.3數(shù)據(jù)緩存\h19.4高級(jí)緩存依賴\h19.5自定義輸出緩存提供程序\h19.6分布式緩存Velocity\h19.7本章小結(jié)\h第20章多語言本地化應(yīng)用程序\h20.1ASP.NET網(wǎng)頁資源\h20.2在網(wǎng)頁中使用資源\h20.3為不同的語言選擇資源文件\h20.4CultureInfo類\h20.5System.Globalization命名空間\h20.6設(shè)置編碼\h20.7本章小結(jié)\h第21章ASP.NETWeb部件\h21.1什么是Web部件\h21.2Web部件控件集\h21.3創(chuàng)建簡單的Web部件頁面\h21.4頁顯示模式\h21.5Web部件的高級(jí)應(yīng)用\h21.6本章小結(jié)注:原文檔電子版(非掃描),需要的請(qǐng)下載本文檔后留言謝謝。第一部分ASP.NET開發(fā)基礎(chǔ)第0章預(yù)備課:學(xué)習(xí)從這里開始第1章開發(fā)你的第一個(gè)ASP.NET應(yīng)用—“Hello,World”第2章HTML服務(wù)器控件第3章Web標(biāo)準(zhǔn)服務(wù)器控件第4章ASP.NET驗(yàn)證控件第5章ASP.NET用戶控件第0章預(yù)備課:學(xué)習(xí)從這里開始俗話說:“萬事開頭難”,學(xué)習(xí)程序設(shè)計(jì)也一樣。一個(gè)好的開始會(huì)讓我們提高學(xué)習(xí)的興趣,增加學(xué)習(xí)的信心,當(dāng)然也會(huì)增加一點(diǎn)學(xué)習(xí)的成就感。為了讓你能夠有一個(gè)良好的學(xué)習(xí)開端,我們將在本章介紹一些關(guān)于ASP.NET的概念性知識(shí),例如什么是.NET(讀作“dot-net”)、ASP.NET各版本的變遷過程及其自身的語言特點(diǎn)等。除了這些概念性知識(shí)之外,還會(huì)重點(diǎn)介紹MicrosoftVisualStudio2010與ASP.NET4的新特性、MicrosoftVisualStudio2010集成開發(fā)環(huán)境的結(jié)構(gòu)及其使用等。這些概念性知識(shí)都是必須了解的,尤其是對(duì)于初學(xué)者。0.1認(rèn)識(shí)Microsoft.NET究竟什么是.NET呢?2000年微軟的白皮書是這樣定義.NET的:Microsoft.NET是MicrosoftXMLWebServices平臺(tái)。XMLWebServices允許應(yīng)用程序通過Internet進(jìn)行通信和共享數(shù)據(jù),而不管所采用的是哪種操作系統(tǒng)、設(shè)備或編程語言。Microsoft.NET平臺(tái)為創(chuàng)建XMLWebServices并將這些服務(wù)集成在一起提供了可能。Microsoft.NET包括如下技術(shù)領(lǐng)域,如圖0-1所示。圖0-1Microsoft.NET包括的技術(shù)領(lǐng)域其中,.NET框架是一個(gè)多語言組件開發(fā)和執(zhí)行環(huán)境,它提供了一個(gè)跨語言的統(tǒng)一編程環(huán)境。.NET框架的目的是便于開發(fā)人員更容易地建立Web應(yīng)用和Web服務(wù),使得Internet上的各種應(yīng)用之間可以使用Web服務(wù)進(jìn)行溝通。開發(fā)人員可以將遠(yuǎn)程應(yīng)用提供的服務(wù)和單機(jī)應(yīng)用的服務(wù)結(jié)合起來,組成一個(gè)新的應(yīng)用。.NET框架的結(jié)構(gòu)如圖0-2所示。圖0-2.NET框架的結(jié)構(gòu).NET語言和語言工具支持多種開發(fā)語言(見表0-1),程序員可以將多種與.NET兼容的語言結(jié)合起來開發(fā).NET應(yīng)用。多個(gè)程序員可以共同參與同一個(gè)軟件項(xiàng)目,每個(gè)人可以使用自己最精通的.NET語言(如C#、VB等)來編寫代碼。0.2ASP.NET的特點(diǎn)在了解了.NET的概念之后,現(xiàn)在來看看什么是ASP.NET。ASP.NET是一個(gè)統(tǒng)一的Web開發(fā)模型,它提供了為建立和部署企業(yè)級(jí)Web應(yīng)用所必需的服務(wù)。同時(shí),ASP.NET是Microsoft.NETFramework的一部分,是一種可以在高度分布的Internet環(huán)境中簡化應(yīng)用程序開發(fā)的計(jì)算環(huán)境。當(dāng)編寫ASP.NET應(yīng)用程序的代碼時(shí),可以訪問.NETFramework中的類??梢允褂门c公共語言運(yùn)行庫((CmmonLanguageRuntime,CLR)兼容的任何語言來編寫應(yīng)用程序的代碼,這些語言包括MicrosoftVisualBasic、C#、JScript.NET和J#。使用這些語言,可以開發(fā)利用公共語言運(yùn)行庫、類型安全、繼承等方面的優(yōu)點(diǎn)的ASP.NET應(yīng)用。因此,它有如下特點(diǎn):1)ASP.NET是同Microsoft.NETFramework集成在一起的,運(yùn)行在CLR運(yùn)行庫環(huán)境之內(nèi)。ASP.NET建立在.NETFramework的編程類之上,它提供了一個(gè)Web應(yīng)用程序模型,并且包含使生成ASPWeb應(yīng)用程序變得簡單的控件集和結(jié)構(gòu)。ASP.NET包含封裝公共HTML用戶界面元素(如文本框和下拉菜單)的控件集,但這些控件在Web服務(wù)器上運(yùn)行,并以HTML的形式將它們的用戶界面推送到瀏覽器。在服務(wù)器上,這些控件公開一個(gè)面向?qū)ο蟮木幊棠P停瑸閃eb開發(fā)人員提供了面向?qū)ο蟮木幊痰呢S富性。ASP.NET還提供結(jié)構(gòu)服務(wù)(如會(huì)話狀態(tài)管理和進(jìn)程回收),進(jìn)一步減少了開發(fā)人員必須編寫的代碼量,并提高了應(yīng)用程序的可靠性。另外,ASP.NET能讓開發(fā)人員以服務(wù)的形式交付軟件。使用XMLWebServices功能,ASP.NET開發(fā)人員可以編寫自己的業(yè)務(wù)邏輯并使用ASP.NET結(jié)構(gòu),最后通過SOAP交付該服務(wù)。2)ASP.NET是編譯執(zhí)行的,它支持多種編程語言,同時(shí),它也是面向?qū)ο蟮?。在ASP.NET應(yīng)用開發(fā)中,可以使用與CLR兼容的任何語言來編寫應(yīng)用程序的代碼,如MicrosoftVisualBasic、C#、JScript.NET和J#等編程語言。以C#為例,它會(huì)經(jīng)過兩個(gè)階段的編譯過程:第一個(gè)階段,編寫的C#代碼首先被C#編譯器編譯成.NET的中間語言((ItermediateLanguage,IL)。實(shí)際上,所有.NET語言(包括MicrosoftVisualBasic、C#等)都會(huì)編譯成相同的IL代碼,這也是.NET為什么能夠做到與語言無關(guān)性的關(guān)鍵所在。當(dāng)頁面被第一次請(qǐng)求的時(shí)候,第一步的編譯過程會(huì)自動(dòng)執(zhí)行,當(dāng)然也可以提前執(zhí)行(我們將此稱為預(yù)編譯),這個(gè)編譯的IL代碼文件稱為程序集。圖0-3ASP.NET頁面代碼的編譯過程第二階段在這個(gè)頁面實(shí)際執(zhí)行的時(shí)候開始。此時(shí),IL代碼被編譯成本機(jī)機(jī)器代碼,我們將此階段稱為即時(shí)編譯((Jst-In-Time,JIT)??梢杂脠D0-3來描述這兩個(gè)階段的編譯過程。其實(shí),ASP.NET應(yīng)用程序不必在每次請(qǐng)求網(wǎng)頁的時(shí)候都進(jìn)行編譯,這些中間語言代碼在源文件被修改之前只被編譯一次。關(guān)于代碼究竟什么時(shí)候編譯成IL代碼,這取決于你創(chuàng)建Web項(xiàng)目的方式。在MicrosoftVisualStudio2010中,如果采用新建Web應(yīng)用程序的方式來創(chuàng)建Web項(xiàng)目,那么在編譯項(xiàng)目的時(shí)候,代碼就會(huì)被編譯成IL;如果采用新建網(wǎng)站的方式來創(chuàng)建Web項(xiàng)目,那么頁面代碼在第一次請(qǐng)求的時(shí)候才會(huì)被編譯成IL。無論哪種方式,代碼都是在第一次執(zhí)行時(shí)進(jìn)入編譯的第二階段,即從IL到本機(jī)機(jī)器代碼。3)ASP.NET是跨瀏覽器和跨設(shè)備的。要做到跨任何瀏覽器運(yùn)行是所有Web開發(fā)人員所面臨的最大挑戰(zhàn),同時(shí),它也是衡量一門Web編程語言的重要指標(biāo)。但對(duì)于今天的ASP.NET程序員來講,跨瀏覽器的問題似乎變得不那么重要。如果你在開發(fā)中完全使用ASP.NET自帶的Web服務(wù)器控件,那么這些Web服務(wù)器控件將會(huì)根據(jù)客戶端的瀏覽器來自動(dòng)生成相應(yīng)的HTML。這樣,你不用編寫任何其他的額外代碼就能夠?qū)崿F(xiàn)跨瀏覽器支持。4)ASP.NET易于配置與部署。說到ASP.NET的易于配置與部署的特性,這是任何一個(gè)開發(fā)平臺(tái)所不能夠比擬的,微軟在這方面一直都做得非常好。尤其是在Windows7和WindowsServer2008操作系統(tǒng)里面自帶了.NET之后,通過復(fù)制程序的方式就能夠讓程序自由運(yùn)行。0.3ASP.NET的版本變遷迄今為止,ASP.NET已經(jīng)算是非常成熟的一項(xiàng)Web開發(fā)技術(shù),但它也是經(jīng)歷了多個(gè)版本才能夠有現(xiàn)在的地位。所以,了解ASP.NET的發(fā)展歷程對(duì)于每個(gè)ASP.NET開發(fā)人員來說都是非常有意義的??梢园阉陌l(fā)展歷程分為以下幾個(gè)階段,本文分成三小節(jié)分別進(jìn)行介紹。0.3.1ASP.NET1.0與ASP.NET1.12002年,隨著微軟.NET口號(hào)的提出與WindowsXP、OfficeXP的發(fā)布,微軟發(fā)布了代號(hào)為“Rainier”的VisualStudio.NET(內(nèi)部版本號(hào)為7.0)。它最大的改進(jìn)就是使用.NET框架(版本1.0)引入了受控代碼開發(fā)環(huán)境,使用.NET開發(fā)的程序并不會(huì)像C++那樣被編譯為機(jī)器語言,而是被編譯成一種叫做微軟中間語言((MIL)或者通用中間語言((I)的格式。當(dāng)一個(gè)MSIL應(yīng)用程序被執(zhí)行時(shí),它會(huì)被即時(shí)編譯成適用于所運(yùn)行平臺(tái)的機(jī)器語言,這樣就使得代碼可以跨平臺(tái)運(yùn)行。與此同時(shí),ASP.NET這種新型Web開發(fā)技術(shù)也閃亮登場(版本1.0)。它的前身是ASP,但與ASP相比,ASP.NET發(fā)生了質(zhì)的變化:1)改變了傳統(tǒng)ASP的開發(fā)模式,使用了設(shè)計(jì)與代碼分離的代碼隱藏模型。2)消除了對(duì)腳本引擎的依賴性,支持多語言開發(fā),如C#、VisualBasic等。其中,C#是微軟當(dāng)時(shí)引入的一門新型語言(讀作CSharp,意為C++++),它是建立在C++和Java基礎(chǔ)之上的現(xiàn)代語言,是編寫.NET框架的語言。3)提供了豐富的Web服務(wù)器控件和代碼調(diào)試等工具,讓你使用“拖曳”的方式就能夠很快地設(shè)計(jì)出自己的網(wǎng)頁,大大地節(jié)約了設(shè)計(jì)成本。4)功能強(qiáng)大的身份確認(rèn)模型。2003年,微軟對(duì)VisualStudio2002進(jìn)行了部分修訂,發(fā)布了代號(hào)為“Everett”的VisualStudio2003(內(nèi)部版本號(hào)為7.1)。它將.NET框架由1.0版升級(jí)到1.1版,同時(shí)為使用ASP.NET或.NETCompactFramework來開發(fā)移動(dòng)設(shè)備程序提供了內(nèi)置支持。0.3.2ASP.NET2.0到2005年,微軟發(fā)布了VisualStudio2005,同時(shí)也將ASP.NET由1.1版升級(jí)到2.0版本。相對(duì)于ASP.NET1.1,ASP.NET2.0做了如下方面的改進(jìn):1)豐富的控件。在原來的基礎(chǔ)上增加了許多新的控件,如站點(diǎn)導(dǎo)航控件、數(shù)據(jù)控件(包括數(shù)據(jù)源控件和數(shù)據(jù)綁定控件)、登錄系列控件、Web部件和其他服務(wù)器控件等,從而大大地降低了開發(fā)成本。2)母版頁。母版頁是擴(kuò)展名為.master的文件,其代碼內(nèi)容和結(jié)構(gòu)與普通.aspx文件類似。在創(chuàng)建母版頁時(shí),需要將頁面公共部分存儲(chǔ)于母版頁中,例如,頁面公用的頁頭、頁尾等,而非公共部分則使用ContentPlaceHolder控件實(shí)現(xiàn)占位。雖然內(nèi)容頁文件擴(kuò)展名為.aspx,但是代碼內(nèi)容和結(jié)構(gòu)與普通.aspx文件代碼相距甚遠(yuǎn),其代碼分為兩個(gè)部分:代碼頭聲明一個(gè)或多個(gè)Content控件。開發(fā)人員需要在內(nèi)容頁代碼頭綁定母版頁,同時(shí),將頁面非公共部分內(nèi)容設(shè)置在Content控件標(biāo)簽之間。在運(yùn)行時(shí),用戶不能直接請(qǐng)求母版頁,只能請(qǐng)求訪問內(nèi)容頁。此時(shí),母版頁和內(nèi)容頁將合并生成結(jié)果頁,結(jié)果頁面包含頁面公共部分和非公共部分的運(yùn)行結(jié)果。3)主題和皮膚。“主題”是指頁面和控件外觀屬性設(shè)置的集合。主題由一組文件構(gòu)成,可能包括皮膚文件、CSS文件、圖片和其他資源等,它們都必須存儲(chǔ)在App_Themes文件夾中。皮膚文件是主題的核心內(nèi)容,擴(kuò)展名為.skin,其中包含各種服務(wù)器控件的各種屬性設(shè)置。利用主題功能,不僅能夠定義頁面和控件的外觀,還可以在所有Web應(yīng)用、單個(gè)Web應(yīng)用的所有頁面或單個(gè)Web頁面中,快速一致地應(yīng)用所定義的外觀。另外,還可以根據(jù)應(yīng)用的需要?jiǎng)討B(tài)加載主題。4)個(gè)性化用戶配置。個(gè)性化用戶配置功能主要用于存儲(chǔ)單個(gè)用戶配置數(shù)據(jù),這些數(shù)據(jù)可以是簡單數(shù)據(jù)類型,也可以是復(fù)雜數(shù)據(jù)類型,甚至自定義對(duì)象等。同時(shí),單個(gè)用戶既可以是匿名用戶,也可以是注冊用戶。默認(rèn)情況下,所有用戶配置數(shù)據(jù)都存儲(chǔ)在SQLServer數(shù)據(jù)庫中,并且無須自行創(chuàng)建和維護(hù)該數(shù)據(jù)庫,這些工作都由ASP.NET2.0自動(dòng)完成。個(gè)性化用戶配置功能還支持從應(yīng)用程序中任何位置訪問的多種強(qiáng)類型API,以方便存儲(chǔ)、顯示和管理用戶配置信息。個(gè)性化用戶配置功能的使用非常簡單,首先在Web.config文件中定義配置信息名稱、數(shù)據(jù)類型等,然后調(diào)用與用戶配置功能有關(guān)的強(qiáng)類型API。例如,Profile實(shí)現(xiàn)對(duì)用戶配置信息的存儲(chǔ)、訪問和管理等應(yīng)用。5)成員資格和角色管理。成員資格和角色管理功能的核心是利用自動(dòng)生成的數(shù)據(jù)庫表、多個(gè)實(shí)現(xiàn)管理功能的API、成員資格和角色管理提供程序,實(shí)現(xiàn)模塊化和自動(dòng)化的成員資格和角色管理模式。具體而言,包括創(chuàng)建和管理用戶和角色信息、實(shí)現(xiàn)對(duì)多種數(shù)據(jù)源中用戶和角色信息的管理、驗(yàn)證訪問應(yīng)用程序的用戶憑證、支持使用Cookie緩存角色信息、實(shí)現(xiàn)角色管理與成員資格管理等功能的集成。6)配置和管理工具。為了快速方便地實(shí)現(xiàn)應(yīng)用程序的配置和管理,ASP.NET2.0提供了兩個(gè)內(nèi)置的可視化工具:一個(gè)是ASP.NETMMC管理單元,另一個(gè)是Web網(wǎng)站管理工具。只要你的計(jì)算機(jī)中安裝了Internet信息服務(wù)((IS)和.NETFramework2.0或以上版本,那么打開IIS即可使用ASP.NETMMC管理單元。利用該工具可對(duì)指定應(yīng)用程序的連接字符串、應(yīng)用程序配置、自定義錯(cuò)誤、授權(quán)、身份驗(yàn)證、公共編譯、頁和運(yùn)行時(shí)、全球化和標(biāo)識(shí)、應(yīng)用程序狀態(tài)、位置等進(jìn)行全面設(shè)置,所有設(shè)置結(jié)果都將顯示在應(yīng)用程序Web.config文件中。從這一角度而言,ASP.NETMMC管理單元是一個(gè)用于編輯Web.config文件的圖形化工具。0.3.3ASP.NET3.52007年11月,微軟發(fā)布了VisualStudio2008英文版,并于2008年2月14日發(fā)布了簡體中文專業(yè)版,ASP.NET也由2.0升級(jí)到3.5。相對(duì)其他的版本來說,ASP.NET3.5取得了更大的技術(shù)突破,為開發(fā)者提供了一系列新技術(shù):1)內(nèi)置對(duì)ASP.NETAJAX的支持。Ajax(異步JavaScript和XML)這幾年來一直是Web開發(fā)領(lǐng)域的熱點(diǎn)話題,它是一項(xiàng)快捷的客戶端編程技術(shù),它允許頁面不必觸發(fā)一次完整的回發(fā)就可以調(diào)用服務(wù)器方法并更新自身的內(nèi)容。通常,Ajax頁面通過客戶端腳本代碼觸發(fā)一次幕后的異步請(qǐng)求,服務(wù)器端接收到請(qǐng)求后,執(zhí)行相關(guān)的請(qǐng)求代碼,返回頁面所需要的數(shù)據(jù),客戶端代碼獲取到新數(shù)據(jù)后利用它們再執(zhí)行其他動(dòng)作,如刷新頁面的一部分等。在ASP.NET3.5中,提供了對(duì)ASP.NETAJAXExtension部分的內(nèi)置支持。而且,在如下方面進(jìn)行了增強(qiáng):?對(duì)JavaScript編程的智能感知((itellisense)支持。?對(duì)ASP.NETAJAX庫提供集成的編輯器支持。?針對(duì)支持JSON的.asmxWeb服務(wù)編程的智能感知支持。?增強(qiáng)的JavaScript調(diào)試支持。?ASP.NETAJAX擴(kuò)展器控件支持。2)引入了重量級(jí)對(duì)象—LINQ技術(shù)。LINQ(LanguageIntegratedQuery,語言集成查詢)允許你編寫C#或者VisualBasic代碼以查詢數(shù)據(jù)庫相同方式操作內(nèi)存數(shù)據(jù)??梢允褂盟鼇聿樵兗虾蛿?shù)組中的數(shù)據(jù)、數(shù)據(jù)庫中的數(shù)據(jù)和XML中的數(shù)據(jù)等,并且語法是一樣的,而且很像SQL查詢語法。此外,ASP.NET3.5還新出爐了幾個(gè)ASP.NET數(shù)據(jù)控件:<asp:ListView>、<asp:LinqDataSource>與<asp:DataPager>。這幾個(gè)控件在數(shù)據(jù)訪問方面與LINQ對(duì)象結(jié)合可以提供更豐富的支持。3)對(duì)Silverlight的支持。Silverlight是一種新的Web呈現(xiàn)技術(shù),能在各種平臺(tái)上運(yùn)行。借助該技術(shù),你將擁有內(nèi)容豐富、視覺效果絢麗的交互式體驗(yàn)。而且,無論是在瀏覽器內(nèi)、各種設(shè)備上,還是在桌面操作系統(tǒng)(如AppleMacintosh)中,你都可以獲得這種體驗(yàn)。在VisualStudio2008推出不久,微軟就推出了VisualStudio2008ServicePack1版本。該版本主要針對(duì)VisualStudio2008進(jìn)行了相關(guān)的錯(cuò)誤修復(fù)、安全補(bǔ)丁和小幅度的性能優(yōu)化。同時(shí),在ASP.NET方面也加強(qiáng)了ASP.NETAJAX的功能,并提供了對(duì)ASP.NET動(dòng)態(tài)數(shù)據(jù)的支持等。0.4ASP.NET4為我們帶來了什么微軟的每一次新版本發(fā)布對(duì)于我們開發(fā)人員來說都是激動(dòng)人心的,它所提供的強(qiáng)大功能和人性化的操作界面總會(huì)讓你心潮澎湃、激動(dòng)不已。當(dāng)然,MicrosoftVisualStudio2010與ASP.NET4也不會(huì)讓我們失望,現(xiàn)在就來看一下它為我們提供了哪些新的開發(fā)特性。0.4.1MicrosoftVisualStudio2010集成開發(fā)環(huán)境在ASP.NET的Web項(xiàng)目開發(fā)方面,MicrosoftVisualStudio2010集成開發(fā)環(huán)境主要做了以下幾方面的改進(jìn):1)起始項(xiàng)目模板。不論是使用新建網(wǎng)站模板創(chuàng)建Web項(xiàng)目,還是使用新建Web應(yīng)用程序模板創(chuàng)建Web項(xiàng)目,VisualStudio2010都會(huì)提供兩種模板供我們選擇,如圖0-4所示。圖0-4使用新建Web應(yīng)用程序模板創(chuàng)建Web項(xiàng)目其中,使用EmptyASP.NETWebApplication模板創(chuàng)建的是一個(gè)空的Web項(xiàng)目,而使用ASP.NETWebApplication模板創(chuàng)建的Web項(xiàng)目是一個(gè)帶有許多開發(fā)模板文件的項(xiàng)目,詳細(xì)區(qū)別將在第1章講解。2)多定向支持。如圖0-4所示,VisualStudio2010的多定向支持使你可以在VisualStudio2010集成開發(fā)環(huán)境中同時(shí)開發(fā)或運(yùn)行.NET2.0、.NET3.0、.NET3.5和.NET4版本的程序。因此,你也可以將任何.NET2.0、.NET3.0、.NET3.5版本的項(xiàng)目升級(jí)到.NET4。3)多顯示器支持。VisualStudio2010允許將編輯器、設(shè)計(jì)器和工具窗口移到頂層窗口之外,放在你想要的任何地方、系統(tǒng)的任何顯示器上。這可以顯著地改善屏幕的可使用面積,優(yōu)化總的開發(fā)工作流程。想利用多個(gè)顯示器的特性是非常容易的。只要單擊任何一個(gè)文檔標(biāo)簽((tb)或者工具窗口,將其拖到頂層IDE窗口中的一個(gè)新位置,或者拖到IDE之外,到你想要的任何顯示器上的任意一個(gè)位置,如圖0-5所示。圖0-5移動(dòng)VisualStudio2010開發(fā)窗口之后,如果想要重新定位((dck)文檔、窗口,可以將它們拖回到主窗口(或者右擊,選擇重新定位功能選項(xiàng))。VisualStudio會(huì)記住文檔保存時(shí)最后的屏幕位置,這意味著,當(dāng)你關(guān)閉并再次打開項(xiàng)目時(shí),文檔會(huì)自動(dòng)恢復(fù)到上次保存時(shí)的布局。4)ASP.NET、HTML、JavaScript代碼片段支持。如圖0-6所示,VisualStudio2010提供了對(duì)HTML、ASP.NET、JavaScript代碼片段的支持。代碼片段允許你創(chuàng)建一段代碼和標(biāo)識(shí),然后只需最少量的字符輸入就可很快地在你的應(yīng)用中將其施用,從而使你在源碼視圖內(nèi)更有效率。圖0-6ASP.NET、HTML、JavaScript代碼片段支持同時(shí),VisualStudio2010包含了超過200個(gè)內(nèi)置的代碼片段,這些片段安裝后即使用。更棒的是,你不會(huì)局限于僅使用內(nèi)置的代碼片段,還可以輕松地創(chuàng)建自己的代碼片段(連帶可置換的參數(shù)),可將它們導(dǎo)入VisualStudio2010,以及輕松地與其他開發(fā)人員分享,這便于你快速地自動(dòng)化自己的常做任務(wù)。5)代碼的智能提示?;蛟S,“代碼的智能提示”這個(gè)特性對(duì)你來說并不陌生,它在VisualStudio2010以前的版本中就已經(jīng)有了,但那時(shí)候的“代碼的智能提示”指示的是匹配你輸入字符的所有項(xiàng),但這樣的提示往往使得查找比較困難。但在VisualStudio2010中,微軟改變了這種匹配方式,使用了過濾功能,過濾了一些不相關(guān)的提示。這種新的智能提示過濾方法便于你在編寫代碼時(shí)可以很快速地找到并使用類和成員,你可以在VB和C#語言編程時(shí)使用該特性,從而提高你編寫代碼的速度,如圖0-7所示。圖0-7代碼的智能提示0.4.2ASP.NET核心服務(wù)相對(duì)于ASP.NET3.5SP1來說,ASP.NET4算是一個(gè)功能性增強(qiáng)版本,它引入了多項(xiàng)可改進(jìn)ASP.NET核心服務(wù)的功能。1.可擴(kuò)展輸出緩存其實(shí),自ASP.NET1.0發(fā)布之后,開發(fā)人員就可以通過輸出緩存將生成的頁、控件和HTTP響應(yīng)的輸出存儲(chǔ)在內(nèi)存中。對(duì)于后續(xù)的Web請(qǐng)求,ASP.NET可以從內(nèi)存中檢索生成的輸出而不是從頭開始重新生成輸出,從而更快地提供內(nèi)容服務(wù)。但此方法有一個(gè)限制,即生成的內(nèi)容必須始終存儲(chǔ)在內(nèi)存中。在流量較大的服務(wù)器上,輸出緩存的內(nèi)存需求可能會(huì)與Web應(yīng)用程序其他部分的內(nèi)存需求產(chǎn)生沖突。ASP.NET4為輸出緩存增加了擴(kuò)展性,它允許你能夠配置一個(gè)或多個(gè)自定義輸出緩存提供程序。輸出緩存提供程序可使用任何存儲(chǔ)機(jī)制保存HTML內(nèi)容。這些存儲(chǔ)選項(xiàng)包括本地或遠(yuǎn)程磁盤、云存儲(chǔ)和分布式緩存引擎。借助ASP.NET4中的輸出緩存提供程序擴(kuò)展性,可以為網(wǎng)站設(shè)計(jì)更主動(dòng)且更智能的輸出緩存策略。例如,可以創(chuàng)建這樣一個(gè)輸出緩存提供程序,該程序在內(nèi)存中緩存站點(diǎn)流量“排名前10”的頁面,而在磁盤上緩存流量較低的頁面,也可以根據(jù)所呈現(xiàn)頁面的各種變化因素組合進(jìn)行緩存,但應(yīng)使用分布式緩存以減少前端Web服務(wù)器的內(nèi)存消耗??梢詫⒆远x輸出緩存提供程序作為派生自新的OutputCacheProvider類型的類創(chuàng)建。隨后,可以通過使用OutputCache元素的新的providers節(jié)在Web.config文件中配置提供程序,如下面的示例所示:<caching><o(jì)utputCachedefaultProvider="AspNetInternalProvider"><providers><addname="MyOutputCacheProvider"type="_19_1.MyOutputCacheProvider,19-1"/></providers></outputCache></caching>默認(rèn)情況下,ASP.NET4中所有的HTTP響應(yīng)、生成的網(wǎng)頁以及控件都使用內(nèi)存輸出緩存,其中defaultProvider屬性被默認(rèn)設(shè)置為AspNetInternalProvider。當(dāng)然,可以更改Web應(yīng)用程序中所使用的默認(rèn)輸出緩存提供程序,這是通過為defaultProvider指定一個(gè)不同的提供程序名稱實(shí)現(xiàn)的,如下面的代碼所示。<caching><o(jì)utputCachedefaultProvider="MyOutputCacheProvider"><providers><addname="MyOutputCacheProvider"type="_19_1.MyOutputCacheProvider,19-1"/></providers></outputCache></caching>此外,還可以針對(duì)每個(gè)控件和每個(gè)請(qǐng)求選擇不同的輸出緩存提供程序。為不同的Web用戶控件選擇不同的輸出緩存提供程序的最簡單的方法就是在用戶控件的指令中以聲明方式使用新的ProviderName屬性,如下面的代碼所示。<%@ControlLanguage="C#"AutoEventWireup="true"CodeBehind="MyOutputCacheProviderUserControl.ascx.cs"Inherits="_19_1.MyOutputCacheProviderUserControl"%><%@OutputCacheDuration="30"VaryByParam="none"ProviderName="MyOutputCacheProvider"%><asp:LabelID="Label1"runat="server"/>關(guān)于可擴(kuò)展輸出緩存,將在第19章中詳細(xì)闡述。2.預(yù)加載Web應(yīng)用程序預(yù)加載功能提供了一種可控方法,用于啟動(dòng)應(yīng)用程序池,初始化ASP.NET應(yīng)用程序,然后接受HTTP請(qǐng)求。通過這種方法,可以在處理第一項(xiàng)HTTP請(qǐng)求之前初始化開銷很大的應(yīng)用程序。例如,可以使用應(yīng)用程序預(yù)加載管理器初始化某個(gè)應(yīng)用程序,然后向負(fù)載平衡器發(fā)出信號(hào),告知應(yīng)用程序已初始化并做好接受HTTP流量的準(zhǔn)備。值得注意的是,該技術(shù)只能夠在WindowsServer2008R2上的IIS7.5中運(yùn)行。若要使用應(yīng)用程序預(yù)加載管理器,需要由IIS管理員通過使用applicationHost.config文件中的以下配置將IIS7.5中的應(yīng)用程序池設(shè)置為自動(dòng)啟動(dòng):<applicationPools><addname="MyApplicationPool"startMode="AlwaysRunning"/></applicationPools>由于一個(gè)應(yīng)用程序池可包含多個(gè)應(yīng)用程序,因此需要通過使用applicationHost.config文件中的以下配置分別指定要自動(dòng)啟動(dòng)的各個(gè)應(yīng)用程序:<sites><sitename="MySite"id="1"><applicationpath="/"serviceAutoStartEnabled="true"serviceAutoStartProvider="PrewarmMyCache"><!——Additionalcontent——></application></site></sites><!——Additionalcontent——><serviceAutoStartProviders><addname="PrewarmMyCache"type="MyNamespace.CustomInitialization,MyLibrary"/></serviceAutoStartProviders>如果IIS7.5服務(wù)器冷啟動(dòng)或某個(gè)應(yīng)用程序池已回收,IIS7.5將使用applicationHost.config文件中的信息確定哪些Web應(yīng)用程序必須自動(dòng)啟動(dòng)。對(duì)于每個(gè)標(biāo)記為預(yù)加載的應(yīng)用程序,IIS7.5將向ASP.NET4發(fā)送一個(gè)請(qǐng)求以啟動(dòng)該應(yīng)用程序使其處于一種狀態(tài),在該狀態(tài)下該應(yīng)用程序暫時(shí)無法接受HTTP請(qǐng)求。當(dāng)應(yīng)用程序處于這種狀態(tài)時(shí),ASP.NET將對(duì)serviceAutoStartProvider特性定義的類型進(jìn)行實(shí)例化并調(diào)入其公共入口點(diǎn)。通過實(shí)現(xiàn)IProcessHostPreloadClient接口,可以創(chuàng)建具有所需入口點(diǎn)的托管預(yù)加載類型。3.永久重定向頁面對(duì)于頁面的重定向,ASP.NET4增加了一個(gè)RedirectPermanent方法,它可以方便地發(fā)出HTTP301(“永久移動(dòng)”)響應(yīng),如下面的示例所示:RedirectPermanent("/Main.aspx");識(shí)別永久重定向的搜索引擎及其他用戶代理將存儲(chǔ)與內(nèi)容關(guān)聯(lián)的新URL,從而消除瀏覽器用于臨時(shí)重定向的不必要的往返。4.會(huì)話狀態(tài)壓縮默認(rèn)情況下,ASP.NET提供兩個(gè)用于存儲(chǔ)整個(gè)Web場中會(huì)話狀態(tài)的選項(xiàng):第一個(gè)選項(xiàng)是一個(gè)調(diào)用進(jìn)程外會(huì)話狀態(tài)服務(wù)器的會(huì)話狀態(tài)提供程序;第二個(gè)選項(xiàng)是一個(gè)在MicrosoftSQLServer數(shù)據(jù)庫中存儲(chǔ)數(shù)據(jù)的會(huì)話狀態(tài)提供程序。由于這兩個(gè)選項(xiàng)均在Web應(yīng)用程序的工作進(jìn)程之外存儲(chǔ)狀態(tài)信息,因此在將會(huì)話狀態(tài)發(fā)送至遠(yuǎn)程存儲(chǔ)器之前,必須對(duì)其進(jìn)行序列化。如果會(huì)話狀態(tài)中保存了大量數(shù)據(jù),序列化數(shù)據(jù)可能會(huì)變得很大。ASP.NET4針對(duì)這兩種類型的進(jìn)程外會(huì)話狀態(tài)提供程序引入了一個(gè)新的壓縮選項(xiàng)。使用此選項(xiàng)后,在Web服務(wù)器上有多余CPU周期的應(yīng)用程序可以大大縮減序列化會(huì)話狀態(tài)數(shù)據(jù)的大小。可以使用配置文件中sessionState元素的新的compressionEnabled特性設(shè)置此選項(xiàng),當(dāng)compressionEnabled配置選項(xiàng)設(shè)置為true時(shí),ASP.NET使用.NETFrameworkGZipStream類對(duì)序列化會(huì)話狀態(tài)進(jìn)行壓縮和解壓縮。下面的示例演示了如何設(shè)置該特性:<sessionStatemode="SqlServer"sqlConnectionString="datasource=dbserver;InitialCatalog=aspnetstate"allowCustomSqlDatabase="true"compressionEnabled="true"/>5.簡潔的Web.config文件在ASP.NET4中,配置信息被移到了machine.config文件中,從而使Web.config比以前的版本更簡潔和清晰,如下面的代碼所示。<?xmlversion="1.0"?><!——FormoreinformationonhowtoconfigureyourASP.NETapplication,pleasevisithttp:///fwlink/?LinkId=169433——><configuration><system.web><compilationdebug="true"targetFramework="4.0"/></system.web></configuration>0.4.3ASP.NETWeb窗體在Web窗體方面,ASP.NET4做了以下幾方面的改進(jìn)。1.Page.MetaKeywords和Page.MetaDescription屬性MetaKeywords和MetaDescription是Page類新增加的兩個(gè)屬性,使用它們可以設(shè)置頁面對(duì)應(yīng)的meta標(biāo)記—keywords和description。2.為頁面的各個(gè)控件啟用視圖狀態(tài)Control類增加了一個(gè)新屬性ViewStateMode,可以使用該屬性來啟用單個(gè)控件的視圖狀態(tài)。3.支持最近引入的瀏覽器和設(shè)備在ASP.NET中,包含一項(xiàng)名為“瀏覽器功能”的功能,可用于確定用戶使用的瀏覽器的功能。其中,瀏覽器功能由存儲(chǔ)在HttpRequest.Browser屬性中的HttpBrowserCapabilities對(duì)象表示,有關(guān)特定瀏覽器功能的信息由瀏覽器定義文件定義。在ASP.NET4中,這些瀏覽器定義文件已更新為包含有關(guān)最近引入的瀏覽器和設(shè)備(如Chrome、BlackBerry和iPhone等)的信息。附帶的瀏覽器定義文件包括:blackberry.browser、chrome.browser、Default.browser、firefox.browser、gateway.browser、generic.browser、ie.browser、iemobile.browser、iphone.browser、opera.browser和safari.browser。除此之外,ASP.NET4還提供了一項(xiàng)名為“瀏覽器功能提供程序”的新功能。它可用于構(gòu)建一個(gè)提供程序,該提供程序還可用于編寫自定義代碼以確定瀏覽器功能。4.ASP.NET路由ASP.NET4增加了對(duì)使用Web窗體進(jìn)行路由的內(nèi)置支持。路由是ASP.NET3.5SP1引入的一項(xiàng)功能,通過此功能可將應(yīng)用程序配置為使用對(duì)用戶和搜索引擎有意義的URL,這樣無須指定物理文件名。使用這項(xiàng)功能,可以使站點(diǎn)更友好,并增加站點(diǎn)內(nèi)容被搜索引擎發(fā)現(xiàn)的概率。例如,顯示應(yīng)用程序中產(chǎn)品類別的某個(gè)頁面的URL如下面的示例所示:http://website/products.aspx?id=10通過路由功能,可以使用下面的URL呈現(xiàn)相同的信息:http://website/products/software很顯然,第二個(gè)URL不僅能使用戶了解將獲得的內(nèi)容,并且還可以顯著提高在搜索引擎搜索結(jié)果中的排名。5.設(shè)置客戶端ID在ASP.NET4中,所有的控件都增加了一個(gè)ClientIDMode屬性??梢允褂么藢傩詠碛绊慉SP.NET用于生成控件的ClientID值的算法,從而更加方便地控制控件客戶端ID。該屬性是一個(gè)枚舉類型,它有四個(gè)枚舉值,其原型如下面所示:usingSystem;namespaceSystem.Web.UI{publicenumClientIDMode{Inherit=0,AutoID=1,Predictable=2,Static=3,}}6.在GridView和ListView控件中保持行選擇在ASP.NET的早期版本中,行選擇是基于頁面的行索引進(jìn)行的。例如,如果選擇第一頁上的第三行,當(dāng)移至第二頁時(shí),則會(huì)自動(dòng)選定第二頁上的第三行。在大多數(shù)情況下,更理想的情況是不選擇第二頁上的任何行。而在ASP.NET4中,它新增加了一個(gè)EnablePersistedSelection屬性來支持持久化選擇。啟用此功能后,將基于行數(shù)據(jù)鍵選擇項(xiàng)。這意味著,如果你選擇第一頁上的第三行,當(dāng)移至第二頁時(shí),并不會(huì)選定第二頁上的任何行。當(dāng)再次返回第一頁時(shí),仍將選定第三行。其中,設(shè)置示例如下面所示:<asp:GridViewid="GridView1"runat="server"PersistedSelection="true"></asp:GridView>7.使用CSS簡化FormView控件內(nèi)容的樣式設(shè)置在ASP.NET的早期版本中,F(xiàn)ormView控件使用項(xiàng)模板呈現(xiàn)內(nèi)容。這使得在標(biāo)記中進(jìn)行樣式設(shè)置十分困難,因?yàn)榭丶?huì)呈現(xiàn)意外的表行和表單元格標(biāo)記。而在ASP.NET4中,提供了屬性RenderOuterTable,當(dāng)此屬性設(shè)置為false時(shí),則不會(huì)呈現(xiàn)表標(biāo)記,這樣也就更容易對(duì)控件內(nèi)容應(yīng)用CSS樣式。設(shè)置示例如下面的代碼所示:<asp:FormViewID="FormView1"runat="server"RenderTable="false">8.簡化ListView控件的布局ASP.NET3.5中引入的ListView控件不僅具備GridView控件的所有功能,同時(shí)還可以全面地控制輸出。但是,該控件的早期版本要求在使用中指定布局模板LayoutTemplate,如下面的示例代碼所示:<asp:ListViewID="ListView1"runat="server"><LayoutTemplate><asp:PlaceHolderID="ItemPlaceHolder"runat="server"></asp:PlaceHolder></LayoutTemplate><ItemTemplate><%Eval("Name")%></ItemTemplate></asp:ListView>而在ASP.NET4中,簡化了此控件的使用,可以不需要布局模板。即上面示例中的標(biāo)記可以替換為下面的標(biāo)記:<asp:ListViewID99="ListView1"runat="server"><ItemTemplate><%Eval("Name")%></ItemTemplate></asp:ListView>9.使用QueryExtender控件篩選數(shù)據(jù)我們知道,創(chuàng)建數(shù)據(jù)驅(qū)動(dòng)的網(wǎng)頁時(shí),一項(xiàng)十分常見的任務(wù)就是數(shù)據(jù)篩選操作。篩選操作通過僅顯示滿足指定條件的記錄,從數(shù)據(jù)源排除數(shù)據(jù)。通過篩選,可以在不影響數(shù)據(jù)集中的數(shù)據(jù)的情況下以多種方式查看這些數(shù)據(jù)。以前,篩選操作通常要求創(chuàng)建Where子句以應(yīng)用于查詢數(shù)據(jù)源的命令。但是,LinqDataSource控件的Where屬性并不公開LINQ中提供的全部功能。為了更便于篩選數(shù)據(jù)操作,ASP.NET4中新增加了一個(gè)新的QueryExtender控件,該控件可通過聲明性語法從數(shù)據(jù)源中篩選出數(shù)據(jù)。使用QueryExtender控件有以下優(yōu)點(diǎn):?與編寫Where子句相比,可提供功能更豐富的篩選表達(dá)式。?提供一種LinqDataSource和EntityDataSource控件均可使用的查詢語言。例如,如果將QueryExtender與這些數(shù)據(jù)源控件配合使用,則可以在網(wǎng)頁中提供搜索功能,而不必編寫特定于模型的Where子句或eSQL語句。?可以與LinqDataSource或EntityDataSource控件配合使用,或與第三方數(shù)據(jù)源配合使用。?支持多種可單獨(dú)和共同使用的篩選選項(xiàng)。10.對(duì)Web標(biāo)準(zhǔn)和輔助功能的增強(qiáng)支持ASP.NET控件的早期版本有時(shí)會(huì)呈現(xiàn)不符合HTML、XHTML或輔助功能標(biāo)準(zhǔn)的標(biāo)記。而在ASP.NET4中,消除了其中大部分異常情況。主要體現(xiàn)在以下幾個(gè)方面:(1)用于可禁用控件的CSS在ASP.NET3.5中,當(dāng)將某個(gè)控件的Enabled屬性設(shè)置為false時(shí),系統(tǒng)會(huì)將一個(gè)disabled特性添加到呈現(xiàn)的HTML元素中。例如,下面的標(biāo)記將創(chuàng)建一個(gè)已禁用的Label控件:<asp:Labelid="Label1"runat="server"Text="已禁用的Label控件"Enabled="false"/>在ASP.NET3.5中,原有控件設(shè)置將生成以下HTML:<spanid="Label1"disabled="disabled">已禁用的Label控件</span>而在HTML4.01中,針對(duì)span元素將disabled特性視為無效。對(duì)于僅供顯示的元素(如span),瀏覽器通常支持呈現(xiàn)禁用的外觀,但根據(jù)輔助功能標(biāo)準(zhǔn),依賴于這種非標(biāo)準(zhǔn)行為的網(wǎng)頁并不可靠。因此,對(duì)于這些僅供顯示的元素,應(yīng)使用CSS指明已禁用的可視外觀。在默認(rèn)情況下,ASP.NET4將針對(duì)上面顯示的控件設(shè)置生成以下HTML:<spanid="Label1"class="aspNetDisabled">已禁用的Label控件</span>當(dāng)然,可以通過設(shè)置DisabledCssClass屬性來更改控件禁用時(shí)默認(rèn)呈現(xiàn)的class特性的值。也就是說,如果要使用不同于“aspNetDisabled”默認(rèn)值的類名,通??梢栽贕lobal.asax文件的Application_Start方法中放入代碼來執(zhí)行此操作,如下面的示例所示:protectedvoidApplication_Start(objectsender,EventArgse){WebControl.DisabledCssClass="customDisabledClassName";}現(xiàn)在的Label控件將生成以下HTML:<spanid="Label1"class="customDisabledClassName">已禁用的Label控件</span>(2)用于驗(yàn)證控件的CSS在ASP.NET3.5中,驗(yàn)證控件將默認(rèn)顏色red呈現(xiàn)為內(nèi)聯(lián)樣式。例如,下面的標(biāo)記創(chuàng)建一個(gè)RequiredFieldValidator控件:<asp:RequiredFieldValidatorID="RequiredFieldValidator1"runat="server"ErrorMessage="RequiredField"ControlToValidate="RadioButtonList1"/>ASP.NET3.5為驗(yàn)證程序控件呈現(xiàn)以下HTML:<spanid="RequiredFieldValidator1"style="color:Red;visibility:hidden;">RequiredFieldValidator</span>默認(rèn)情況下,ASP.NET4不會(huì)呈現(xiàn)將顏色設(shè)置為紅色的內(nèi)聯(lián)樣式。內(nèi)聯(lián)樣式僅用于隱藏或顯示驗(yàn)證程序,如下面的示例所示:<spanid="RequiredFieldValidator1"style"visibility:hidden;">RequiredFieldValidator</span>因此,ASP.NET4不會(huì)自動(dòng)以紅色顯示錯(cuò)誤消息。(3)用于隱藏字段Div元素的CSSASP.NET使用隱藏字段存儲(chǔ)狀態(tài)信息,如視圖狀態(tài)和控件狀態(tài),這些隱藏字段包含在div元素中。在ASP.NET3.5中,此div元素沒有class特性或id特性。因此,影響所有div元素的CSS規(guī)則可能會(huì)在無意中導(dǎo)致此div變?yōu)榭梢姞顟B(tài)。為避免上面這種問題,ASP.NET4使用一個(gè)CSS類呈現(xiàn)隱藏字段的div元素,該類可用于將隱藏字段div與其他元素區(qū)分開來。呈現(xiàn)的HTML如下所示:<divclass="aspNetHidden">(4)用于Table、Image和ImageButton控件的CSS默認(rèn)情況下,在ASP.NET3.5中,某些控件會(huì)將所呈現(xiàn)HTML的border特性設(shè)置為0。下面的示例顯示了由ASP.NET3.5中的Table控件生成的HTML:<tableid="Table2"border="0">Image控件和ImageButton控件也會(huì)這樣,但由于此設(shè)置完全沒有必要,而且會(huì)提供應(yīng)通過使用CSS提供的可視格式設(shè)置信息,因此,在ASP.NET4中未生成該特性。(5)用于UpdatePanel和UpdateProgress控件的CSS在ASP.NET3.5中,UpdatePanel和UpdateProgress控件不支持expando特性。因此,無法針對(duì)它們呈現(xiàn)的HTML元素設(shè)置CSS類。而在ASP.NET4中,這些控件已更改為接受expando特性,如下面的示例所示:<asp:UpdatePanelrunat="server"class="myStyle"></asp:UpdatePanel>下面是此標(biāo)記呈現(xiàn)的HTML:<divid="ctl00_MainContent_UpdatePanel1"class="expandoclass"></div>(6)消除不需要的外部表在ASP.NET3.5中,F(xiàn)ormView、Login、PasswordRecovery與ChangePassword控件呈現(xiàn)的HTML包裝在一個(gè)table元素中,該元素的用途是將內(nèi)聯(lián)樣式應(yīng)用于整個(gè)控件。如果使用模板自定義這些控件的外觀,則可以在你在模板中提供的標(biāo)記中指定CSS樣式。在這種情況下,不需要額外的外部表。在ASP.NET4中,通過將新的RenderOuterTable屬性設(shè)置為false,可以避免呈現(xiàn)表。(7)向?qū)Э丶牟季帜0逶贏SP.NET3.5中,Wizard和CreateUserWizard控件可生成用于可視格式設(shè)置的HTMLtable元素。在ASP.NET4中,可以使用LayoutTemplate元素指定布局。如果這樣做,將不生成HTMLtable元素。在模板中,可創(chuàng)建占位符控件來指示應(yīng)在該控件中動(dòng)態(tài)插入項(xiàng)的位置。(8)用于CheckBoxList和RadioButtonList控件的新增HTML格式設(shè)置選項(xiàng)ASP.NET3.5使用HTML表元素為CheckBoxList和RadioButtonList控件的輸出設(shè)置格式。為提供不使用表進(jìn)行可視格式設(shè)置的替代方法,ASP.NET4為RepeatLayout枚舉增加了兩個(gè)選項(xiàng):?UnorderedList此選項(xiàng)指定使用ul和li元素,而不是表對(duì)HTML輸出進(jìn)行格式設(shè)置。?OrderedList此選項(xiàng)指定使用ol和li元素,而不是表對(duì)HTML輸出進(jìn)行格式設(shè)置。(9)Table控件的頁眉和頁腳元素在ASP.NET3.5中,可通過設(shè)置TableHeaderRow類和TableFooterRow類的TableSection屬性將Table控件配置為呈現(xiàn)thead和tfoot元素。而在ASP.NET4中,這些屬性均默認(rèn)設(shè)置為適當(dāng)?shù)闹怠#?0)Menu控件的CSS和ARIA支持在ASP.NET3.5中,Menu控件使用HTMLtable元素進(jìn)行可視化格式設(shè)置,在某些配置中無法通過鍵盤訪問該控件。在ASP.NET4中,通過以下方法解決了這些問題,并提高了可訪問性:?生成的HTML具有無序列表((u和li元素)的結(jié)構(gòu);?使用CSS進(jìn)行可視化格式設(shè)置;?菜單按照ARIA標(biāo)準(zhǔn)實(shí)現(xiàn)鍵盤訪問,可以使用箭頭鍵在菜單項(xiàng)中進(jìn)行導(dǎo)航;?ARIA角色和屬性特性將添加到生成的HTML中。Menu控件的樣式呈現(xiàn)在頁面頂部的style塊中,而不是與呈現(xiàn)的HTML元素內(nèi)聯(lián)呈現(xiàn)。如果要使用單獨(dú)的CSS文件以便于修改菜單樣式,可以將Menu控件的新的IncludeStyleBlock屬性設(shè)置為false,這樣便不會(huì)生成樣式塊。(11)用于HtmlForm控件的有效XHTML在ASP.NET3.5中,HtmlForm控件(由<formrunat=“server”>標(biāo)記隱式創(chuàng)建)呈現(xiàn)的HTMLform元素同時(shí)具有name和id特性。但因?yàn)閚ame特性在XHTML1.1中已棄用,因此該控件在ASP.NET4中不會(huì)呈現(xiàn)name特性。(12)保留控件呈現(xiàn)中的向后兼容性現(xiàn)有ASP.NET網(wǎng)站中的代碼可能會(huì)假定控件是以ASP.NET3.5中的方式呈現(xiàn)HTML。為避免在將該站點(diǎn)升級(jí)為ASP.NET4時(shí)出現(xiàn)向后兼容性問題,可以在升級(jí)站點(diǎn)后讓ASP.NET繼續(xù)以ASP.NET3.5中的方式生成HTML。為此,可以在ASP.NET4網(wǎng)站的Web.config文件中將pages元素的controlRenderingCompatibilityVersion特性設(shè)置為“3.5”,如下面的示例所示:<system.web><pagescontrolRenderingCompatibilityVersion="3.5"/></system.web>如果省略上述設(shè)置,默認(rèn)值將與網(wǎng)站的目標(biāo)ASP.NET版本相同。0.4.4動(dòng)態(tài)數(shù)據(jù)動(dòng)態(tài)數(shù)據(jù)是在.NETFramework3.5SP1版本中引入的,它為創(chuàng)建數(shù)據(jù)驅(qū)動(dòng)應(yīng)用程序提供了許多增強(qiáng)功能:?快速生成數(shù)據(jù)驅(qū)動(dòng)網(wǎng)站的RAD體驗(yàn)。?基于數(shù)據(jù)模型中定義的約束的自動(dòng)驗(yàn)證。?可以使用屬于動(dòng)態(tài)數(shù)據(jù)項(xiàng)目中的字段模板輕松更改為GridView和DetailsView控件中的字段生成的標(biāo)記。而在ASP.NET4中,動(dòng)態(tài)數(shù)據(jù)的功能得到了進(jìn)一步增強(qiáng),主要表現(xiàn)在以下幾個(gè)方面:1)在現(xiàn)有Web應(yīng)用中對(duì)單個(gè)數(shù)據(jù)綁定控件啟用動(dòng)態(tài)數(shù)據(jù)。其中,對(duì)數(shù)據(jù)綁定控件啟用動(dòng)態(tài)數(shù)據(jù)時(shí),你可以獲得以下三個(gè)好處:?動(dòng)態(tài)數(shù)據(jù)能讓你在運(yùn)行時(shí)為數(shù)據(jù)控件中的字段提供默認(rèn)值;?你可以在不創(chuàng)建和注冊數(shù)據(jù)模型的情況下與數(shù)據(jù)庫交互;?你可以不必編寫任何代碼而自動(dòng)驗(yàn)證用戶輸入的數(shù)據(jù)。2)用于URL和電子郵件地址的新字段模板。在ASP.NET4中,引入了兩個(gè)新的內(nèi)置字段模板EmailAddress.ascx和Url.ascx,這兩個(gè)模板用于使用DataTypeAttribute特性標(biāo)記為EmailAddress或Url的字段。對(duì)于EmailAddress對(duì)象,該字段顯示為使用mailto:協(xié)議創(chuàng)建的超鏈接,當(dāng)用戶單擊該鏈接時(shí),將打開用戶的電子郵件客戶端并創(chuàng)建一條主干消息;而對(duì)于Url對(duì)象,該字段顯示為普通超鏈接。下面的示例顯示了如何標(biāo)記字段:[DataType(DataType.EmailAddress)]publicobjectHomeEmail{get;set;}[DataType(DataType.Url)]publicobjectWebsite{get;set;}3)使用DynamicHyperLink控件創(chuàng)建鏈接。使用新的DynamicHyperLink控件,可輕松生成指向動(dòng)態(tài)數(shù)據(jù)站點(diǎn)中的頁面的鏈接。4)數(shù)據(jù)模型中的繼承支持。5)多對(duì)多關(guān)系支持(僅限于EntityFramework)。EntityFramework為表之間的多對(duì)多關(guān)系提供了多種支持,這些支持是通過將關(guān)系公開為Entity對(duì)象的集合實(shí)現(xiàn)的。增加了新的字段模板((MnyToMany.ascx和ManyToMany_Edit.ascx),以便為顯示和編輯多對(duì)多關(guān)系中涉及的數(shù)據(jù)提供支持。6)增加了DisplayAttribute,可以對(duì)字段顯示方式進(jìn)行更多控制。其中,DisplayAttribute類可以指定用于顯示字段的更多選項(xiàng),如字段顯示的順序和字段是否將用作篩選器。另外,該特性還提供對(duì)以下內(nèi)容的獨(dú)立控制:GridView控件中用于標(biāo)簽的名稱、DetailsView控件中使用的名稱、字段的幫助文本,以及用于字段的水?。ㄇ疤崾亲侄谓邮芪谋据斎耄?)增加了EnumDataTypeAttribute,用于將字段映射到枚舉。8)增強(qiáng)的篩選器支持。篩選支持已重新編寫為使用Web表單的新的QueryExtender功能。這樣,可以直接創(chuàng)建篩選器,而無須具備將與篩選器一起使用的數(shù)據(jù)源控件的知識(shí)。除這些擴(kuò)展功能外,篩選器還變?yōu)槟0蹇丶?,允許你添加新的篩選器。最后,使用前面提到的DisplayAttribute類可以覆蓋默認(rèn)篩選器,這與使用UIHint覆蓋列的默認(rèn)字段模板的方法是相同的。0.4.5ASP.NETChart控件通過使用ASP.NETChart服務(wù)器控件,可以創(chuàng)建包含用于復(fù)雜統(tǒng)計(jì)分析或財(cái)務(wù)分析的簡單直觀圖表的ASP.NET應(yīng)用程序。其中,Chart控件支持下列功能:1)數(shù)據(jù)系列、圖表區(qū)域、軸、圖例、標(biāo)簽、標(biāo)題等。2)數(shù)據(jù)綁定。3)數(shù)據(jù)操作,例如復(fù)制、拆分、合并、對(duì)齊、分組、排序、搜索和篩選。4)統(tǒng)計(jì)公式和財(cái)務(wù)公式。5)高級(jí)圖表外觀,例如三維、抗鋸齒、照明和透視。6)事件和自定義項(xiàng)。7)交互性和ASP.NETAJAX。8)支持AJAX內(nèi)容傳遞網(wǎng)絡(luò),該功能為你提供了將ASP.NETAJAX庫和jQuery腳本添加到Web應(yīng)用程序的最佳方式。0.4.6MicrosoftAJAX的功能在MicrosoftAJAX中,可以更加輕松地創(chuàng)建完全基于客戶端的AJAX應(yīng)用程序。其中,它主要包括下列功能:1)可以通過服務(wù)器以HTML的形式呈現(xiàn)JSON數(shù)據(jù)。2)提供客戶端模板,使你可以僅使用基于瀏覽器的代碼顯示數(shù)據(jù)。3)聲明式客戶端控件安裝和行為。4)提供客戶端DataView控件,用于創(chuàng)建動(dòng)態(tài)數(shù)據(jù)驅(qū)動(dòng)的UI。5)數(shù)據(jù)與HTML元素或客戶端控件之間的實(shí)時(shí)綁定。6)客戶端命令冒泡。7)WCF和WCF數(shù)據(jù)服務(wù)與客戶端腳本的完全集成,包括客戶端更改跟蹤。除了MicrosoftAJAX庫之外,ASP.NET4還與jQuery腳本庫提供很好的集成,供你更加方便地使用jQuery腳本庫進(jìn)行開發(fā)。0.4.7ASP.NETMVCASP.NETMVC通過使用模型-視圖-控制器((MC)模式降低了應(yīng)用程序?qū)又g的依賴性,從而幫助Web開發(fā)人員生成易于維護(hù)的基于標(biāo)準(zhǔn)的優(yōu)秀網(wǎng)站。MVC還提供對(duì)頁標(biāo)記的全面控制。另外,它在本質(zhì)上支持測試驅(qū)動(dòng)開發(fā)((TD),因而提高了可測試性。其中,ASP.NETMVC2主要在下列幾方面增強(qiáng)了功能:強(qiáng)類型Html輔助方法、模板化輔助方法、區(qū)域、異步控制器、默認(rèn)值特性、基于模型驗(yàn)證、客戶端驗(yàn)證和Html.RenderAction方法。0.5MicrosoftVisualStudio2010集成開發(fā)環(huán)境通過前面的學(xué)習(xí),相信你已經(jīng)對(duì)MicrosoftVisualStudio2010集成開發(fā)環(huán)境有一定的了解,現(xiàn)在就來剖析一下MicrosoftVisualStudio2010集成開發(fā)環(huán)境的各個(gè)組成部分以及它們各自的功能。0.5.1解決方案資源管理器解決方案資源管理器從本質(zhì)上說是一個(gè)可視化的文檔管理系統(tǒng),你可以把它看做是整個(gè)項(xiàng)目的大管家,如圖0-8所示。圖0-8解決方案資源管理器在這里,不僅可以查看整個(gè)項(xiàng)目的項(xiàng)目文件,還可以管理項(xiàng)目解決方案,并在項(xiàng)目解決方案下根據(jù)需要任意添加、修改、刪除子項(xiàng)目或者其他雜項(xiàng)文件等。同樣,也可以對(duì)項(xiàng)目下的文件進(jìn)行各種操作,所有的這些操作都可以通過鼠標(biāo)右鍵來完成。例如想要?jiǎng)h除一個(gè)文件,只需要在解決方案資源管理器里面選中這個(gè)文件,然后按Delete鍵即可。0.5.2控件工具箱控件工具箱屬于VisualStudio的一大特色,它為我們的開發(fā)提供許多有用的控件。在Web項(xiàng)目的開發(fā)中,利用工具箱可以不需要編寫任何代碼,只使用鼠標(biāo)“拖曳”的操作方式就能夠完成Web表單的界面設(shè)計(jì),并且這些控件都是跨瀏覽器和跨設(shè)備運(yùn)行的,如圖0-9所示。圖0-9控件工具箱工具箱的內(nèi)容依賴于你當(dāng)前正在使用的設(shè)計(jì)器,也同樣依賴于你當(dāng)前的項(xiàng)目類型。你可以自定義工具箱的標(biāo)簽以及標(biāo)簽內(nèi)的項(xiàng)??梢杂覔魳?biāo)簽頂部來選擇“RenameTab”、“AddTab”或者“DeleteTab”標(biāo)簽,在工具箱的空白處單擊右鍵并選“ChooseItem”,就可以添加一個(gè)或者多個(gè)項(xiàng)。同時(shí),還可以把一個(gè)項(xiàng)從一個(gè)標(biāo)簽拖放到另一個(gè)標(biāo)簽內(nèi)。0.5.3服務(wù)器資源管理器服務(wù)器資源管理器提供了一個(gè)樹狀功能列表,它允許你使用當(dāng)前機(jī)器上(以及網(wǎng)絡(luò)上的其他服務(wù)器)各種類型的服務(wù)。類似于計(jì)算機(jī)管理工具,一般使用服務(wù)器資源管理器來了解機(jī)器上可用的事件日志、消息隊(duì)列、性能計(jì)數(shù)器、系統(tǒng)服務(wù)和SQLServer數(shù)據(jù)庫,如圖0-10所示。圖0-10服務(wù)器資源管理器其實(shí),它不僅可以讓我們快速地瀏覽服務(wù)器資源,同時(shí)也可以和這些資源交互。比如說,可以使用服務(wù)器資源管理器來創(chuàng)建一個(gè)數(shù)據(jù)庫,執(zhí)行查詢語句,并且編寫存儲(chǔ)過程,所有這些操作都類似于使用SQLServer提供的企業(yè)管理器的操作。如果想要了解對(duì)選定的項(xiàng)可進(jìn)行何種操作,用鼠標(biāo)右擊該項(xiàng)即可。0.5.4錯(cuò)誤列表與任務(wù)列表錯(cuò)誤列表和任務(wù)列表是同一個(gè)窗口的兩種不同表現(xiàn)形式。其中,錯(cuò)誤列表提供VisualStudio通過檢測有問題的代碼而產(chǎn)生的出錯(cuò)信息。錯(cuò)誤列表以及任務(wù)列表的每一項(xiàng)都由一個(gè)文本描述和一個(gè)鏈接組成,這個(gè)鏈接能幫助你找到項(xiàng)目里面出錯(cuò)程序代碼的指定行。作為VisualStuido的默認(rèn)設(shè)置,當(dāng)生成一個(gè)有錯(cuò)誤的項(xiàng)目的時(shí)候,錯(cuò)誤列表會(huì)自動(dòng)出現(xiàn),如圖0-11所示。圖0-11錯(cuò)誤列表由圖0-11可知,錯(cuò)誤列表有三個(gè)選項(xiàng)按鈕。其中,“Error”表示程序的一些嚴(yán)重性比較高的錯(cuò)誤,如果不修改這些錯(cuò)誤程序?qū)o法編譯成功;“Warnings”表示軟性錯(cuò)誤,也可以看著是潛在性錯(cuò)誤,比如定義了多余的在程序里面沒有用到的變量、在頁面設(shè)計(jì)的時(shí)候用到了不符合標(biāo)準(zhǔn)的HTML標(biāo)簽等,這種錯(cuò)誤不影響程序的編譯,但會(huì)帶來潛在的錯(cuò)誤。任務(wù)列表顯示一個(gè)類似的帶to-do任務(wù)的視圖,以及你正在跟蹤的其他代碼注解??梢允褂谩癈trl+W,T”快捷鍵來打開任務(wù)列表,如圖0-12所示。圖0-12任務(wù)列表任務(wù)可以分為兩種:用戶任務(wù)和注釋??梢栽谌蝿?wù)列表頂部的下拉列表框中選擇想要看的任務(wù)。用戶任務(wù)是那些你明確添加到任務(wù)列表中的項(xiàng)??梢詥螕羧蝿?wù)列表中的“CreateUserTask”圖標(biāo)來創(chuàng)建用戶任務(wù)。你可以給任務(wù)一個(gè)基本的描述、優(yōu)先級(jí)以及一個(gè)對(duì)勾框來表示其是否已經(jīng)完成。要移動(dòng)到相應(yīng)的代碼行,只需雙擊上面新的任務(wù)項(xiàng)即可。注意,如果刪除了注釋,這個(gè)對(duì)應(yīng)的任務(wù)項(xiàng)也會(huì)被自動(dòng)刪除。0.5.5頁面設(shè)計(jì)窗口與代碼編輯窗口在VisualStudio中,頁面設(shè)計(jì)窗口與代碼編輯窗口共享一個(gè)窗口,可以在這里設(shè)計(jì)頁面、編寫HTML代碼、編寫C#以及設(shè)計(jì)類圖等。在Web應(yīng)用程序的頁面設(shè)計(jì)中,可以使用“拖曳”的方式將Web服務(wù)器控件拖曳到頁面設(shè)計(jì)窗口來完成頁面的布局設(shè)計(jì),同時(shí)它會(huì)自動(dòng)生成相應(yīng)的頁面HTML代碼,如圖0-13所示。當(dāng)要修改Web服務(wù)器控件的相關(guān)屬性時(shí),只需要選中該Web服務(wù)器控件,然后在控件的屬性設(shè)置窗口就可以設(shè)置控件的屬性了。在這里還可以為控件添加相應(yīng)的事件。當(dāng)然,也可以通過鼠標(biāo)雙擊控件的方法來為控件添加事件,如圖0-14所示。圖0-13選擇“Design”選項(xiàng)圖0-14控件的屬性設(shè)置窗口在圖0-13中,我們發(fā)現(xiàn)頁面設(shè)計(jì)器下面有三個(gè)按鈕:Design、Split和Source,它們各自代表什么意思呢?其實(shí),這是VisualStudio提供的三種Web頁面的設(shè)計(jì)模式,分別適合于不同設(shè)計(jì)喜好的設(shè)計(jì)人員:1)Design模式:如圖0-13所示,它提供純頁面式的設(shè)計(jì),頁面元素拖曳上去后就能夠馬上看到設(shè)計(jì)的效果,很適合那種不喜歡寫HTML代碼的設(shè)計(jì)人員。2)Source模式:如圖0-15所示,它提供純HTML代碼方式的設(shè)計(jì)模式,這適合于那些對(duì)HTML代碼比較熟悉的設(shè)計(jì)人員。3)Split模式:如圖0-16所示,它合并了上面兩種設(shè)計(jì)模式,讓你既能夠看頁面的設(shè)計(jì)效果又能夠看到頁面的HTML代碼。圖0-15選擇“Source”選項(xiàng)圖0-16選擇“Split”選項(xiàng)0.6本章小結(jié)在本章中,首先了解了Microsoft.NET的概念和ASP.NET語言的特點(diǎn);在對(duì)ASP.NET語言發(fā)展歷程的討論里讓你充分了解ASP.NET的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論