資源描述:
《第 6 章 構(gòu)建 web 應(yīng)用程序new》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第6章構(gòu)建Web應(yīng)用程序大多數(shù)VisualBasic程序員都至少會(huì)進(jìn)行一些Web開發(fā)。開發(fā)Web應(yīng)用程序解決方案有兩個(gè)常見的原因,一是為了使用一個(gè)簡單的部署模型,二是為了擁有最廣泛的潛在用戶群(即任何使用瀏覽器的人)。雖然Microsoft.NETFramework的每個(gè)后續(xù)版本都使部署MicrosoftWindows應(yīng)用程序更為簡單,但是Web應(yīng)用程序在許多情況下仍然具有部署和訪問優(yōu)勢。VisualStudio2005中熟悉的事件驅(qū)動(dòng)、拖拉開發(fā)范型允許根據(jù)目標(biāo)用戶和期望部署模型(而不是開發(fā)團(tuán)隊(duì)的Web編程經(jīng)驗(yàn))來構(gòu)建W
2、eb應(yīng)用程序。在Web編程的早期,程序員構(gòu)建的應(yīng)用程序解析傳入的HTTP請(qǐng)求,并利用字符串操作生成HTML輸出。使用庫(如用于Perl的CGI庫)來處理常見任務(wù),但是,正確地解析和處理請(qǐng)求的責(zé)任最終卻落到了程序員身上。隨著時(shí)間的推移,這種開發(fā)范型不斷發(fā)展,并出現(xiàn)了新的Web開發(fā)技術(shù),例如用于生成HTML輸出的Javaservlets或ASP與COM組件的組合。這些更新的技術(shù)通常要求程序員在多個(gè)開發(fā)環(huán)境中工作,它們?nèi)匀恍枰S多代碼來生成基本的HTML輸出,而得到的應(yīng)用程序很難調(diào)試、維護(hù)和部署。然后,.NETFramewor
3、k(包括ASP.NET1.0)和MicrosoftVisualStudio.NET的發(fā)布為開發(fā)人員引入了更好的方法,以使用服務(wù)器控件、事件處理程序、用任何.NET語言編寫的代碼隱藏類以及高效的單向數(shù)據(jù)綁定來構(gòu)建Web應(yīng)用程序。VisualStudio2005構(gòu)建于VisualStudio.NET引入的創(chuàng)新基礎(chǔ)之上,使得無論是經(jīng)驗(yàn)豐富的開發(fā)人員還是Web開發(fā)新手,進(jìn)行Web開發(fā)都變得比以前更容易。對(duì)于Web開發(fā)人員而言,ASP.NET是一個(gè)巨大的飛躍。ASP.NET2.0則是另一個(gè)巨大的飛躍。改進(jìn)的一個(gè)主要方面是顯著減少了
4、常見任務(wù)(如數(shù)據(jù)訪問)所需的代碼行數(shù)。應(yīng)用程序:零代碼Web站點(diǎn)此應(yīng)用程序演示ASP.NET2.0中的改進(jìn),使您能夠創(chuàng)建一個(gè)強(qiáng)大的交互Web應(yīng)用程序,而無需編寫任何MicrosoftVisualBasic代碼。新概念大多數(shù)重要的Web應(yīng)用程序都需要某種數(shù)據(jù)存儲(chǔ),不管它是MicrosoftSQLServer數(shù)據(jù)庫、MicrosoftAccess數(shù)據(jù)文件、XML文件還是某些其他類型的數(shù)據(jù)源。根據(jù)應(yīng)用程序的復(fù)雜程度,UI顯示直接從數(shù)據(jù)存儲(chǔ)檢索的數(shù)據(jù),或者從一組業(yè)務(wù)對(duì)象獲得的數(shù)據(jù)。在ASP.NET1.1中,即使一個(gè)簡單的Web頁
5、(用于顯示直接來自數(shù)據(jù)庫的產(chǎn)品列表)也需要大量代碼來連接數(shù)據(jù)庫,并將數(shù)據(jù)綁定到服務(wù)器控件。在ASP.NET2.0中,許多常見的數(shù)據(jù)訪問情況可以只通過聲明ASPX標(biāo)記來實(shí)現(xiàn)—不要求編程。ASP.NET2.0中新的“零代碼”功能涵蓋最常見的數(shù)據(jù)訪問情況。最簡單的情況是使用一個(gè)服務(wù)器控件顯示數(shù)據(jù)源數(shù)據(jù)的單向數(shù)據(jù)綁定。這種情況的常見例子是在下拉列表中顯示州/省/市/自治區(qū)列表。一種更復(fù)雜的情況是使用多個(gè)控件的單向數(shù)據(jù)綁定,其中在一個(gè)控件中選擇的值會(huì)影響在另一個(gè)依賴控件中顯示的值—例如,在下拉列表中顯示國家/地區(qū)列表,然后當(dāng)選中某
6、個(gè)國家/地區(qū)時(shí),在另一個(gè)下拉列表中顯示該國家特有的州/省/市/自治區(qū)列表。對(duì)于某些服務(wù)器控件,ASP.NET2.0甚至包括內(nèi)置的排序和分頁功能。ASP.NET2.0中令人印象最深刻的“零代碼”功能指:能夠輕松地提供添加、更新和刪除數(shù)據(jù)的用戶界面和數(shù)據(jù)訪問邏輯,而無需像在ASP.NET1.1中一樣編寫這些基本操作所需的基礎(chǔ)結(jié)構(gòu)代碼。聲明性語言零代碼Web站點(diǎn)這個(gè)短語可能有點(diǎn)用詞不當(dāng),因?yàn)锳SP.NET標(biāo)記語言(即ASPX語言)正逐漸被認(rèn)為是一種聲明性編程語言。如果您具有嚴(yán)格的命令式編程背景,即使用過諸如C、S、Java和V
7、isualBasic等編程語言,那么將ASPX視為一種編程語言也許聽起來有點(diǎn)令人困惑,因?yàn)槁暶餍跃幊淌且环N很不一樣的編程模型。對(duì)于許多程序員而言,基于XML的語言“感覺”根本不像一種編程語言。命令性編程往往相當(dāng)直接地意味著非常低級(jí)的計(jì)算機(jī)操作方式。在任何特定的時(shí)刻,程序都處于通過執(zhí)行所提供的指令而達(dá)到的特定狀態(tài)。通過執(zhí)行其他指令,程序會(huì)以一個(gè)新狀態(tài)結(jié)束。當(dāng)用命令性語言編程時(shí),您通過提供實(shí)現(xiàn)目標(biāo)所需的特定操作(即,告訴計(jì)算機(jī)如何實(shí)現(xiàn)目標(biāo))來實(shí)現(xiàn)期望的目標(biāo)。當(dāng)用聲明性語言編程時(shí),您指定目標(biāo),而編譯器或解釋器使用它預(yù)定義的算法
8、來確定實(shí)現(xiàn)該目標(biāo)的適當(dāng)操作。如果不習(xí)慣考慮聲明性編程,這些概念可能聽起來有點(diǎn)陌生,但您可能已經(jīng)不知不覺地成為了一名更有經(jīng)驗(yàn)的以聲明性方式編程的程序員??紤]以下聲明性代碼:SELECT*FROMProductsWHEREProductID=55您可能會(huì)認(rèn)為這是SQL代碼。SQL是一個(gè)非常流行的聲明性語言實(shí)例。SELEC