WebService目前可是目前計算機界一個非常流行的技術了 以至于有些人把WebService列入目前最熱門的十大技術之一 的確隨著互聯(lián)網(wǎng)的廣泛應用和發(fā)展 尤其是電子商務的發(fā)展 出于互聯(lián)網(wǎng)上各種復雜的應用系統(tǒng)和對更高安全性的要求 WebService的橫空出世的確滿足了當前這些的要求和需要 其中的原因在下文中有詳細的介紹 本文的主要內容是簡要介紹一下WebService的相關知識 以及使用VisualBasic Net實現(xiàn)WebServices的具體方法和典型步驟
創(chuàng)新互聯(lián)長期為超過千家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為棗強企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站設計,棗強網(wǎng)站改版等技術服務。擁有十余年豐富建站經驗和眾多成功案例,為您定制開發(fā)。
一 WebService為何物 我們?yōu)槭裁葱枰?/p>
WebService的主要功能就是可以實現(xiàn)實現(xiàn)跨平臺的功能調用 同時由于WebService中使用XML來進行數(shù)據(jù)交換 所以在使用WebService時不用擔心防火墻的影響 由于WebService集成了各種功能 并提供了一個友好的界面 所以在WebService能夠實現(xiàn)軟件的重用
另外WebService的調用非常簡單 簡而言之調用互聯(lián)網(wǎng)上的WebService就如同調用本地的組件一樣簡單 就是通過HTTP協(xié)議來調用互聯(lián)網(wǎng)上的組件 至于具體的調用方法 請參閱本文第五節(jié)第七段的內容 所以Web Service就是互聯(lián)網(wǎng)上的組件調用
二 和Web Service相關的標準 協(xié)議
Web Service是通過一系列標準和協(xié)議來保證和程序之間的動態(tài)連接和實現(xiàn)其安全調用的 其中主要的標準和協(xié)議是 XML WSDL SOAP HTTP UDDI 下面就簡要介紹這些標準和協(xié)議
XML Web Service之間和Web Service和應用程序之間都是采用XML進行數(shù)據(jù)交換的 Web Service由于基于了XML 這樣Web Service在具備XML帶來的優(yōu)勢的同時 也擁有了由于XML所帶來的缺點 其中XML所帶來的最重要缺點就是Web Service將大量的占有CPU的資源 因為XML數(shù)據(jù)要經過多步處理才能被系統(tǒng)使用 所以 即使調用一個功能較小的Web Service 也會感覺速度很慢 所以網(wǎng)絡中對運行Web Service的主機要求是很高的
HTTP 應用程序是提供HTTP協(xié)議來調用Web Service的 所以HTTP在Web Service調用過程中 起著通道的作用
WSDL 是Web Service描述語言的簡寫 它是XML格式 其作用是描述Web Service 指示應用程序和與Web Servie交互的方法 當實現(xiàn)了某種Web Service服務時 為了讓別的程序調用 就必須告訴此Web Service的接口 如 服務名稱 服務所在的機器名稱 監(jiān)聽端口號 傳遞參數(shù)的類型等等 WSDL就是規(guī)定了有關Web Services描述的標準
UDDI 是Universal Description Discovery and Integration的縮寫 簡單說 UDDI用于集中存放和查找WSDL描述文件 起著目錄服務器的作用
SOAP 是 Simple Object Access Protocol 的縮寫 即 簡單對象訪問協(xié)議 SOAP是一種消息傳遞的協(xié)議 它規(guī)定了Web Services之間傳遞信息的方式
三 本文章的程序設計 調試和運行的環(huán)境
( ) 微軟公司視窗 中文企業(yè)版
( ) Visual Studio Net 企業(yè)構建版 Net FrameWork SDK 版本號
( ) IIS服務啟動
四 Visual Basic Net實現(xiàn)Web Service
Net 的大的推動了Web Service的發(fā)展 而Visual Studio Net的出現(xiàn)又極大的推動了Web Service的的廣泛應用 在Visual Studio Net推出之前 編寫一個Web Service是一項非常復雜的工作 同樣調用這個Web Service也十分麻煩 由于Visual Studio Net對Web Service提供了較強的支持 很多細致 煩雜的工作都由Visual Studio Net自動完成了 這樣就使得上述工作變得非常簡單 甚至不了解Web Service和其相關的標準 協(xié)議 也可以使用Visual Studio Net編寫Web Service 并使用這個Web Service 下面就來用Visual Basic Net實現(xiàn)一個Web Service 此Web Service和數(shù)據(jù)庫相關 數(shù)據(jù)庫類型選用的是Sql Server 此Web Service提供了二個函數(shù)功能調用 其一名稱為Binding 用以實現(xiàn)數(shù)據(jù)綁定 其二名稱為Update 用以更新數(shù)據(jù)庫中的數(shù)據(jù)
以下就是Visual Basic Net實現(xiàn)此Web Service的具體步驟
啟動Visual Studio Net
選擇菜單「文件」|「新建」|「項目」后 彈出「新建項目」對話框
將「項目類型」設置為「Visual Basic項目」
將「模板」設置為「ASP NET Web 服務」
在「位置」的文本框中輸入//localhost/UpdateDataWebService 后 單擊「確定」按鈕 這樣在Visual Studio Net就會計算機Internet信息服務的默認目錄中創(chuàng)建一個名稱為 UpdateDataWebService 文件夾 里面存放的是此項目的文件 具體如圖 所示
圖 創(chuàng)建Web Service項目對話框
選中「解決方案資源管理器」中的 Service a *** x 文件 單擊鼠標右鍵 在彈出的菜單中選擇「查看代碼」 則進入Service a *** x vb的編輯界面
在Service a *** x……vb的首部 在導入命名空間的代碼區(qū)中添加下列代碼 下列代碼作用是導入命名空間System Data SqlClient
Imports System Data SqlClient
在Service a *** x……vb文件的 Public Class Service 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 dsEnd FunctionWebMethod ( ) 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 dsEnd Function
保存上述的修改 一個簡單的操作Sql Server數(shù)據(jù)庫的Web Service就完成了 此時單擊快捷鍵F 此Web Service就開始運行 并可以對外提供服務了 具體如圖 所示:
圖 :Web Service提供服務是的界面
Service a *** x vb的代碼清單如下:
Imports System Web ServicesImports System Data SqlClientWebService ( Namespace := ) _Public Class Service Inherits System Web Services WebServiceWebMethod ( ) 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 dsEnd FunctionWebMethod ( ) 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 dsEnd Function#Region Web 服務設計器生成的代碼 Public Sub New ( ) MyBase New ( ) 該調用是 Web 服務設計器所必需的 InitializeComponent ( ) 在 InitializeComponent ( ) 調用之后添加您自己的初始化代碼End Sub Web 服務設計器所必需的Private ponents As System ComponentModel IContainer 注意 以下過程是 Web 服務設計器所必需的 可以使用 Web 服務設計器修改此過程 不要使用代碼編輯器修改它 System Diagnostics DebuggerStepThrough ( ) Private Sub InitializeComponent ( ) ponents = New System ComponentModel Container ( )End SubProtected Overloads Overrides Sub Dispose ( ByVal disposing As Boolean ) CODEGEN: 此過程是 Web 服務設計器所必需的 不要使用代碼編輯器修改它 If disposing Then If Not ( ponents Is Nothing ) Thenponents Dispose ( ) End IfEnd IfMyBase Dispose ( disposing )End Sub#End Region Web 服務示例 HelloWorld ( ) 示例服務返回字符串 Hello World 若要生成項目 請取消注釋以下行 然后保存并生成項目 若要測試此 Web 服務 請確保 a *** x 文件為起始頁 并按 F 鍵 WebMethod ( ) Public Function HelloWorld ( ) As String HelloWorld = Hello World End FunctionEnd Class
下面就來介紹Visual Basic Net中使用這個Web Service提供的服務來更新數(shù)據(jù)庫的實現(xiàn)方法
五 在Visual Basic Net調用Web Service提供的服務:
當Web Service已經處于對外提供服務狀態(tài) Visual Basic Net就可以通過HTTP 調用 來使用這些服務了 當然前提是要了解Web Service對外提供服務所對應的URL 當了解到Web Service對應的URL后 Visual Basic Net就像是使用本地的類庫一樣使用Web Service中提供的各種功能 所以有些人說 Web Service從實質上說 就是通過HTTP調用遠程組件的一種方式 在Visual Basic Net具體實現(xiàn)加入Web Service可參閱下面步驟中的第七步
在下面介紹的這個數(shù)據(jù)庫應用程序是通過使用上面的Web Service中提供的 Binding 服務 對程序中DataGrid組件實現(xiàn)數(shù)據(jù)綁定 提供使用Web Service中提供的 Update 服務 通過程序中的DataGrid來修改數(shù)據(jù)庫 下面就是Visual Basic Net中使用Web Service提供服務來編寫數(shù)據(jù)庫應用程序的具體步驟 :
啟動Visual Studio Net
選擇菜單【文件】|【新建】|【項目】后 彈出【新建項目】對話框
將【項目類型】設置為【Visual Basic項目】
將【模板】設置為【W(wǎng)indows應用程序】
在【名稱】文本框中輸入【TestWebService】
在【位置】的文本框中輸入【E:\VS NET項目】 然后單擊【確定】按鈕 這樣在 E:\VS NET項目 中就產生了名稱為 TestWebService 文件夾 里面存放的就是TestWebService項目的所有文件
選擇【解決方案資源管理器】|【引用】后 單擊鼠標右鍵 在彈出的菜單中選擇【添加Web 引用】 在彈出的【添加Web引用】對話框中的【地址】文本框中輸入 后 單擊回車鍵后 可得圖 所示界面 單擊圖 中【添加引用】按鈕 則在【TestWebService】項目中加入了Web引用 請注意 就是上面完成的Web Service對外提供服務的URL地址 具體可參閱圖 所示:
圖 :在【TestWebService】添加Web Service提供的服務
從【工具箱】中的【W(wǎng)indows窗體組件】選項卡中往Form 窗體中拖入下列組件 并執(zhí)行相應的操作:
一個DataGrid組件
二個Button組件 分別是Button 至Button 并在這二個Button組件拖入Form 的設計窗體后 分別雙擊它們 則系統(tǒng)會在Form vb文件分別產生這二個組件的Click事件對應的處理代碼
按照表 所示調整窗體中各組件屬性的數(shù)值
組件類型 組件名稱 屬性 設置結果 Form Form Text 測試Web Service Form MaximizeBox False Form FormBorderStyle FixedSingle Button Button Text 綁定 Button FlatStyle Flat Button Text 修改 Button FlatStyle Flat
表 :【TestWebService】項目中組件的主要屬性及其對應數(shù)值
在調整完組件屬性值后 再按照圖 所示調整組件的位置和排列順序:
圖 :【TestWebService】項目中組件排列位置和順序
把Visual Studio Net的當前窗口切換到Form vb的代碼編輯窗口 并用下列代碼替換Form vb中的Button 的Click事件對應的處理代碼 下列代碼功能是使用Web Service中提供的 Binding 服務對DataGrid組件實現(xiàn)數(shù)據(jù)綁定:
Private Sub Button _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles Button Click Dim MyService As New localhost Service ( ) DataGrid DataSource = MyService Binding ( ) DataGrid DataMember = Cust End Sub
用下列代碼替換Form vb中的Button 的Click事件對應的處理代碼 下列代碼功能是使用Web Service中提供的 Update 服務實現(xiàn)通過DataGrid來修改數(shù)據(jù)庫數(shù)據(jù):
Private Sub Button _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles Button Click Dim MyService As New localhost Service ( ) Dim ds As DataSet = DataGrid DataSource Dim dsChanges As DataSet = ds GetChanges ( ) If Not ( dsChanges Is Nothing ) Thends Merge ( MyService Update ( dsChanges ) True ) End IfEnd Sub
至此 【TestWebService】項目的全部工作就完成了 調用Web Service是不是很簡單 此時單擊快捷鍵F 運行程序后 單擊程序中的【綁定】按鈕就會對程序中的DataGrid組件實現(xiàn)數(shù)據(jù)綁定 單擊程序中的【修改】按鈕 則程序會根據(jù)DataGrid中的內容來更新數(shù)據(jù)庫 圖 就是【TestWebService】的運行界面:
圖 :【TestWebService】的運行界面
Form vb的代碼清單如下:
Public Class Form 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 ThenIf Not ( ponents Is Nothing ) Then ponents Dispose ( )End If End If MyBase Dispose ( disposing )End Sub Windows 窗體設計器所必需的Private ponents As System ComponentModel IContainer 注意 以下過程是 Windows 窗體設計器所必需的 可以使用 Windows 窗體設計器修改此過程 不要使用代碼編輯器修改它 Friend WithEvents Button As System Windows Forms Button Friend WithEvents Button As System Windows Forms Button Friend WithEvents DataGrid As System Windows Forms DataGrid System Diagnostics DebuggerStepThrough ( ) Private Sub InitializeComponent ( ) Me Button = New System Windows Forms Button ( ) Me Button = New System Windows Forms Button ( ) Me DataGrid = New System Windows Forms DataGrid ( ) CType ( Me DataGrid System ComponentModel ISupportInitialize ) BeginInit ( ) Me SuspendLayout ( ) Me Button FlatStyle = System Windows Forms FlatStyle Flat Me Button Location = New System Drawing Point ( ) Me Button Name = Button Me Button Size = New System Drawing Size ( ) Me Button TabIndex = Me Button Text = 綁定 Me Button FlatStyle = System Windows Forms FlatStyle Flat Me Button Location = New System Drawing Point ( ) Me Button Name = Button Me Button Size = New System Drawing Size ( ) Me Button TabIndex = Me Button Text = 修改 Me DataGrid DataMember = Me DataGrid Dock = System Windows Forms DockStyle Top Me DataGrid HeaderForeColor = System Drawing SystemColors ControlText Me DataGrid Name = DataGrid Me DataGrid Size = New System Drawing Size ( ) Me DataGrid TabIndex = Me AutoScaleBaseSize = New System Drawing Size ( ) Me ClientSize = New System Drawing Size ( ) Me Controls AddRange ( New System Windows Forms Control ( ) {Me DataGrid Me Button Me Button } ) Me Name = Form Me Text = 測試Web Service CType ( Me DataGrid System ComponentModel ISupportInitialize ) EndInit ( ) Me ResumeLayout ( False )End Sub#End RegionPrivate Sub Button _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles Button Click Dim MyService As New localhost Service ( ) DataGrid DataSource = MyService Binding ( ) DataGrid DataMember = Cust End SubPrivate Sub Button _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles Button Click Dim MyService As New localhost Service ( ) Dim ds As DataSet = DataGrid DataSource Dim dsChanges As DataSet = ds GetChanges ( ) If Not ( dsChanges Is Nothing ) Thends Merge ( MyService Update ( dsChanges ) True ) End IfEnd SubEnd Class
六 總結
lishixinzhi/Article/program/net/201311/11839
使用控件是可以實現(xiàn)的,比如spire.xls.dll的教程文章可以看看作參考
應該說是asp點虐 (vb點虐 )的網(wǎng)站,后臺程序是用vb點虐 寫的。
1、安裝vs點虐 軟件(選默認語言是vb點虐 ),安裝iis服務器,安裝數(shù)據(jù)庫
2、運行vs點虐 軟件,新建asp點虐 網(wǎng)站,寫好網(wǎng)頁。需要具備的知識點有html+div、javascript、jqurey、AJAX、vb點虐 、數(shù)據(jù)庫的操作等。
3、在網(wǎng)上購買一個網(wǎng)站虛擬空間,購買一個域名,發(fā)布自已做好的網(wǎng)站上去就OK了
通用模塊?
VB6:工程資源管理器的右鍵菜單中的“添加”里面有標準模塊
VB.NET:類視圖空白區(qū)域右鍵菜單中“添加”類里面的“模塊”