用Visual Studio .NET 中的Mobile Web Form建立移動網路應用程式
在過去的一些年裡,世界已經被看作是新裝置的爆炸-包括網路電話和國際互連網-使得個人數字輔助成為可能-它保證成為你今天建立的軟體的下一代使用者。當這個爆炸發展到消費者或組織可以有廣泛的各種各樣的裝置選擇,它要求開發人員與裝置和裝置間存在地差異戰鬥。
為了協助開發人員為這些新“瘦客戶”裝置建立應用程式,Microsoft已經把Mobile Internet Toolkit (原來是.NET Mobile Web SDK)直接整合到Visual Studio .NET 環境中。
新的整合工具箱和Visual Studio .NET 合起來使得建立應用程式變得簡單,在獲得只屬於所給裝置的有利特性時,它可以聰明地適應不同裝置。現在你可以在Visual Studio .NET 中建立移動網路應用程式項目,並且使用視覺化設計工具來建立和編輯移動網頁。你可以定購 Visual Studio .NET Beta 2 或者你可以從MSDN網站下載 Mobile Internet Toolkit 。
Mobile Internet Toolkit由一系列伺服器端移動網路表單和創作使用者介面的Mobile Internet Designer組成,也包括QuickStart嚮導,開發文檔和裝置配接器原始碼。
Mobile Web Forms控制擴充了ASP.NET和.NET架構的能力來協助開發人員為蜂窩電話和Personal Digital Assistants建立移動網路應用程式,例如Pocket PC。這些控制使用對於不同裝置的翻譯,並且產生適當的標註語言: Wireless Markup Language (WML) 版本 1.1, Hypertext Markup Language (HTML) 版本 3.2,或者精簡HTML (cHTML)。
在這篇文章中,你將學到建立移動網路應用程式的基本步驟。在你可以建立一個Mobile Web Forms 應用程式前,你需要安裝Microsoft Visual Studio .NET Beta 2和Mobile Internet Toolkit Beta 2。使用這些技術,你馬上可以為蜂窩電話和Pocket PCs建立移動網路應用程式。
Mobile Web Forms 控制
Microsoft 移動網路表單控制建立在.NET 架構上,它把ASP.NET 網路開發模型的優點帶到行動裝置 App程式的世界。另外,移動網路表單控制提供了:
- 世界範圍的工具支援:從Visual Studio 整合式開發環境(IDE)獲得完全支援,使用它豐富的工具箱和設計器,拖放伺服器控制,自動設定和許多其他特性。
- 支援各種各樣的裝置:使用ASP.NET來瞄準很多的行動裝置-從瘦客戶基於XML地行動電話到基於HTML的Pocket PC。
- 一次編寫網頁:編寫一次網路應用程式並把它配置到任何所支援的行動服務上。你可以使用一系列移動網路表單控制來編寫複雜的應用程式,不需要對WML和其他標置語言的知識。智慧型服務端控制處理瀏覽器、裝置和網關中許多的執行差異。
- 可定製性和可擴充性:從ASP.NET的定製和擴充特性獲得好處。另外,可擴充性模型將使其他裝置在將來被支援。這確保了便捷裝置的將來的產品會支援你今天編寫的移動網路應用程式。
Mobile Web Forms
Mobile Web Forms 頁面專用於ASP.NET網路表單頁面。它是一個文字檔,有.aspx副檔名,而它包含一組移動控制-ASP.NET伺服器控制-它可以適應所支援的行動裝置提供的環境。
作為開發人員,你可以使用裝置獨立的屬性、方法和事件來安排移動頁面和控制。當一個支援的裝置需要一個移動網路表單頁面,這個頁面和控制自動確定裝置並且產生一個適合於那個裝置的能力的環境。例如,一些裝置可以比其他的裝置顯示更多行文字,一些裝置可以在別的不能的時候顯示圖形,而一些裝置可以放置電話而別的不行。
每個移動網路表單頁面必須有下面的標準頭指示,這指出它是一個移動頁面。Language=的屬性將是各式各樣的,根據你為你的頁面使用的語言。
<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage" Language="C#" %><%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
因為一個移動網路表單頁麵包含移動控制,每個移動控制條應該包括runat="server"屬性:
<mobile:Form runat="server"></mobile:Form>
每個頁麵包含至少一個移動表單,被標籤指出。但是,你可以把多個表單放到一個移動網路表單頁面中。
就像其他ASP.NET伺服器控制,移動控制發行就緒一個包含屬性、方法和事件的物件模型。你可以使用這個物件模型來修改和訪問這個頁面。移動控制的物件模型是裝置獨立的,因此你可以與控制用一種統一的方法互相影響,而不管目標裝置是什麼。
建立移動網路表單頁面的兩種方法
在網路表單編程模仿Microsoft Visual Basic開發人員編寫傳統基於Microsoft Windows的應用程式的方法。為了在Visual Basic中構建一個Windows表單應用程式,你把一個表單添加到項目中,把一個控制拖放到表單,設定屬性然後雙擊控制來編寫運行在表單後面的代碼。這個眾所周知的模型被數百萬開發人員使用來快速構建傳統型應用程式。移動網路表單技術把相同的設計原理和生產水平帶到移動網路應用程式中。
為了建立使用移動網路表單的廣泛適用的移動網路應用程式,你簡單地把一個新移動網路表單添加到你的項目中,把控制拖到網頁中,並且雙擊控制來添加運行在頁面後面的代碼。你可以為移動網路表單頁面選擇你實現商業邏輯的語言。Visual C# .NET、 Visual Basic .NET和Visual C++ 都被包括在Visual Studio .NET中。
下面的例子示範了你如何能使用Visual Studio .NET Mobile Internet Designer或Mobile Internet Toolkit和命令列來建立移動網路應用程式(包括在Microsoft Mobile Internet Toolkit 中。
Visual Studio .NET Mobile Internet Designer
下面的例子使用Visual Basic .NET和Calendar Control來示範如何處理定義在一個移動網路表單頁面中地多個表單。當一個頁面首次被一個客戶訪問,這個首次出現的頁面就是預設的顯示。你可以有計劃地通過設定移動頁面的ActiveForm屬性 來轉移到其他表單,或者你可以允許一個使用者通過使用Link控制來轉移到一個表單。下面的例子示範了有兩個表單的頁面,和一個ActiveForm 導航的例子。
建立TwoFormsApp
首先,建立一個名為TwoFormsApp的新目錄。
- 在一個運行Visual Studio .NET Beta 2 系統需求 列表中列出的,支援Internet Information Services (IIS)的作業系統的非產品測試電腦上安裝Visual Studio .NET Beta 2和Mobile Internet Toolkit。
- 從File菜單啟動Visual Studio .NET Beta 2,選擇 New Project。在 New Project 對話方塊中,從Project Types 列表中選擇 Visual Basic Projects。 在 Templates 列表中,選擇Mobile Web Application。輸入TwoFormsApp作為項目的名稱,然後點擊OK。
圖3. New Project對話方塊
建立MobileWebForm1.aspx 使用者介面
預設情況下,在你建立你的應用程式時,移動網路表單頁面調用MobileWebForm1.aspx來顯示。這是使用者介面檔案,根據客戶裝置的能力,它包含許多伺服器端移動控制和HTML 3.2、 cHTML或WML 1.1的環境。MobileWebForm1.vb,一個已編譯的後台代碼檔案,將在以後被建立來處理你的編程邏輯。
- 從Mobile Forms 工具條,把一個Label、 一個TextBox 和一個Command 按鈕拖到Form1中。
- 在Form1中點擊Label 。確定Properties視窗在你的螢幕右下角。在Label1 Text 域中輸入: Enter the date (mm/dd/yyyy)。這個文字顯示到表單的Label 中。
- 為Command 按鈕更改Text 屬性來顯示Form2。
- 把一個附加表單拖到Form1下面的設計表面中。新的表單名為Form2。添加一個Command 按鈕和一個Calendar 控制。更改Command 按鈕的Text 屬性來顯示Form1。
在設計時,你的表單表面應該像圖4所示。
圖4. Visual Studio .NET Mobile Internet Designer
建立MobileWebForm1.aspx.vb 後台代碼檔案
雙擊Show Form2 按鈕。一個新檔案,MobileWebForm1.aspx.vb,就開啟了。你的指標會在Public Sub Command1_Click。添加下面的代碼:
Public Sub Command1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Command1.Click Dim datetext As Date datetext = TextBox1.Text ActiveForm = Form2() Calendar1.SelectedDate = datetext Calendar1.VisibleDate = datetextEnd Sub
在Design 視中,雙擊Show Form1 按鈕。你的指標現在將在Public Sub Command2_Click。添加下面的代碼:
Private Sub Command2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Command2.Click Dim dateval As Date dateval = Calendar1.SelectedDate ActiveForm = Form1() TextBox1.Text = datevalEnd Sub
運行TwoFormsApp 應用程式
- 在Solution Explorer,按右鍵MobileWebForms1.aspx 檔案並且選擇Set As Start Page。
- 儲存你的應用程式,然後按F5來建立並對它調試。或者,從Debug 菜單中選擇Start 表單。
- 當應用程式運行時,用特定的形式輸入日期,然後點擊Show Form1 按鈕。Form2出現了,並且顯示Calendar 控制。
- 為了選擇不同的日期,點擊日曆,然後點擊Show Form2 按鈕。
為了測試使用行動裝置的應用程式,你的網路服務將需要一個固定的IP地址。
Microsoft Mobile Internet Toolkit和命令列
Visual Studio .NET Beta 2 把Mobile Internet Toolkit 直接整合到開發環境中,使很多設計、開發和調試變為自動化。但是,行動裝置 App程式也可以使用你所喜歡的編輯器、Mobile Internet Toolkit和命令列編譯來手動建立。下面的例子示範了如何使用C#去做這件事情。它也示範了你怎麼從Command控制來處理OnClick 事件。當代碼接收到這個事件,它按程式導航到另一個表單。一個新的有活性的表單產生OnActivate 事件,你可以控制它來對表單初始化。
建立NameApp
- 在一個運行Windows 2000 Server或有Service Pack 1的Windows 2000 Professional作業系統的非產品測試電腦上,建立目錄C:/Inetpub/wwwroot/Name。
- 從Internet Services Manager ,展開Default Web Site 列表,按右鍵Name (虛擬根 ),然後點擊Properties。
- 在Application Settings 下面, Application Name的右邊,點擊Create 按鈕。
在下面的例子中,你將在Name 目錄中建立兩個檔案。
- Name.aspx是使用者介面檔案,根據客戶裝置,它包含了大量伺服器端控制和HTML 3.2, cHTML或 WML 1.1的環境翻譯。
- Name.cs是後台代碼檔案,它是一個編譯好的C#組件。這個檔案的副檔名根據編寫它所用的語言是不同的。如果組件是一個Visual Basic組件,這個檔案名稱就是Name.vb。
建立Name.aspx移動網路表單
<%@ Page Codebehind="Name.cs" Inherits="NameApp.NamePage" Language="C#" %><%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %><mobile:Form runat="server"> <mobile:Label runat="server">What is your name?</mobile:Label> <mobile:Textbox runat="server" id="NameEdit"/> <mobile:Command runat="server" OnClick="GoCommand_OnClick" Text="Go!"/></mobile:Form><mobile:Form runat="server" id="SecondForm" OnActivate="SecondForm_OnActivate"> <mobile:Label runat="server" id="Greeting"/></mobile:Form>
建立Name.cs 後台代碼檔案
using System;using System.Web.UI.MobileControls;namespace NameApp{ public class NamePage : MobilePage { protected Form SecondForm; protected TextBox NameEdit; protected UI.Label Greeting; private String greetingText; protected void GoCommand_OnClick(Object sender, EventArgs e) { greetingText = "Hello, " + NameEdit.Text + "!"; ActiveForm = SecondForm; } protected void SecondForm_OnActivate(Object sender, EventArgs e) { Greeting.Text = greetingText; } }}
編譯Name.cs 檔案
- 在Name目錄中建立一個檔案夾命名的副檔名。
- 在命令列提示輸入下面的代碼來編譯Name.cs 檔案:
- C:/Inetpub/wwwroot/Name> csc /r:System.Web.dll /r:System.Web.Mobile.dll _ /target:library /out:bin/NameApp.dll Name.cs
在一個PC、一個Pocket PC或下面列出的任何現在的測試裝置,瀏覽http://localhost/Name/Name.aspx並且測試應用程式。
當前測試的裝置
- Pocket PC
- Sony CMD-z5 with Microsoft Mobile Explorer
- Mitsubishi T250
- Nokia 7110
- Sprint Touchpoint
- Samsung Touchpoint
- Simulator for Microsoft Mobile Explorer version 2.01
- Simulator for Phone.com UP 3.2
- Simulator for Nokia 7110
- Simulator for Phone.com UP 4.0
- Personal computer with Microsoft Internet Explorer 5.5
結論
Microsoft Visual Studio 開發工具的下一代產品顯著地減少了建立移動網路應用程式的複雜性。使用Visual Studio .NET ,你將可以從一個單獨的ASP.NET頁面,開發面向網路和事實上任何行動裝置的應用程式-而不用學習各種各樣的不同的標置語言。使用新的,簡化了建立繼承了對工業標準支援的移動網路應用程式的技術,例如Extensible Markup Language (XML) 和Wireless Application Protocol (WAP),Microsoft將使你可以建立下一代移動網路應用程式。
通過訪問Mobile Newsgroup 來與你的同行交流關於移動網路表單的訊息。注意,你可以使用任何新聞閱讀軟體來訪問這些新聞群組。但是,我們建議從Microsoft Internet Explorer 首頁下載Outlook Express 。要得到更多關於訪問新聞群組的資訊,參觀MSDN Web site 。
摘錄於:http://www.microsoft.com/china/msdn/archives/others/vstudio/mobilewebforms.asp