向書(shū)本學(xué)習(xí),還要向?qū)嵺`學(xué)習(xí)、向生活學(xué)習(xí)。消化已有知識(shí),
而且要力求有所發(fā)現(xiàn)、有所發(fā)明、有所創(chuàng)造
2019/4/5 9:28:35
大約有將近一百萬(wàn)名開(kāi)發(fā)人員使用了.NET Framework的第一個(gè)版本來(lái)開(kāi)發(fā)網(wǎng)站。所以在2003年的夏天,當(dāng)從Microsoft傳出將有新版本發(fā)布的傳聞時(shí),許多人的耳朵都豎了起來(lái),這個(gè)新的版本將使得創(chuàng)建ASP.NET頁(yè)面所需的代碼行數(shù)減少70%。像這樣大規(guī)模的提高生產(chǎn)效率在程序設(shè)計(jì)中是不多見(jiàn)的。當(dāng)ASP.NET 2.0的代碼樣例在2003年秋的Microsoft專業(yè)開(kāi)發(fā)人員大會(huì)(Microsoft Professional Developer’s Conference)上演示時(shí),結(jié)果比預(yù)計(jì)的還要好。以前使用ASP.NET的第一個(gè)版本程序員需要花費(fèi)幾個(gè)小時(shí)才能做出的頁(yè)面,現(xiàn)在使用ASP.NET 2.0只需要幾分鐘就完成了。簡(jiǎn)單來(lái)說(shuō),在.NET Framework 2.0最終版本發(fā)布之后,任何繼續(xù)使用第一個(gè)版本創(chuàng)建ASP.NET頁(yè)面的程序人員都將花費(fèi)大量的額外時(shí)間才能達(dá)到相同的結(jié)果。
也許就像其他任何領(lǐng)域一樣,ASP.NET開(kāi)發(fā)提供的優(yōu)勢(shì)是能夠方便地將數(shù)據(jù)集成進(jìn)頁(yè)面。程序員不再需要知道詳細(xì)的連接、命令以及數(shù)據(jù)閱讀器和數(shù)據(jù)適配器對(duì)象,就能執(zhí)行普通數(shù)據(jù)任務(wù)了。對(duì)于初學(xué)者掌握能力,ASP.NET 2.0使得基本數(shù)據(jù)的使用簡(jiǎn)單易學(xué),并且有能力進(jìn)行更復(fù)雜的數(shù)據(jù)應(yīng)用。
.NET Framework
Microsoft開(kāi)發(fā)出了作為基本原理的.NET和一系列技術(shù),用于在互聯(lián)網(wǎng)中讓計(jì)算機(jī)共同工作??偟哪繕?biāo)就是讓信息和進(jìn)程在大范圍的系統(tǒng)和設(shè)備之間順暢地交流。.NET不是一種語(yǔ)言,也不是一個(gè)特別的產(chǎn)品。更確切地說(shuō),它是一套標(biāo)準(zhǔn)和規(guī)范,并已經(jīng)應(yīng)用于自2002年以來(lái)Microsoft發(fā)布的所有產(chǎn)品中。
.NET包含了一種使用開(kāi)放標(biāo)準(zhǔn)的XML格式交換信息的標(biāo)準(zhǔn)化格式??蓴U(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language,XML)不需要請(qǐng)求者具備任何有關(guān)數(shù)據(jù)存儲(chǔ)如何保存信息的專門(mén)知識(shí)—— 數(shù)據(jù)都以自描述的XML格式取出。同樣地,目前幾乎所有的數(shù)據(jù)存儲(chǔ)都可以用XML來(lái)提供信息,這對(duì)于所有.NET數(shù)據(jù)客戶都具有吸引力。
.NET支持軟件的Web Services標(biāo)準(zhǔn),可請(qǐng)求在使用了開(kāi)放平臺(tái)標(biāo)準(zhǔn)的簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(Simple Object Access Protocol,SOAP)和XML的遠(yuǎn)程軟件上運(yùn)行代碼。.NET網(wǎng)站可以從另外一個(gè)網(wǎng)站上找到該網(wǎng)站所提供的服務(wù),并使用這些服務(wù)。這樣可以使得網(wǎng)站從其他的網(wǎng)站上獲得HTML、計(jì)算后的結(jié)果或者數(shù)據(jù)集。
作為.NET開(kāi)端的一部分,Microsoft發(fā)布了一套運(yùn)行時(shí)編程工具和應(yīng)用編程接口(API),稱為.NET Framework,讓開(kāi)發(fā)團(tuán)隊(duì)能夠創(chuàng)建.NET應(yīng)用程序和XML Web Services。.NET Framework由公共語(yǔ)言運(yùn)行庫(kù)(Common Language Runtime,CLR)和一套統(tǒng)一的類庫(kù)組成。
CLR為運(yùn)行的應(yīng)用程序提供了一個(gè)完全管理的執(zhí)行環(huán)境,其中包括幾個(gè)服務(wù),例如程序集裝載和卸載、進(jìn)程和內(nèi)存的管理、安全實(shí)施以及即時(shí)編譯等。CLR名稱的意思就是指能夠用多種語(yǔ)言編寫(xiě)應(yīng)用程序,并且將源代碼編譯成CLR能夠讀懂并運(yùn)行的中間語(yǔ)言,而無(wú)需考慮原來(lái)所使用的語(yǔ)言。這種“語(yǔ)言獨(dú)立性”就是CLR的關(guān)鍵特性(也是ASP.NET的特性),它允許開(kāi)發(fā)人員使用自己喜歡的語(yǔ)言工作,比如C#、VB或者Cobol,都能夠獲得.NET Framework的常用特性。
.NET Framework還包括了一套類庫(kù),這套類庫(kù)提供了每一個(gè)應(yīng)用程序所需的常用功能??梢允褂?NET Framework支持的任何語(yǔ)言來(lái)訪問(wèn)這些類庫(kù)。由這些類庫(kù)提供的服務(wù)(以及相應(yīng)的命名空間)如下:
· 基本類型(System)
· 輸入/輸出(System.IO)
· 數(shù)據(jù)訪問(wèn)(System.Data)
· 安全(System.Security)
· 數(shù)據(jù)結(jié)構(gòu)(System.Collections)
· 配置(System.Configuration)
· 連網(wǎng)(System.Net)
· 反射(System.Reflection)
· 全球化(System.Globalization)
· 繪畫(huà)和制圖(System.Drawing)
· 跟蹤和診斷(System.Diagnostics)
· 窗口(客戶端)應(yīng)用程序模型(System.Windows.Forms)
· Web應(yīng)用程序模型(System.Web)
注意,.NET Framework包含了兩個(gè)應(yīng)用程序編程模型,一個(gè)用于客戶端應(yīng)用程序(System.Windows.Forms),另一個(gè)用于基于Web的應(yīng)用程序(System.Web)。本書(shū)著重講解后一個(gè)模型。.NET Framework中的System.Web命名空間是.NET Framework的一部分,它提供了ASP.NET功能。換句話說(shuō),ASP.NET就是構(gòu)建應(yīng)用程序的所有.NET Framework的一部分。
ASP.NET開(kāi)發(fā)
ASP.NET是一種用于創(chuàng)建基于Web的應(yīng)用程序的編程模型。從本質(zhì)上來(lái)說(shuō),運(yùn)行時(shí)和.NET Framework類庫(kù)集可以用于創(chuàng)建動(dòng)態(tài)Web頁(yè)。它需要在Web服務(wù)器的環(huán)境中運(yùn)行,例如Microsoft Internet Information Server(Microsoft互聯(lián)網(wǎng)信息服務(wù)器,IIS),并且根據(jù)服務(wù)瀏覽器請(qǐng)求指示在服務(wù)器上執(zhí)行程序。與直接由Web服務(wù)器提供的靜態(tài)HTML不同的是,ASP.NET頁(yè)面實(shí)際上是在服務(wù)器上執(zhí)行以后再產(chǎn)生結(jié)果的。頁(yè)面的最后生成也許是由許多不同的指令和/或數(shù)據(jù)源構(gòu)造的。
ASP.NET頁(yè)面以.aspx擴(kuò)展名存儲(chǔ)。頁(yè)面由程序員將文本、標(biāo)記(例如HTML)以及ASP.NET特定服務(wù)器標(biāo)記和腳本組合在一起,然后存儲(chǔ)在Web服務(wù)器上??梢詫⒋鎯?chǔ)后的ASP.NET頁(yè)面看成是一套描述如何創(chuàng)建一個(gè)HTML頁(yè)面的指令。當(dāng)該頁(yè)面被請(qǐng)求瀏覽時(shí),服務(wù)器端程序?qū)?huì)用純標(biāo)記來(lái)創(chuàng)建一個(gè)客戶端瀏覽器可以讀懂并能呈現(xiàn)(render)的頁(yè)面。因?yàn)槌尸F(xiàn)后的輸出是純標(biāo)記,所以任何瀏覽器都能夠讀懂;所有的動(dòng)態(tài)過(guò)程都發(fā)生在Web服務(wù)器端。ASP.NET特定服務(wù)器標(biāo)記非常強(qiáng)大,例如,它可以對(duì)用戶的動(dòng)作作出反應(yīng),連接至數(shù)據(jù)存儲(chǔ)以及自動(dòng)創(chuàng)建非常復(fù)雜的HTML結(jié)構(gòu)。
正像前面提到的那樣,ASP.NET只是.NET Framework的一部分,所以 ASP.NET頁(yè)面可以利用這個(gè)框架提供的所有服務(wù),包括連網(wǎng)、數(shù)據(jù)訪問(wèn)、安全以及更多其他服務(wù)。因?yàn)锳SP.NET可以使用所有這些服務(wù),所以相比以前,能夠創(chuàng)建更加豐富的Web應(yīng)用程序。只需花少量的時(shí)間來(lái)構(gòu)建所有應(yīng)用程序所需的構(gòu)建塊,而將大多數(shù)時(shí)間用在應(yīng)用程序獨(dú)有的特殊邏輯上。
ASP.NET開(kāi)發(fā)還可以在Web編程中引入了一些獨(dú)特的新技術(shù),可以在典型的動(dòng)態(tài)服務(wù)器頁(yè)面(Active Server Pages,ASP)上極大地改善開(kāi)發(fā)模式:
· 語(yǔ)言獨(dú)立性——因?yàn)锳SP.NET是.NET Framework的一部分,所以可以使用您自己選擇的語(yǔ)言來(lái)構(gòu)建ASP.NET應(yīng)用程序,例如C#、VB或J#。而典型的ASP則僅限于JScript或者VBScript頁(yè)面。
· 編譯而不是解釋——與典型的ASP在每一次頁(yè)面請(qǐng)求時(shí)都解釋編程結(jié)構(gòu)不同,ASP.NET在服務(wù)器端動(dòng)態(tài)地將頁(yè)面編譯成可以運(yùn)行得非??斓谋緳C(jī)編程指令??梢院苊黠@地看到典型的ASP頁(yè)面的性能與相同ASP.NET頁(yè)面的性能之間相差的數(shù)量級(jí)別。
· 事件驅(qū)動(dòng)編程模式——在典型的ASP中,頁(yè)面總是以自頂向下的線性方式執(zhí)行,并且HTML標(biāo)記常常與程序指令混合在一起。任何一個(gè)有一定ASP經(jīng)驗(yàn)的人都知道這樣會(huì)使得頁(yè)面難以閱讀,甚至更加難以維護(hù)。ASP.NET引入了事件驅(qū)動(dòng)模型,這個(gè)模型允許您將代碼與標(biāo)記內(nèi)容分離,將代碼并入處理專門(mén)任務(wù)的有意義的單元中,例如響應(yīng)客戶端的按鈕單擊動(dòng)作。這個(gè)類似VB的事件模型極大地提高了頁(yè)面的可讀性和可維護(hù)性。
· 服務(wù)器控件——典型的ASP需要?jiǎng)討B(tài)地將HTML片斷代碼接合在一起呈現(xiàn),這樣做的結(jié)果就是在應(yīng)用程序中一遍又一遍地編寫(xiě)相同的代碼(您需要多少次才能從數(shù)據(jù)庫(kù)查詢中構(gòu)建一張表格)。ASP.NET帶給Web編程的一個(gè)最大的好處就是能夠?qū)⒐驳某尸F(xiàn)和行為封裝成服務(wù)器控件(server control),可以在應(yīng)用程序中很方便地重復(fù)使用。就像HTML標(biāo)記一樣,服務(wù)器控件以聲明的形式創(chuàng)建,但是表現(xiàn)為一個(gè)位于服務(wù)器端的可編程對(duì)象,它可以與代碼進(jìn)行交互并輸出定制的動(dòng)態(tài)HTML呈現(xiàn)。ASP.NET包含了大約80多個(gè)服務(wù)器控件,這些控件封裝了從標(biāo)準(zhǔn)表單元素到復(fù)雜控件(如網(wǎng)格和菜單)的所有內(nèi)容。
· 控件設(shè)計(jì)時(shí)間的改善(當(dāng)使用Visual Web Developer時(shí))—— 開(kāi)發(fā)人員通過(guò)使用設(shè)計(jì)時(shí)間界面可以減少花費(fèi)在開(kāi)發(fā)復(fù)雜頁(yè)面上的時(shí)間,這些界面包括敏捷任務(wù)面板、標(biāo)簽級(jí)導(dǎo)航欄和可以設(shè)置控件屬性的向?qū)А?/p>
ASP.NET開(kāi)發(fā)技術(shù)的第一個(gè)版本(1.0和1.1)在2001年至2003年間迅速風(fēng)靡了Microsoft的開(kāi)發(fā)陣營(yíng)。程序人員很快便感覺(jué)到他們通過(guò)使用強(qiáng)大和靈活的.NET Framework可以大大減少編碼時(shí)間,而且CIO們也看到當(dāng)程序員花在解決客戶代碼的疑難問(wèn)題上的時(shí)間減少時(shí),他們就可以將更多的資源投入到更高級(jí)的IT結(jié)構(gòu)的改善上。ASP.NET確實(shí)是一個(gè)里程碑式的版本,它簡(jiǎn)化了開(kāi)發(fā)人員的工作。
但是,就在第一個(gè)版本發(fā)布之前,Microsoft的ASP.NET小組就已經(jīng)在為開(kāi)發(fā)ASP.NET 2.0而工作了。他們以下面雄心勃勃的目標(biāo)來(lái)開(kāi)始他們的工作:
· 使創(chuàng)建一個(gè)典型的Web應(yīng)用程序所需代碼行數(shù)減少70%。
· 提供一套可擴(kuò)展的應(yīng)用程序服務(wù),用來(lái)為通用應(yīng)用程序任務(wù)提供構(gòu)建塊,例如成員、角色、個(gè)人化以及導(dǎo)航等。
· 創(chuàng)建一系列基于任務(wù)的服務(wù)器控件,這些控件可以調(diào)節(jié)上述服務(wù),交付完全、可定制的用戶接口(UI),以最小的代碼量來(lái)展示這些服務(wù)。
· 當(dāng)與.NET Framework協(xié)同工作提供頁(yè)面服務(wù)時(shí),改善IIS的性能。
· 提供管理功能,以便加強(qiáng)ASP.NET服務(wù)器的部署、管理和運(yùn)行。
· 改善宿主公司所用的工具,以便可以支持多站點(diǎn)并能夠?qū)㈤_(kāi)發(fā)人員的項(xiàng)目遷移至公共部署環(huán)境。
· 讓ASP.NET的幾乎所有特性都能夠方便地?cái)U(kuò)展或者用定制的高級(jí)任務(wù)的執(zhí)行替換。 在這里,我們有必要再來(lái)細(xì)細(xì)地回想一下第一個(gè)目標(biāo),也就是使編寫(xiě)一個(gè)動(dòng)態(tài)Web應(yīng)用程序所需的代碼量減少70%。這有可能嗎?Microsoft的ASP.NET小組已經(jīng)仔細(xì)考慮過(guò)各種以定制代碼執(zhí)行的通用任務(wù),并且專門(mén)制定了將這些任務(wù)封裝進(jìn)構(gòu)建塊(特別是服務(wù)器控件)的方式
深圳市南山區(qū)南山街道南海大道西桂廟路北陽(yáng)光華藝大廈1棟4F、4G-04
咨詢電話:136 8237 6272
大客戶咨詢:139 0290 5075
業(yè)務(wù)QQ:195006118
技術(shù)QQ:179981967
深圳精銳軟件 深圳APP開(kāi)發(fā) 深圳小程序開(kāi)發(fā) 深圳微信開(kāi)發(fā) 深圳APP制作 深圳營(yíng)銷推廣 深圳網(wǎng)站建設(shè) 深圳游戲開(kāi)發(fā)
客戶案列
新聞資訊
資質(zhì)榮譽(yù)
團(tuán)隊(duì)風(fēng)采
項(xiàng)目進(jìn)度查詢
售前QQ咨詢
QQ溝通 項(xiàng)目QQ溝通