程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB.NET >> VB.Net編程完成Web Service的根底

VB.Net編程完成Web Service的根底

編輯:VB.NET

VB.Net編程完成Web Service的根底。本站提示廣大學習愛好者:(VB.Net編程完成Web Service的根底)文章只能為提供參考,不一定能成為您想要的結果。以下是VB.Net編程完成Web Service的根底正文


Web Service目前可是目前計算機界一個十分盛行的技術了,以致於有些人把Web Service列入目前最搶手的十大技術之一。本文的次要內容是扼要引見一下Web Service的相關知識,以及運用Visual Basic .Net完成Web Services的詳細辦法和典型步驟。

Web Service目前可是目前計算機界一個十分盛行的技術了,以致於有些人把Web Service列入目前最搶手的十大技術之一。確實隨著互聯網的普遍使用和開展,尤其是電子商務的開展,出於互聯網上各種復雜的使用零碎和對更高平安性的要求,Web Service的橫空出生確實滿足了以後這些的要求和需求,其中的緣由在下文中有詳細的引見。本文的次要內容是扼要引見一下Web Service的相關知識,以及運用Visual Basic .Net完成Web Services的詳細辦法和典型步驟。

一.Web Service為何物,我們為什麼需求它:

Web Service的次要功用就是可以完成完成跨平台的功用調用。同時由於Web Service中運用XML來停止數據交流,所以在運用Web Service時不必擔憂防火牆的影響。由於Web Service集成了各種功用,並提供了一個敵對的界面。所以在Web Service可以完成軟件的重用。

另外Web Service的調用十分復雜,簡而言之調用互聯網上的Web Service 就好像調用本地的組件一樣復雜,就是經過HTTP協議來調用互聯網上的組件。至於詳細的調用辦法,請參閱本文第五節第七段的內容。所以Web Service就是互聯網上的組件調用。

二.和Web Service相關的規范、協議:

Web Service是經過一系列規范和協議來保證和順序之間的靜態銜接和完成其平安調用的。其中次要的規范和協議是:XML、WSDL、SOAP、HTTP、UDDI。上面就扼要引見這些規范和協議。

1. XML:Web Service之間和Web Service和使用順序之間都是采用XML停止數據交流的。Web Service由於基於了XML,,這樣Web Service在具有XML帶來的優勢的同時,也擁有了由於XML所帶來的缺陷。其中XML所帶來的最重要缺陷就是Web Service將少量的占有CPU的資源,由於XML數據要經過多步處置才干被零碎運用。所以,即便調用一個功用較小的Web Service,也會覺得速度很慢,所以網絡中對運轉Web Service的主機要求是很高的。

2. HTTP:使用順序是提供HTTP協議來調用Web Service的。所以HTTP在Web Service調用進程中,起著通道的作用。

3. WSDL::是Web Service描繪言語的簡寫。它是XML格式,其作用是描繪Web Service,指示使用順序和與Web Servie交互的辦法。當完成了某種Web Service服務時,為了讓別的順序調用,就必需通知此Web Service的接口。如:服務稱號,服務所在的機器稱號,監聽端口號,傳遞參數的類型等等。WSDL就是規則了有關Web Services描繪的規范。

4. UDDI:是Universal Description, Discovery, and Integration的縮寫。復雜說,UDDI用於集中寄存和查找WSDL描繪文件,起著目錄服務器的作用。

5. SOAP:是"Simple Object Access Protocol"的縮寫,即:復雜對象訪問協議。SOAP是一種音訊傳遞的協議,它規則了Web Services之間傳遞信息的方式。

三.本文章的順序設計、調試和運轉的環境:

(1).微軟公司視窗2003中文企業版。

(2).Visual Studio .Net 2003企業構建版,.Net FrameWork SDK 1.1版本號4322。

(3).IIS服務啟動。

四.Visual Basic .Net完成Web Service:

.Net 的大的推進了Web Service的開展,而Visual Studio .Net的呈現又極大的推進了Web Service的的普遍使用。在Visual Studio .Net推出之前,編寫一個Web Service是一項十分復雜的任務,異樣調用這個Web Service也非常費事。由於Visual Studio .Net對Web Service提供了較強的支持,很多細致、煩雜的任務都由Visual Studio .Net自動完成了。這樣就使得上述任務變得十分復雜。甚至不理解Web Service和其相關的規范、協議,也可以運用Visual Studio .Net編寫Web Service,並運用這個Web Service。上面就來用Visual Basic .Net完成一個Web Service,此Web Service和數據庫相關,數據庫類型選用的是Sql Server。此Web Service提供了二個函數功用調用,其一稱號為Binding,用以完成數據綁定,其二稱號為Update,用以更新數據庫中的數據。

以下就是Visual Basic .Net完成此Web Service的詳細步驟:

1. 啟動Visual Studio .Net。

2. 選擇菜單【文件】|【新建】|【項目】後,彈出【新建項目】對話框。

3. 將【項目類型】設置為【Visual Basic項目】。

4. 將【模板】設置為【ASP.NET Web 服務】。

5. 在【地位】的文本框中輸出"http://localhost/UpdateDataWebService"後,單擊【確定】按鈕,這樣在Visual Studio .Net就會計算機Internet信息服務的默許目錄中創立一個稱號為"UpdateDataWebService"文件夾,外面寄存的是此項目的文件。詳細如圖01所示:

圖01:創立Web Service項目對話框

6. 選中【處理方案資源管理器】中的"Service1.asmx"文件,單擊鼠標右鍵,在彈出的菜單中選擇【檢查代碼】,則進入Service1.asmx.vb的編輯界面。

7. 在Service1.asmx..vb的首部,在導入命名空間的代碼區中添加下列代碼,下列代碼作用是導入命名空間System.Data.SqlClient:

Imports System.Data.SqlClient

8. 在Service1.asmx..vb文件的"Public Class Service1 Inherits System.Web.Services.WebService"代碼後,添加下列代碼,下列代碼是在Web Service中定義二個功用調用:

<WebMethod ( ) > Public Function Binding ( ) As DataSet
  Dim con As New SqlConnection ( "Server = localhost ; uid = sa ; pwd = ; database = northwind" )
  Dim daCust As New SqlDataAdapter ( "Select * From Customers" , con )
  Dim ds As New DataSet ( )
  daCust.Fill( ds , "Cust" )
  Return ds
End Function
<WebMethod ( ) > Public Function Update ( ByVal ds As DataSet ) As DataSet
  Dim con As New SqlConnection ( "Server = localhost ; uid = sa ; pwd = ; database = northwind " )
  Dim daCust As New SqlDataAdapter ( "Select * From Customers" , con )
  Dim cbCust As New SqlCommandBuilder ( daCust )
  daCust.Update ( ds , "Cust" )
  Return ds
End Function

9. 保管上述的修正,一個復雜的操作Sql Server數據庫的Web Service就完成了,此時單擊快捷鍵F5,此Web Service就開端運轉,並可以對外提供服務了。詳細如圖02所示:

圖02:Web Service提供服務是的界面

Service1.asmx.vb的代碼清單如下:

Imports System.Web.Services
Imports System.Data.SqlClient
<WebService ( Namespace := "http://tempuri.org/" ) > _
Public Class Service1
Inherits System.Web.Services.WebService
<WebMethod ( ) > Public Function Binding ( ) As DataSet
'Modify this Connection string to use your SQL Server and log on.
  Dim con As New SqlConnection ( "Server=localhost;uid=sa;pwd=;database=northwind" )
  Dim daCust As New SqlDataAdapter ( "Select * From Customers" , con )
  Dim ds As New DataSet ( )
  daCust.Fill ( ds , "Cust" )
  Return ds
End Function
<WebMethod ( ) > Public Function Update ( ByVal ds As DataSet ) As DataSet
  Dim con As New SqlConnection ( "Server=localhost;uid=sa;pwd=;database=northwind" )
  Dim daCust As New SqlDataAdapter ( "Select * From Customers" , con )
  Dim cbCust As New SqlCommandBuilder ( daCust )
  daCust.Update ( ds , "Cust" )
  Return ds
End Function
#Region " Web 服務設計器生成的代碼 "
Public Sub New ( )
  MyBase.New ( )
  '該調用是 Web 服務設計器所必需的。
  InitializeComponent ( )
  '在 InitializeComponent ( ) 調用之後添加您自己的初始化代碼
End Sub
'Web 服務設計器所必需的
Private components As System.ComponentModel.IContainer
  '留意:以下進程是 Web 服務設計器所必需的
  '可以運用 Web 服務設計器修正此進程。
  '不要運用代碼編輯器修正它。
  <System.Diagnostics.DebuggerStepThrough ( ) > Private Sub InitializeComponent ( )
  components = New System.ComponentModel.Container ( )
End Sub
Protected Overloads Overrides Sub Dispose ( ByVal disposing As Boolean )
'CODEGEN: 此進程是 Web 服務設計器所必需的
'不要運用代碼編輯器修正它。
If disposing Then
  If Not ( components Is Nothing ) Then
   components.Dispose ( )
  End If
End If
MyBase.Dispose ( disposing )
End Sub
#End Region
' Web 服務示例
' HelloWorld ( ) 示例服務前往字符串 Hello World。
' 若要生成項目,請取消正文以下行,然後保管並生成項目。
' 若要測試此 Web 服務,請確保 .asmx 文件為起始頁
' 並按 F5 鍵。
'
'<WebMethod ( ) > Public Function HelloWorld ( ) As String
' HelloWorld = "Hello World"
' End Function
End Class

上面就來引見Visual Basic .Net中運用這個Web Service提供的服務來更新數據庫的完成辦法。

五.在Visual Basic .Net調用Web Service提供的服務:

當Web Service曾經處於對外提供服務形態,Visual Basic .Net就可以經過HTTP"調用"來運用這些服務了。當然前提是要理解Web Service對外提供服務所對應的URL,當理解到Web Service對應的URL後,Visual Basic .Net好像是運用本地的類庫一樣運用Web Service中提供的各種功用。所以有些人說,Web Service從本質上說,就是經過HTTP調用近程組件的一種方式。在Visual Basic .Net詳細完成參加Web Service可參閱上面步驟中的第七步。

在上面引見的這個數據庫使用順序是經過運用下面的Web Service中提供的"Binding"服務,對順序中DataGrid組件完成數據綁定,提供運用Web Service中提供的"Update"服務,經過順序中的DataGrid來修正數據庫。上面就是Visual Basic .Net中運用Web Service提供服務來編寫數據庫使用順序的詳細步驟,:

1. 啟動Visual Studio .Net。

2. 選擇菜單【文件】|【新建】|【項目】後,彈出【新建項目】對話框。

3. 將【項目類型】設置為【Visual Basic項目】。

4. 將【模板】設置為【Windows使用順序】。

5. 在【稱號】文本框中輸出【TestWebService】。

6. 在【地位】的文本框中輸出【E:\VS.NET項目】,然後單擊【確定】按鈕,這樣在"E:\VS.NET項目"中就發生了稱號為"TestWebService"文件夾,外面寄存的就是TestWebService項目的一切文件。

7. 選擇【處理方案資源管理器】|【援用】後,單擊鼠標右鍵,在彈出的菜單中選擇【添加Web 援用】,在彈出的【添加Web援用】對話框中的【地址】文本框中輸出"http://localhost/ UpdateDataWebService /Service1.asmx "後,單擊回車鍵後,可得圖03所示界面。單擊圖03中【添加援用】按鈕,則在【TestWebService】項目中參加了Web援用。請留意"http://localhost/ UpdateDataWebService /Service1.asmx "就是下面完成的Web Service對外提供服務的URL地址,詳細可參閱圖02所示:

圖03:在【TestWebService】添加Web Service提供的服務

8. 從【工具箱】中的【Windows窗體組件】選項卡中往Form1窗體中拖入下列組件,並執行相應的操作:

一個DataGrid組件。

二個Button組件,,辨別是Button1至Button2,並在這二個Button組件拖入Form1的設計窗體後,辨別雙擊它們,則零碎會在Form1.vb文件辨別發生這二個組件的Click事情對應的處置代碼。

9. 依照表01所示調整窗體中各組件屬性的數值:

組件類型 組件稱號 屬性 設置後果 Form Form1 Text 測試Web Service Form1 MaximizeBox False Form1 FormBorderStyle FixedSingle Button Button1 Text 綁定 Button1 FlatStyle Flat Button2 Text 修正 Button2 FlatStyle Flat

表01:【TestWebService】項目中組件的次要屬性及其對應數值

在調整完組件屬性值後,再依照圖04所示調整組件的地位和陳列順序:

圖04:【TestWebService】項目中組件陳列地位和順序

10. 把Visual Studio .Net的以後窗口切換到Form1.vb的代碼編輯窗口,並用下列代碼交換Form1.vb中的Button1的Click事情對應的處置代碼,下列代碼功用是運用Web Service中提供的"Binding"服務對DataGrid組件完成數據綁定:

Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click
  Dim MyService As New localhost.Service1 ( )
  DataGrid1.DataSource = MyService.Binding ( )
  DataGrid1.DataMember = "Cust"
End Sub

11. 用下列代碼交換Form1.vb中的Button2的Click事情對應的處置代碼,下列代碼功用是運用Web Service中提供的"Update"服務虛現經過DataGrid來修正數據庫數據:

Private Sub Button2_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button2.Click
  Dim MyService As New localhost.Service1 ( )
  Dim ds As DataSet = DataGrid1.DataSource
  Dim dsChanges As DataSet = ds.GetChanges ( )
  If Not ( dsChanges Is Nothing ) Then
   ds.Merge ( MyService.Update ( dsChanges ) , True )
  End If
End Sub

12. 至此, 【TestWebService】項目的全部任務就完成了,調用Web Service是不是很復雜。此時單擊快捷鍵F5運轉順序後。單擊順序中的【綁定】按鈕就會對順序中的DataGrid組件完成數據綁定,單擊順序中的【修正】按鈕,則順序會依據DataGrid中的內容來更新數據庫,圖05就是【TestWebService】的運轉界面:

圖05:【TestWebService】的運轉界面

13. Form1.vb的代碼清單如下:

Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows 窗體設計器生成的代碼 "
Public Sub New ( )
  MyBase.New ( )
  '該調用是 Windows 窗體設計器所必需的。
  InitializeComponent ( )
  '在 InitializeComponent ( ) 調用之後添加任何初始化
End Sub
'窗體重寫處置以清算組件列表。
Protected Overloads Overrides Sub Dispose ( ByVal disposing As Boolean )
  If disposing Then
   If Not ( components Is Nothing ) Then
    components.Dispose ( )
   End If
  End If
  MyBase.Dispose ( disposing )
End Sub
'Windows 窗體設計器所必需的
Private components As System.ComponentModel.IContainer
  '留意:以下進程是 Windows 窗體設計器所必需的
  '可以運用 Windows 窗體設計器修正此進程。
  '不要運用代碼編輯器修正它。
  Friend WithEvents Button1 As System.Windows.Forms.Button
  Friend WithEvents Button2 As System.Windows.Forms.Button
  Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid
  <System.Diagnostics.DebuggerStepThrough ( ) > Private Sub InitializeComponent ( )
  Me.Button1 = New System.Windows.Forms.Button ( )
  Me.Button2 = New System.Windows.Forms.Button ( )
  Me.DataGrid1 = New System.Windows.Forms.DataGrid ( )
  CType ( Me.DataGrid1 , System.ComponentModel.ISupportInitialize ) .BeginInit ( )
  Me.SuspendLayout ( )
  Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat
  Me.Button1.Location = New System.Drawing.Point ( 56 , 216 )
  Me.Button1.Name = "Button1"
  Me.Button1.Size = New System.Drawing.Size ( 75 , 32 )
  Me.Button1.TabIndex = 0
  Me.Button1.Text = "綁定"
  Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat
  Me.Button2.Location = New System.Drawing.Point ( 168 , 216 )
  Me.Button2.Name = "Button2"
  Me.Button2.Size = New System.Drawing.Size ( 75 , 32 )
  Me.Button2.TabIndex = 1
  Me.Button2.Text = "修正"
  Me.DataGrid1.DataMember = ""
  Me.DataGrid1.Dock = System.Windows.Forms.DockStyle.Top
  Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText
  Me.DataGrid1.Name = "DataGrid1"
  Me.DataGrid1.Size = New System.Drawing.Size ( 292 , 192 )
  Me.DataGrid1.TabIndex = 2
  Me.AutoScaleBaseSize = New System.Drawing.Size ( 6 , 14 )
  Me.ClientSize = New System.Drawing.Size ( 292 , 273 )
  Me.Controls.AddRange ( New System.Windows.Forms.Control ( ) {Me.DataGrid1 , Me.Button2 , Me.Button1} )
  Me.Name = "Form1"
  Me.Text = "測試Web Service"
  CType ( Me.DataGrid1 , System.ComponentModel.ISupportInitialize ) .EndInit ( )
  Me.ResumeLayout ( False )
End Sub
#End Region
Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click
  Dim MyService As New localhost.Service1 ( )
  DataGrid1.DataSource = MyService.Binding ( )
  DataGrid1.DataMember = "Cust"
End Sub
Private Sub Button2_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button2.Click
  Dim MyService As New localhost.Service1 ( )
  Dim ds As DataSet = DataGrid1.DataSource
  Dim dsChanges As DataSet = ds.GetChanges ( )
  If Not ( dsChanges Is Nothing ) Then
   ds.Merge ( MyService.Update ( dsChanges ) , True )
  End If
End Sub
End Class

五.總結:

本文引見了Web Service在目前大行其道的緣由,並結合二個示例引見Visual Basic .Net在Web Service的完成和調用上的弱小功用,正如本文後面所說,Visual Studio .Net的呈現使得web Service的這項原先冗雜的任務變得異常的復雜,由於Visual Basic .Net曾經替代我們作了這些描繪性的、根底的底層任務,以致於你不需求理解為什麼,只需求知道你要完成什麼就可以編寫、調用Web Service了。 在完成Web Service在數據庫方面使用所顯示

Web Service雖然以其弱小功用和其優越性正在遭到越來越多人的喜愛,但也不可以逃避它的缺陷,譬如其速度慢就使得我簡直無法忍耐。等等這樣的緣由也決議了Web Service並不適用於一切的環境。如單機運轉順序和局域網上的同構使用順序等就盡量不采用Web Service方式。本文只是展現了Visual Studio .Net在Web Service上的初步用處,至於更復雜的運用、調用辦法只能在後續的文章中引見了,感興味的冤家,我們下一文再見!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved