現在的消費者不僅僅要求通過個人電腦訪問互聯網上的資源,他們還需要通過別的方式來訪問,網站的設計者對此感到很苦惱。他們的第一個本能的反映是通過一個現有的Web網站來創建多個導航路徑。很多Web開發者使用這種機制來解決不同版本的浏覽器對HTML規范的支持程度不一樣的問題(例如有的版本的浏覽器能支持FRAME,有的卻不能支持)。盡管這種方式比較容易實現,但是由於不同的設備需要不同的網頁顯示方式,所以Web站點的頁面會隨著訪問設備的增加而呈現指數的增長,這將會使網站的維護和管理變得很復雜。所以Web開發者不得不尋求更好的解決之道。
XML和XSLT
XML 和XSLT已經成為解決浏覽網頁設備的獨立性問題的最有效的方法。Web開發者能使用XML和XSLT來創建基於靜態的XML文檔和從數據庫返回的動態的XML數據流的網站。網站設計者能創建XSL模板,該模板應該接收一個XML數據流並將XML數據流轉換成用來浏覽網頁的設備所能識別的HTML,開發者設計網站並發送被相應XSL模板轉換的HTML文件到客戶浏覽器,而不用處理多路徑問題。
從資源使用的立場來說,因為每個網頁僅僅需要一個XML文件,每種設備類型只要一個能處理XML文件的XSL模板,所以這種創建Web站點的方法是很有效的。但是如果從系統處理的立場來說,因為當用戶浏覽網頁時,這些網頁都要動態的生成,而不是簡單的從硬盤中讀出就行了,所以處理效率比較低。
所不幸的是,要實現上面的機制,現在的設計者和開發者應該在XML和XSLT方面擁有更多的知識和經驗。正是由於這方面的原因導致了現在我們的現實生活中很少有能支持移動設備的網站和Web應用程序。
使用MMIT
微軟試圖用.NET Framework和Microsoft Mobile Internet Toolkit (MMIT)來解決通過多種移動設備來訪問網站的問題,並且從一開始微軟就提倡將Visual Studio .NET和.NET Framework作為為移動設備開發連接式和斷開式應用程序的首要平台。盡管支持斷開式模型的工具尚處於beta測試之中,但是在幾個月以前就可以得到MMIT提供的支持創建連接式的應用程序的工具。同時這些工具也將作為一種標准特性出現在Visual Studio .NET和the .NET Framework的下一個版本中。
MMIT允許開發者創建支持移動設備的Web應用程序,並且沒有象XSLT帶來的設備依賴性問題(因為每個設備需要它自己的XSL模板集)。由於MMIT通過提供一套設備獨立的控制器和一套設備適配器,所以開發者能使用它的設備獨立控制器來開發不依賴於設備的應用程序。MMIT在Visual Studio .NET的工具箱中放置了一些關於設備的控制器,同時也提供了用於開發快速移動設備應用程序的一些模板。一旦開發者完成應用程序的開發,這些設備控制器就能發布到運行設備適配器的服務器上以便多個設備終端都能使用該設備控制器。
當一個連接的移動設備請求一個使用MMIT控制器開發的網頁,ASP.NET運行引擎查詢該設備的浏覽能力並且為其指定一個相應的設備適配器,該設備適配器自動的將從控制器返回的值轉換成設備能使用的格式。設備適配器不僅處理顯示,它還為設備生成管理和返回輸入值的標記語言代碼。例如,開發者能創建一個單頁面,通過使用WAP它能被袖珍電腦或手機所浏覽。設備的使用者可以使用袖珍電腦的手寫筆或手機的鍵來與網站進行交互,ASP.NET能識別設備適配器生成的代碼的返回數據並進行相應的處理。
各種方法的優點和缺點
並不是說如果開發移動通訊就一定要使用MMIT,其實使用老式的XML 和XSLT技術也是可以的。實際上.NET Framework中內置的對XML規范的支持使得用XML 和XSLT技術來創建支持多設備的方法比用MMIT更容易。但是要開發連接式的Web應用程序,你可能依舊會首先考慮使用MMIT。
使用MMIT方法,你可以為應用程序設計一個訪問它的設備,這樣當新設備可以使用以後,你通過簡單的增加附加的設備適配器到ASP.NET服務器中就可以使用該新設備了。你也可以通過擴展現有的MMIT控制器來創建被現有的或將來的設備適配器所支持的設備控制器。使用MMIT的另外一個關鍵性的好處是能利用ASP.NET的內部狀態管理系統,開發者如果創建基於XSLT的移動通訊應用程序就必須開發和維護自己的狀態管理方法。