国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.NET Framework環(huán)境下的ASP網(wǎng)頁製作(1) (王國榮)

2024-07-10 12:58:31
字體:
供稿:網(wǎng)友

網(wǎng)路公司裁員、網(wǎng)站關(guān)閉、電子報停刊…,經(jīng)歷電子商務(wù)的退潮之後,有人開始質(zhì)疑電子商務(wù)是不是被高估了。也許網(wǎng)際網(wǎng)路不再編織賺大錢的美夢,但經(jīng)過這幾年的洗禮,網(wǎng)際網(wǎng)路已經(jīng)成為大眾生活中的一部份,據(jù)說臺北市的國中生能製作網(wǎng)頁者已經(jīng)相當(dāng)普遍,由此可見一斑,當(dāng)網(wǎng)頁製作變成一般知識之後,想生存於網(wǎng)際網(wǎng)路,夠不夠?qū)I(yè)將是決勝因素。

在 .net framework底下,筆者很欣慰asp(active server pages)變得更專業(yè)了,簡單地回顧過去的asp,我們至少可以指出幾個缺點(diǎn):
  • 只能使用vb script或java script這兩種程式語言來開發(fā)asp。
  • 沒有好的偵錯程式(debugger)。
  • 網(wǎng)頁結(jié)構(gòu)會隨著程式變大而一團(tuán)亂。
  • ado無法直接與datagrid元件結(jié)合。

本期筆者將為您解說asp的新面貌(微軟把這個新的asp稱為asp.net)。

從asp到asp.net


asp會變得很紅,恐怕連微軟也覺得意外,因為asp一直都附屬於iis,算不上獨(dú)立的產(chǎn)品。iis版本與asp版本的對應(yīng)如下:iis 版本附帶在 iis 底下的 asp 版本iis 3.0asp 1.0iis 4.0asp 2.0iis 5.0asp 3.0
有人會用1.0、2.0、3.0來區(qū)分asp的版本,但筆者不以為然,因為從asp 1.0版到3.0版,微軟並沒有花太多心思來改良asp,只是因為iis改版了,所以asp也跟著做微幅的改版,因此從asp 1.0版到3.0版,在功能上並沒有顯著的改變,所以不管asp 1.0、2.0或3.0,筆者都叫它們asp。
隨著asp的使用者越來越多,希望asp更好的聲音也越來越強(qiáng)烈,也許是從善如流,也許是為了推廣 .net framework,微軟針對asp的使用者做了市場調(diào)查,找出asp必須改良的地方,而發(fā)展了下一代的asp,也就是asp.net(或者稱為asp+)。

asp.net與asp的相容性


從asp升級到asp.net,大家最擔(dān)心的問題可能是「會不會影響既有asp網(wǎng)頁的運(yùn)作」,筆者將asp作業(yè)平臺升級到asp.net作業(yè)平臺之後(本文撰寫時所安裝的asp.net版本是beta 1),還沒有發(fā)現(xiàn)既有的asp網(wǎng)頁不能運(yùn)作或必須修改的。
在實際運(yùn)作上,當(dāng)asp網(wǎng)頁(以 .asp為副檔名)被瀏覽時,iis會啟動asp.dll來執(zhí)行asp網(wǎng)頁,而當(dāng)asp.net網(wǎng)頁(以 .aspx為副檔名)被瀏覽時,iis則會啟動xspwp.exe來執(zhí)行asp.net網(wǎng)頁,兩者的執(zhí)行檔案不同,因此不只是安裝asp.net之後,不會影響既有asp網(wǎng)頁的運(yùn)作,實際上asp網(wǎng)頁及asp.net網(wǎng)頁是並存的。
另一個常問的問題是:需要將現(xiàn)有的asp網(wǎng)頁轉(zhuǎn)換成asp.net網(wǎng)頁嗎?由於asp網(wǎng)頁及asp.net網(wǎng)頁是並存的,因此運(yùn)作得很順利的asp網(wǎng)頁可以暫時不必修改,至於哪些網(wǎng)頁必須採用asp.net?以下是筆者的建議:
  1. 希望效能更高時:當(dāng)asp.net網(wǎng)頁第一次被瀏覽時,server會先將其編譯成msil(microsoft intermediate language),並且儲存下來,而再度被瀏覽時,即不再重新編譯(除非 .aspx檔案的內(nèi)容有所改變),因此可以提升不少效能。此外,asp.net還具備網(wǎng)頁及資料cache功能(見稍後介紹),亦可提昇網(wǎng)頁的回應(yīng)速度。
  2. 需要經(jīng)常維護(hù)或修改的網(wǎng)頁:由於asp.net採用vb7為程式語言,具備完整的物件導(dǎo)向功能,有助於網(wǎng)頁的維護(hù)。
  3. 未來新開發(fā)的網(wǎng)頁:既然asp.net功能優(yōu)於asp,未來開發(fā)的網(wǎng)頁當(dāng)然要採用asp.net。

程式語言的改變


從asp到asp.net,其中的改變相當(dāng)多,不過與asp網(wǎng)頁製作者最有切身關(guān)係的應(yīng)該是程式語言的改變,asp只接受vb script及java script兩種程式語言,但是對asp.net來說,舉凡可以編譯成msil的程式語言,都是asp.net可以接受的程式語言。
筆者在run!pc前3期的「.net framework -- 微軟新一代的軟體開發(fā)環(huán)境」一文中介紹過msil,它是一種中介語言,介於高階程式語言(例如vb)及機(jī)器碼之間的語言,在asp.net底下,我們撰寫的程式語言也會先編譯成msil,然後msil再被編譯成機(jī)器碼加以執(zhí)行,過程如圖-1,asp.net也是採用此一模式,除了會輸出資料到瀏覽器之外,asp.net網(wǎng)頁與其他的程式語言的工作模式都是相同的。


圖-1 asp.net 網(wǎng)頁編譯執(zhí)行的過程

執(zhí)行效能的質(zhì)疑


第一次接觸asp.net網(wǎng)頁的人可能會有這樣的疑問:「執(zhí)行效能好像不如asp網(wǎng)頁?」,關(guān)於這個問題,讓筆者從運(yùn)作模式來談起,首先請看圖-2,可看出asp.net網(wǎng)頁比asp網(wǎng)頁要多一次的編譯工作。

圖-2 asp與asp.net運(yùn)作模式的比較

儘管asp.net比asp網(wǎng)頁多一次的編譯工作,但這並不表示asp.net的執(zhí)行效能一定比較差,參考圖-2,asp.net階段二的編譯執(zhí)行速度優(yōu)於asp,但asp.net階段一的編譯速度卻慢於asp,簡單地說,asp.net階段一及階段二合起來的時間 >asp執(zhí)行的時間。
如果從以上的比較來看,asp.net確實比asp慢,但是請再把網(wǎng)頁的瀏覽分成以下兩種情況:(1) 網(wǎng)頁第一次被瀏覽 (2) 網(wǎng)頁第二次被瀏覽,如圖-3,asp.net 網(wǎng)頁第一次被瀏覽時,會經(jīng)過兩階段的編譯,所以速度較慢,但第一次被瀏覽之後,msil會被儲存下來,所以當(dāng)同一網(wǎng)頁第二次被瀏覽時,只須花費(fèi)從msil編譯成機(jī)器碼然後執(zhí)行的時間,結(jié)果比asp網(wǎng)頁來的快,整體的比較如下:(>表示較快)

asp.net 網(wǎng)頁第二次被瀏覽 > asp網(wǎng)頁> asp.net 網(wǎng)頁第一次被瀏覽

圖-3 第一次瀏覽及第二次瀏覽的差異

.net framework 物件類別的使用


微軟宣稱 .net framework有許多好處,但筆者最看重的是 .net framework所提供的物件類別,.net framework所提供的物件類別多達(dá)數(shù)百種,包含資料結(jié)構(gòu)、資料庫、繪圖、網(wǎng)路、xml、執(zhí)行緒、目錄服務(wù)、安全性…等,應(yīng)有盡有。
以往asp網(wǎng)頁雖然可以使用activex物件,但其實只限定於activex物件中的activex dll,不像一般應(yīng)用程式(例如vb程式、c++程式)可以同時使用activex dll、activex exe及activex component等多種activex物件,不過這個現(xiàn)象在 .net framework底下已經(jīng)有所改善,在 .net framework所提供的物件類別中,除了少數(shù)與螢?zāi)惠敵鲇嘘P(guān)的物件類別(例如winform及console)是asp.net網(wǎng)頁所不可使用之外,其他物件類別則都是asp.net網(wǎng)頁可以使用的。
註:winform包含windows(視窗)相關(guān)的物件類別、console則是dos文字輸出模式的物件類別,對asp.net來說,其輸出之標(biāo)的為瀏覽器,所以不可以輸出資料到windows視窗及dos文字視窗,asp.net專用的輸出物件類別稱為webform,則是windows應(yīng)用程式不可使用的。

webform與server控制元件


在asp的網(wǎng)頁製作中,如果我們想設(shè)計一個輸入表單(form),大概只能使用html輸入欄位(或稱為控制元件),asp.net在這方面做了很大的加強(qiáng),在其webform裡面,我們可以佈置各種控制元件(統(tǒng)稱server控制元件),這些控制元件包含:server控制元件功能checkbox、checkboxlist加強(qiáng)html核取方塊的功能radiobutton、 radiobuttonlist加強(qiáng)html選擇鈕的功能textbox加強(qiáng)html文字輸入方塊的功能listbox 、dropdownlist加強(qiáng)html下拉式選單的功能table、tablerow、tablecell加強(qiáng)html表格的功能label加強(qiáng)html文字的功能image、 imagebutton加強(qiáng)html圖片的功能linkbutton、 hyperlink加強(qiáng)html連結(jié)的功能panel可將控制元件分成多個區(qū)塊adrotator廣告迴旋板calendar日期的顯示及選擇資料驗證類控制元件可在不必撰寫程式的情況,幫我們驗證使用者所輸入的資料是否正確datagrid、datalist、repeater資料庫的顯示
除了提供更豐富的控制元件之外,webform的另一個優(yōu)點(diǎn)是可以記錄網(wǎng)頁的狀態(tài),以往在asp網(wǎng)頁中,若要記錄client端的狀態(tài),必須使用session或cookie物件,但不管是session或cookie物件,都必須在上網(wǎng)者開啟瀏覽器的cookie功能之下方可運(yùn)作,asp.net改善了此一現(xiàn)象,只要我們將server控制元件佈置在webform之中,webform就會記錄所有server控制元件的狀態(tài)(例如控制元件中所輸入的文字)。
記錄控制元件狀態(tài)的能力,以須分成多次輸入的表單最為方便,以圖-4的輸入表單為例,若使用asp的設(shè)計,在步驟一及步驟二所輸入的資料必須記錄在session或cookie物件中,供步驟三讀取,但是對asp.net網(wǎng)頁,只要將步驟一、步驟二、步驟三的server控制元件佈置在同一個webform之中,則不管網(wǎng)頁執(zhí)行到哪一個步驟,都可以讀取上網(wǎng)者在server控制元件中所輸入的資料。


圖-4 分成多次輸入的表單
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 云南省| 屏东市| 信宜市| 富蕴县| 寻甸| 化州市| 云霄县| 阳高县| 正定县| 龙里县| 潼关县| 清水河县| 泰宁县| 常宁市| 田林县| 娄烦县| 武山县| 青河县| 于都县| 灯塔市| 昆明市| 手机| 黄冈市| 天峻县| 元江| 邢台市| 南川市| 色达县| 南岸区| 忻城县| 利川市| 公安县| 蚌埠市| 房产| 吴堡县| 花莲市| 湖南省| 罗平县| 明光市| 信阳市| 开江县|