- VB.Net 基礎教程
- VB.Net - 首頁
- VB.Net - 概述
- VB.Net - 環境設定
- VB.Net - 程式結構
- VB.Net - 基本語法
- VB.Net - 資料型別
- VB.Net - 變數
- VB.Net - 常量
- VB.Net - 修飾符
- VB.Net - 語句
- VB.Net - 指令
- VB.Net - 運算子
- VB.Net - 決策制定
- VB.Net - 迴圈
- VB.Net - 字串
- VB.Net - 日期和時間
- VB.Net - 陣列
- VB.Net - 集合
- VB.Net - 函式
- VB.Net - 子程式
- VB.Net - 類和物件
- VB.Net - 異常處理
- VB.Net - 檔案處理
- VB.Net - 基本控制元件
- VB.Net - 對話方塊
- VB.Net - 高階窗體
- VB.Net - 事件處理
- VB.Net 高階教程
- VB.Net - 正則表示式
- VB.Net - 資料庫訪問
- VB.Net - Excel 表格
- VB.Net - 傳送郵件
- VB.Net - XML 處理
- VB.Net - Web 程式設計
- VB.Net 有用資源
- VB.Net - 快速指南
- VB.Net - 有用資源
- VB.Net - 討論
VB.Net - Web 程式設計
一個動態 Web 應用程式包含以下兩種型別之一或兩種型別的程式:
伺服器端指令碼 - 這些是在 Web 伺服器上執行的程式,使用伺服器端指令碼語言(如 ASP(Active Server Pages)或 JSP(Java Server Pages))編寫。
客戶端指令碼 - 這些是在瀏覽器上執行的程式,使用指令碼語言(如 JavaScript、VBScript 等)編寫。
ASP.Net 是 ASP 的 .Net 版本,由微軟推出,用於透過使用伺服器端指令碼建立動態網頁。ASP.Net 應用程式是使用 .Net 框架中存在的可擴充套件和可重用元件或物件編寫的編譯程式碼。這些程式碼可以使用 .Net 框架中的整個類層次結構。
ASP.Net 應用程式程式碼可以使用以下任何一種語言編寫:
Visual Basic .Net
C#
Jscript
J#
在本章中,我們將簡要介紹如何使用 VB.Net 編寫 ASP.Net 應用程式。有關詳細討論,請參閱ASP.Net 教程。
ASP.Net 內建物件
ASP.Net 有一些在 Web 伺服器上執行的內建物件。這些物件具有在應用程式開發中使用的的方法、屬性和集合。
下表列出了 ASP.Net 內建物件及其簡要說明:
| 序號 | 物件及描述 |
|---|---|
| 1 |
Application 描述儲存與整個 Web 應用程式相關的資訊(包括在應用程式生命週期記憶體在的變數和物件)的物件的方法、屬性和集合。 您可以使用此物件儲存和檢索要在應用程式的所有使用者之間共享的資訊。例如,您可以使用 Application 物件建立電子商務頁面。 |
| 2 | Request 描述儲存與 HTTP 請求相關的資訊的物件的方法、屬性和集合。這包括表單、Cookie、伺服器變數和證書資料。 您可以使用此物件訪問從瀏覽器傳送到伺服器的請求中傳送的資訊。例如,您可以使用 Request 物件訪問使用者在 HTML 表單中輸入的資訊。 |
| 3 | Response 描述儲存與伺服器響應相關的資訊的物件的方法、屬性和集合。這包括顯示內容、操作標頭、設定區域設定和重定向請求。 您可以使用此物件將資訊傳送到瀏覽器。例如,您可以使用 Response 物件將指令碼的輸出傳送到瀏覽器。 |
| 4 | Server 描述提供各種伺服器任務方法的物件的方法和屬性。使用這些方法,您可以執行程式碼、獲取錯誤條件、對文字字串進行編碼、建立 Web 頁面使用的物件以及對映物理路徑。 您可以使用此物件訪問伺服器上的各種實用程式函式。例如,您可以使用 Server 物件為指令碼設定超時。 |
| 5 | Session 描述儲存與使用者會話相關的資訊的物件的方法、屬性和集合,包括在會話生命週期記憶體在的變數和物件。 您可以使用此物件儲存和檢索有關特定使用者會話的資訊。例如,您可以使用 Session 物件保留有關使用者及其偏好的資訊,並跟蹤未完成的操作。 |
ASP.Net 程式設計模型
ASP.Net 提供兩種型別的程式設計模型:
Web 窗體 - 這使您能夠建立使用者介面和將應用於使用者介面各個元件的應用程式邏輯。
WCF 服務 - 這使您能夠遠端訪問某些伺服器端功能。
對於本章,您需要使用 Visual Studio Web Developer,它是免費的。IDE 與您之前用於建立 Windows 應用程式的 IDE 幾乎相同。
Web 窗體
Web 窗體包括:
使用者介面
應用程式邏輯
使用者介面由靜態 HTML 或 XML 元素和 ASP.Net 伺服器控制元件組成。建立 Web 應用程式時,HTML 或 XML 元素和伺服器控制元件儲存在副檔名為.aspx的檔案中。此檔案也稱為頁面檔案。
應用程式邏輯由應用於頁面中使用者介面元素的程式碼組成。您可以使用任何 .Net 語言(如 VB.Net 或 C#)編寫此程式碼。下圖顯示了設計檢視中的 Web 窗體:
示例
讓我們建立一個包含 Web 窗體的新網站,該窗體將在使用者單擊按鈕時顯示當前日期和時間。請執行以下步驟:
選擇檔案→新建→網站。將出現“新建網站”對話方塊。
選擇 ASP.Net 空網站模板。為網站鍵入名稱並選擇儲存檔案的位置。
您需要向網站新增一個預設頁面。右鍵單擊解決方案資源管理器中的網站名稱,然後從上下文選單中選擇“新增新項”選項。將顯示“新增新項”對話方塊:
選擇 Web 窗體選項併為預設頁面提供名稱。我們將其命名為 Default.aspx。單擊“新增”按鈕。
預設頁面在源檢視中顯示
透過在源檢視中向頁面的 <Title> 標記新增值,設定預設網頁的標題:
要向網頁新增控制元件,請轉到設計檢視。在窗體上新增三個標籤、一個文字框和一個按鈕。
雙擊按鈕,並將以下程式碼新增到按鈕的 Click 事件中:
Protected Sub Button1_Click(sender As Object, e As EventArgs) _ Handles Button1.Click Label2.Visible = True Label2.Text = "Welcome to Tutorials Point: " + TextBox1.Text Label3.Text = "You visited us at: " + DateTime.Now.ToString() End Sub
當上述程式碼執行並使用 Microsoft Visual Studio 工具欄中提供的“啟動”按鈕執行時,瀏覽器中將開啟以下頁面:
輸入您的姓名,然後單擊“提交”按鈕:
Web 服務
Web 服務是一個 Web 應用程式,它基本上是一個類,包含其他應用程式可以使用的方法。它也遵循與 ASP.Net 網頁類似的程式碼隱藏架構,儘管它沒有使用者介面。
早期版本的 .Net Framework 使用了 ASP.Net Web 服務的概念,該服務具有 .asmx 副檔名。但是,從 .Net Framework 4.0 開始,Windows Communication Foundation (WCF) 技術已發展成為 Web 服務、.Net Remoting 和一些其他相關技術的新的繼任者。它實際上將所有這些技術組合在一起。在下一節中,我們將簡要介紹 Windows Communication Foundation (WCF)。
如果您使用的是早期版本的 .Net Framework,您仍然可以建立傳統的 Web 服務。有關詳細說明,請參閱ASP.Net - Web 服務 教程。
Windows Communication Foundation
Windows Communication Foundation 或 WCF 提供了一個 API,用於建立分散式面向服務的應用程式,稱為 WCF 服務。
與 Web 服務一樣,WCF 服務也支援應用程式之間的通訊。但是,與 Web 服務不同,此處的通訊不僅限於 HTTP。可以將 WCF 配置為透過 HTTP、TCP、IPC 和訊息佇列使用。WCF 的另一個優點是它支援雙工通訊,而 Web 服務只能實現單工通訊。
從初學者的角度來看,編寫 WCF 服務與編寫 Web 服務並沒有太大區別。為了簡單起見,我們將瞭解如何:
建立 WCF 服務
建立服務契約並定義操作
實現契約
測試服務
利用服務
示例
為了理解這個概念,讓我們建立一個簡單的服務來提供股票價格資訊。客戶端可以根據股票程式碼查詢股票的名稱和價格。為了使此示例保持簡單,值硬編碼在二維陣列中。此服務將具有兩種方法:
GetPrice 方法 - 它將根據提供的程式碼返回股票的價格。
GetName 方法 - 它將根據提供的程式碼返回股票的名稱。
建立 WCF 服務
請執行以下步驟:
開啟 VS Express for Web 2012
選擇“新建網站”以開啟“新建網站”對話方塊。
從模板列表中選擇 WCF 服務模板:
從“Web 位置”下拉列表中選擇“檔案系統”。
為 WCF 服務提供名稱和位置,然後單擊“確定”。
將建立一個新的 WCF 服務。
建立服務契約並定義操作
服務契約定義服務執行的操作。在 WCF 服務應用程式中,您會發現解決方案資源管理器中的 App_Code 資料夾中自動建立了兩個檔案
IService.vb – 此檔案包含服務契約;簡單來說,它包含服務的介面,以及服務將提供的、您將在服務中實現的方法的定義。
Service.vb – 此檔案將實現服務契約。
將 IService.vb 檔案的程式碼替換為給定的程式碼 –
Public Interface IService <OperationContract()> Function GetPrice(ByVal symbol As String) As Double <OperationContract()> Function GetName(ByVal symbol As String) As String End Interface
實現契約
在 Service.vb 檔案中,您將找到一個名為Service的類,它將實現IService介面中定義的服務契約。
將 IService.vb 的程式碼替換為以下程式碼 –
' NOTE: You can use the "Rename" command on the context menu to change the class name "Service" in code, svc and config file together.
Public Class Service
Implements IService
Public Sub New()
End Sub
Dim stocks As String(,) =
{
{"RELIND", "Reliance Industries", "1060.15"},
{"ICICI", "ICICI Bank", "911.55"},
{"JSW", "JSW Steel", "1201.25"},
{"WIPRO", "Wipro Limited", "1194.65"},
{"SATYAM", "Satyam Computers", "91.10"}
}
Public Function GetPrice(ByVal symbol As String) As Double _
Implements IService.GetPrice
Dim i As Integer
'it takes the symbol as parameter and returns price
For i = 0 To i = stocks.GetLength(0) - 1
If (String.Compare(symbol, stocks(i, 0)) = 0) Then
Return Convert.ToDouble(stocks(i, 2))
End If
Next i
Return 0
End Function
Public Function GetName(ByVal symbol As String) As String _
Implements IService.GetName
' It takes the symbol as parameter and
' returns name of the stock
Dim i As Integer
For i = 0 To i = stocks.GetLength(0) - 1
If (String.Compare(symbol, stocks(i, 0)) = 0) Then
Return stocks(i, 1)
End If
Next i
Return "Stock Not Found"
End Function
End Class
測試服務
要執行建立的 WCF 服務,請從選單欄中選擇“除錯”→“啟動除錯”選項。輸出結果將為 –
要測試服務操作,請雙擊左側窗格樹中操作的名稱。右側窗格將出現一個新選項卡。
在右側窗格的“請求”區域中輸入引數的值,然後單擊“呼叫”按鈕。
下圖顯示了測試GetPrice操作的結果 –
下圖顯示了測試GetName操作的結果 –
使用服務
讓我們在同一個解決方案中新增一個預設頁面,一個 ASP.NET Web 窗體,我們將從該頁面使用剛剛建立的 WCF 服務。
請執行以下步驟:
右鍵單擊解決方案資源管理器中的解決方案名稱,然後向解決方案新增一個新的 Web 窗體。它將命名為 Default.aspx。
在窗體上新增兩個標籤、一個文字框和一個按鈕。
我們需要向剛剛建立的 WCF 服務新增服務引用。右鍵單擊解決方案資源管理器中的網站,然後選擇“新增服務引用”選項。這將開啟“新增服務引用”對話方塊。
在“地址”文字框中輸入服務的 URL(位置),然後單擊“轉到”按鈕。它將建立一個預設名稱為ServiceReference1的服務引用。單擊“確定”按鈕。
新增引用為您的專案執行兩項任務 –
在 web.config 檔案中建立服務的地址和繫結。
建立一個代理類來訪問服務。
雙擊窗體中的“獲取價格”按鈕,在其 Click 事件中輸入以下程式碼片段 –
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Button1_Click(sender As Object, e As EventArgs) _
Handles Button1.Click
Dim ser As ServiceReference1.ServiceClient = _
New ServiceReference1.ServiceClient
Label2.Text = ser.GetPrice(TextBox1.Text).ToString()
End Sub
End Class
當上述程式碼執行並使用 Microsoft Visual Studio 工具欄中提供的“啟動”按鈕執行時,瀏覽器中將開啟以下頁面:
輸入一個符號,然後單擊“獲取價格”按鈕以獲取硬編碼的價格 –