最近想把有關WCF的內容做一個全面的整理想寫一個系列的文章出來供大家參考以前也寫過相關WCF的博客但是都是零零碎碎的這次從頭對WCF做一個全面的整理希望大家給予支持和幫助!
如果時間允許的話本人會做一個同步視頻教程供大家交流如果大家有好的視頻錄制軟件請提供提供最好錄制完後視頻壓縮後容量特別小方便上傳到視頻空間
咱們言歸正傳說下WCF吧!
WCF簡介
了解WEBSERVICE的同學知道WEBSERVICE通過HTTP協議進行傳輸創建webservice後我們只需要在公網中給出一個URL就可以在客戶端遠程調用WCF其實也是這樣不過WCF的功能更強大可以通過 tcp/ipmsmq等多種方式進行傳輸
從功能的角度來看WCF完全可以看作是ASMXNetRemotingEnterpriseServiceWSEMSMQ等技術的並集但是WCF在統一性兼容性安全性兼容性方面都做了大大提高和整合
SystemServiceModel命名空間包含生成(WCF)服務和客戶端應用程序所需要的類型它是微軟封裝好的一個組件是WCF的核心DLL在進行WCF開發的時候客戶端和服務器端都要使用該DLL它包含生成服務和客戶端應用程序所需的類枚舉和接口這些類枚舉和接口可用於生成大范圍的分布式應用程序有了此DLL使程序開發和設計更加方便快捷
WCF通過綁定地址契約就可以確定一個服務然後可以在客戶端進行調用
WCF入門實例
這個實例演示了在客戶端輸入內容從服務器端返回該實例使用的HTTP協議客戶端和服務端都采用的是WINFORM程序
服務器端啟動後在客戶端輸入內容就可以從服務器端返回消息先看下效果圖吧
服務器端
客戶端
下面我們看下代碼
服務器端APPCONFIG
<?xml version= encoding=utf ?>
<configuration>
<systemserviceModel>
<services>
<service name=WindowsServerWelCome>
<endpoint address= contract=WindowsServerIWelCome binding=wsHttpBinding >
</endpoint>
</service>
</services>
</systemserviceModel>
</configuration>
服務器端契約
[ServiceContract]
interface IWelCome
{
[OperationContract]
string WelComeTip(string name);
}
服務器端契約實現
public class WelCome:IWelCome
{
#region IWelCome 成員
public string WelComeTip(string name)
{
return name+ :歡迎你來到WCF學堂!;
}
#endregion
}
服務器端啟動代碼
private void Form_Load(object sender EventArgs e)
{
thisText = 服務器端啟動;
labelText = 服務器端啟動;
ServiceHost host = new ServiceHost(typeof(WelCome));
hostOpen();
}
客戶端配置文件
<?xml version= encoding=utf ?>
<configuration>
<systemserviceModel>
<client>
<endpoint address= contract=WindowsServerIWelCome binding=wsHttpBinding name=WelCome></endpoint>
</client>
</systemserviceModel>
</configuration>
客戶端代碼
private void button_Click(object sender EventArgs e)
{
using (ChannelFactory<WindowsServerIWelCome> channelFactory = new ChannelFactory<WindowsServerIWelCome>(WelCome))
{
WindowsServerIWelCome proxy = channelFactoryCreateChannel();
string tip=proxyWelComeTip(textBoxText);
MessageBoxShow(tip);
}
}
很簡單吧大家動手試下就看到效果了本系列所有實例都使用VS進行開發
From:http://tw.wingwit.com/Article/program/ASP/201311/21748.html