learn wcf service basic
wcf是使用託管**建立和執行面向服務
(service oriented)
應用程式的統一框架。它使得開發者能夠建立乙個跨平台的、安全、可信賴、事務性的解決方案,且能與已有系統相容協作。
wcf是微軟分布式應用程式開發的集大成者,它整合了
.net
平台下所有的和分布式系統有關的技術,例如
.net remoting
、a**x
、wse
和m**q
。一些術語解釋:
soa:
面向服務的體系結構(
service-oriented architecture
,soa
)是一種
it 體系結構風格,支援將業務轉換為一組相互鏈結的服務或可重複業務任務,可在需要時通過網路訪問這些服務和任務。這個網路可以是本地網路、
internet
,也可以分散於各地且採用不同的技術,比如通過對來自紐約、倫敦和中國香港的服務進行組合,可讓終端使用者感覺似乎這些服務就安裝在本地桌面上一樣。可以對這些服務進行結合,以完成特定的業務任務,從而讓業務快速適應不斷變化的客觀條件和需求。
wse:
wse(web service
s enhancements
) 是微軟提供的乙個實現了
ws-security, ws-routing, ws-policy
、ws-addressing
,ws-attachments and dime
等標準的元件
(dll)
。是對web service
的補充與加強。它使得開發人員可以不需要深入了解上述協議的具體內容就可以開發相應的
web services
程式,大大簡化了開發難度,使得
web services
應用在企業級專案上成為可能。
.net remoting:
簡而言之,可以將其看作是一種分布式處理方式。從微軟的產品角度來看,可以說
remoting
就是dcom
的一種公升級,它改善了很多功能,並極好的融合到
.net
平台下。
microsoft .net remoting
提供了一種允許物件通過應用程式域與另一物件進行互動的框架
。它能夠高效能的實現
.net
與.net
之間的通訊。
m**q:
m**q(microsoft message queue
,微軟訊息佇列
)是在多個不同的應用之間實現相互通訊的一種非同步傳輸模式,相互通訊的應用可以分布於同一臺機器上,也可以分布於相連的網路空間中的任一位置。它的實現原理是:訊息的傳送者把自己想要傳送的資訊放入乙個容器中(我們稱之為
message
),然後把它儲存至乙個系統公用空間的訊息佇列
(message queue)
中;本地或者是異地的訊息接收程式再從該佇列中取出發給它的訊息進行處理。
soap
:簡單物件訪問協議
(soap
,全稱為
****** object access protocol)
是一種標準化的通訊協議,它主要用於
web服務
(web service)
中。soap
的出現是為了簡化網路伺服器
(web server)
在從xml
資料庫中提取資料時,不用花時間格式化頁面,並且能夠讓不同的應用程式之間通過
協議,以
xml格式互相交換彼此的資料,使其與程式語言、平台和硬體無關。
enterprise service(com+)
:enterprise services
可以追溯到發布為乙個
windows nt 4.0
選項包的
microsoft transaction server (mts)
。mts
提供了com
物件的事務處理等服務,擴充套件了
com。由於
mts擴充套件
com的方式與
com不相容,所以從
mts應用程式中呼叫
com物件需要特定
mts api
呼叫。by
林剛windows 2000
的乙個最重要的新特性是在
com+
中整合了
mts和
com。在
windows 2000
中,com+
基本服務支援
com+服務(
以前的mts服務)
需要的環境,例如分布式事務處理。
com+
也新增了一些服務。
com+ 1.5
可以在windows xp
和windows server 2003
中使用。
com+ 1.5
也新增了一些特性,以提高可伸縮性和可用性,包括應用程式池和迴圈,以及可配置的隔離級別。
.net enterprise services
可以在.net
元件中使用
com+
服務,並為
windows 2000
及其後續版本提供了支援。在
com+
應用程式中執行
.net
元件,不需要使用
ccw;而是作為
.net
元件執行。在作業系統上安裝
.net
執行庫程式,會給
com+
服務新增一些擴充套件。
wcf可以非常簡單的建立乙個webservice,下面我們通過乙個例子來進行說明。
例子:第一步: 新增
wcf名稱域:
using
system.servicemodel;
using
system.servicemodel.description;
servicemodel 是.net當中用來實現wcf服務功能的名稱域。
第二步: 定義服務。
[servicecontract()]
public
inte***ce
iserviceinte***ce
public
class
service1 : iserviceinte***ce
}一般來講,將服務定義為介面,然後由它衍生出多中服務的類。這樣做的乙個好處是可以在介面級別定義屬性,而在服務的類的級別看不到任何屬性資訊。只需要實現預先定義好的方法就可以。
第三步:
建立宿主,
wcf的
service
可以執行在程式,
windows
服務或者
asp.net
上面,我們使用
console
來建立宿主:
internal
class
myservicehost
internal
static
void stopservice()
} static
void main(string args)
這裡,我們定義了乙個宿主
myservicehost,
其中包含乙個
servicehost
類的成員,
servicehost
類是servicemodel
當中用來建立通訊物件的類。我們可以通過它來建立乙個監聽的物件,成為
endpointlistener.
第四步:建立
wcf執行時。
internal
static
void startservice()
第五步:
測試:在瀏覽器當中鍵入
,將會看到建立的服務顯示:
第六步:用應用程式客戶端測試
wcf服務:
在命令列中敲入
會自動生成客戶端
serviceclient
物件的**,產生兩個檔案
service1.cs
和output.config
,然後在客戶端就可以使用服務客戶端的類進行同
wcf service
的通訊。
class
}
建立WCF服務
我們在開發wcf時,一般用vs建立wcf專案,然後 自動生成。但如果你想要真正了解全過程,不防,咱門今天晚上自己從零開始。完成乙個wcf的服務發布。模擬場景 我們要建立乙個全國文憑資源查詢系統。用服務形式進行公開。1.首先我們建立乙個空白解決方案 mywcf 2.我們再來建立乙個windows程式專...
wcf的簡單服務建立
這是我第一次在部落格寫作,主要是為了記錄一下自己在工作或者生活中的一些所得,希望能夠用作乙個備忘錄吧。首先,在vs上面建立乙個專案,不用特定的建立wcf專案,直接建立乙個空專案即可,廢話不多說直接上 這個是服務端的入口程式,因為服務比較簡單,不需要手動配置,直接用 的方式新增配置。using sys...
silverlight動態建立WCF服務
最近在發布silverlight專案時,服務位址不是固定,因此服務需要動態建立。在網上搜了點資料找到了動態建立服務的方法,直接上 根據服務型別建立服務 public static class createservice catch exception if constructor null inst...