|
http://www.aspcn.com 飛刀
ASP+ 的移動控制 如果媒體的新聞和廣告是可以相信的話,我們在不久的將來會使用很小的電話或者其它手機(jī)設(shè)備來訪問互聯(lián)網(wǎng)。OK,這只 是一個(gè)比較樂觀的估計(jì),但是有一點(diǎn)是可以肯定的,那就是訪問您站點(diǎn)的訪問者已經(jīng)有很多人不是在使用傳統(tǒng)的瀏覽器 了,而且這個(gè)數(shù)字還在不斷的增加(新浪消息:據(jù)統(tǒng)計(jì),全球手機(jī)用戶已經(jīng)超過電腦用戶,而且30%的手機(jī)具有WAP功 能)。為了適應(yīng)各種型號的手機(jī)(包括那些很小的電話),ASP+提供了一款引以自豪的服務(wù)控制用于產(chǎn)生WML,而不是 HTML。在這篇文章里,我們將對這個(gè)微軟還在開發(fā)中的控制來個(gè)小小的觀察。這篇文章同樣也會考慮一些其它的用戶瀏覽 設(shè)備,比如置頂盒,甚至是電冰箱(哈哈,是不是感覺有些天方夜潭)。
ASP+入門 有很多種方法能夠創(chuàng)建動態(tài)頁面。在過去,最突出的技術(shù)就是使用可執(zhí)行的程序通過Common Cateway interface(CGI)去訪 問WEB服務(wù)器。但是,在近些年中,一些新的技術(shù)能夠讓腳本代碼直接寫入HTML頁中,而且這些技術(shù)現(xiàn)在變得越來越流行。 在這些技術(shù)中有Perl,Java Server Page (JSP)以及微軟的Active Server Pages(ASP)。
ASP開始時(shí)只是一個(gè)能夠通過Internet Server Application Programming Interface(ISAPI)來訪問WEB服務(wù)器的DLL,換句 話說就是一個(gè)ISAPI DLL.這種接口提供了一個(gè)與服務(wù)器快速而有可靠的聯(lián)結(jié)。這些代碼在同一個(gè)進(jìn)程或者內(nèi)存空間中運(yùn) 行。使用這種技術(shù),ASP進(jìn)化到了3.0,并且會作為Windows 2000的一部分來安裝。
進(jìn)入 .NET 的世界(微軟帶給我們的新概念) 根據(jù)微軟.NET Frameword的介紹,基礎(chǔ)的ASP的設(shè)計(jì)已經(jīng)改變。這種新的結(jié)構(gòu)已經(jīng)完全脫離了當(dāng)前程序運(yùn)行的語言以及操作 系統(tǒng)指定結(jié)構(gòu)的限制。
在今天,大多數(shù)的編程語言是直接能過本地的代碼(這些代碼已經(jīng)在進(jìn)程中執(zhí)行,通俗說就是編繹器)來編繹原始代碼。 因此這種編譯必須依賴于處理器的類型。舉個(gè)例子,在intel處理器上編譯的代碼將不能在Motorala的處理器上運(yùn)行。
關(guān)于這個(gè),有一個(gè)例外,那就是Java,它使用一種獨(dú)立的virtural machine來執(zhí)行代碼,這個(gè)代碼是根據(jù)指定的處理器和操 作系統(tǒng)來編譯的。只要在目標(biāo)機(jī)上有合適的Java Virtual Machine,那么代碼就能執(zhí)行。
微軟的.NET Framework是一個(gè)與JAVA極其相似的但是作用更為廣泛的框架。它提供了一個(gè)完全的開發(fā)和運(yùn)行環(huán)境,它能運(yùn) 行程序。這些代碼會被編譯成一個(gè)特殊的Intermediate Language(IL).所有的源代碼都被編譯成IL代碼而不用考慮代碼所 用的語言。
因些代碼不管是用VB,還是VC,還是JScript或者是新的C#,都會被編譯成同樣的IL代碼。這些編譯器已經(jīng)作為.NET Framework的一個(gè)部分被包含。
The ASP+ Framework
為了結(jié)合ASP技術(shù)與.NET框架,微軟開發(fā)了一個(gè)開發(fā)系統(tǒng)用于提供一種更快的動態(tài)網(wǎng)頁開發(fā)。同時(shí)這個(gè)運(yùn)行環(huán)境也會變得更 加有效率,升級性也有很大的提高。這個(gè)技術(shù)叫做Active Server Page+,或者干脆叫ASP+
ASP+是如何工作的? ASP+最主要的新特點(diǎn)是應(yīng)用程序與頁面事件模塊的結(jié)合。ASP+是這個(gè)新代碼處理環(huán)境的一部分。這就是說,這種新技術(shù)能 對事件做出反應(yīng),比如頁面的Loading或者是應(yīng)用的啟動,這些ASP+都能通過事件來處理。
這種后臺執(zhí)行的結(jié)構(gòu)會對頁面來說是非常有用的。一般來說這個(gè)頁面包括一個(gè) 標(biāo)簽以及其它一些HTML元素,但是這些元素會在具有ASP+環(huán)境的服務(wù)器上執(zhí)行。ASP+不僅向?yàn)g覽器(客戶端)輸出被要求 的HTML,而且還加入了一些額外的東東在里面以維持每個(gè)控制的值(用以回傳給服務(wù)器),這種概念很奇怪,但是我們得 接受啊。就像我們接受ASP一樣的。
同時(shí)因?yàn)锳SP+通過額外的代碼和屬性控制著頁面的行為方式,所以ASP+就能做更多好玩的事情。因?yàn)轫撁媸窃诜⻊?wù)器上創(chuàng) 建的,這個(gè)ASP+引擎能夠查覺到這個(gè)form是如何被提交的,也就是說能夠偵察到用戶是按了哪種button按鈕。
ASP+允許服務(wù)器端事件的使用(這可是個(gè)新概念)。我們會在下面的例子中看到,通過指定的事件來處理問題。
這種特殊的HTML元素請求是這種新后臺結(jié)構(gòu)的基礎(chǔ),它的真名是ASP+ Server Controls(ASP+服務(wù)控制)。在標(biāo)準(zhǔn)的ASP+ 中有很多種這樣的控制。你能夠使用VB或其它.NET支持語言來編寫、繼承、擴(kuò)展這種控制。
什么是ASP+移動控制? 現(xiàn)在一個(gè)令網(wǎng)絡(luò)開發(fā)者很能關(guān)心的問題就是快速增長的移動設(shè)備市場,F(xiàn)在已經(jīng)有上百種不同類型的設(shè)備出現(xiàn)了,這些產(chǎn) 品中沒有一種能夠和傳統(tǒng)PC上的瀏覽器相兼容。這個(gè)范圍包含但是不僅限制于"無線設(shè)備"。同樣的有掌上電腦,以及我們 的電視,還有游戲控制臺,這一些現(xiàn)在都可以上網(wǎng)瀏覽了。
這些設(shè)備中的大多數(shù)不支HTML,同樣不支持顏色,字體,定位,聲音以及其它各種元素的改變。因此,為你的站點(diǎn)創(chuàng)建一 個(gè)HTML的頁面,并不能解決所有的問題。因此我們就得為創(chuàng)建一個(gè)能為大部分設(shè)備所顯示的頁面。(嘿嘿,想想,如果一種 設(shè)備寫一種頁面,那您。。。。)
為了提供這種屬性,微軟介紹了一種叫做移動控制的東東,它能夠根據(jù)不同的設(shè)備創(chuàng)建不同的頁面。如果是WAP手機(jī)瀏覽, 他就會創(chuàng)建WML代碼,如果是掌上電腦瀏覽就會創(chuàng)建HTML代碼,IE等傳統(tǒng)瀏覽器就不用說咯。
這個(gè)控制的重點(diǎn)是能夠智能化地創(chuàng)建不同的輸出,而您對不同的設(shè)備卻使用同一代碼。比如,list控制會在手機(jī)、掌上電 腦、PC上顯示同一個(gè)list菜單,但是他們輸出顯示時(shí)所使用的代碼卻是不同的。
有了他,程序員就可以開發(fā)程序時(shí)不用考慮客戶使用的設(shè)備了。
移動控制能做些什么呢。 現(xiàn)在我們看看移動控制到底能做什么:
移動控制的范圍 當(dāng)前版本的移動控制下面的屬性是有效的:
MobilePage 如同WML中的deck Panel 如同WML中的card Form 啟用用戶輸入控制 Label 在頁面中輸出文字 Command 創(chuàng)建一個(gè)鏈接 TextBox 文本輸入框 List 如同select RequiredFieldValidator 對用戶輸入進(jìn)行檢查 RegularExpressionValidator 使用用戶輸入生效 Stylesheet 指定輸出格式 在以后的版本中還有一個(gè)SelectionList控制,功能與list大致相同。
設(shè)置此組件 建立一個(gè)移動控制很簡單,雖然這些具體的技術(shù)一直在變,但是這些控制還是一個(gè)DLL文件,把他拷貝到就用開發(fā)環(huán)境目錄 的bin子目錄下。當(dāng)然這個(gè)應(yīng)用也必須是虛擬目錄。
第二步,就是把例子文件config.web加到應(yīng)用目錄下去,如果這個(gè)文件已經(jīng)存在那就把文件的這一段的內(nèi)容加進(jìn)去。它通 過BrowserCapabilities控制來判斷哪種格式和語言將要發(fā)到用戶端去。
在目前的版本中,移動控制只支持WAP手機(jī)中的WML,以及HTML。以后的版本支持的就多了。比如XHTML,HDML,cHTL等等。
|