Silverlight WCF服務正確組建方法淺談
運用WCF服務可以幫助我們輕松的實現一個企業級跨平臺的互聯解決方案。在接下來的這篇文章中,我們將會為大家詳細介紹一下有關Silverlight WCF服務的基本啟用方法,希望能給大家帶來一些幫助。#t#
Silverlight能夠消耗來自各種源碼類型的數據,包括REST,API,ASMX服務,WCF服務和其他符合標準的服務。訪問REST API中的數據對于想創建能夠匯總和顯示其他各類頁面和服務中數據的混合應用程序的人來說總是充滿吸引力的。
然而,很多情況下,我們都想要對應用程序進行檢索并以自己的數據顯示應用程序。這種構想中所存在的不同選擇包括ASMX服務,ADO.NET數據服務和WCF服務。讓我們看看怎么用VS2008創建啟用Silverlight WCF服務。
WCF為客戶綁定服務提供了若干不同的方法。你可以是用wsHttpBingding,netTcpBinding,basicHttpBinding和許多其他依照客戶需求設計的應用程序。在Sliverlight2客戶調用WCF服務的案例中,由于Silverlight2不支持使用WSSecurity標準來加密和解密SOAP信息的加密類,因此你需要使用basicHttpBinding。如果數據需要在客戶端和服務器之間獲得安全保障,可以使用SSL。雖然你可以創建一個WCF服務,然后手動改變服務配置文件的綁定。最簡單的啟動創建WCF服務的方法是使用VS2008的Add New Item對話中啟用了Silverlight WCF服務模板。通過使用這一模板,所有必須的配置選項都會自動創建以滿足basicHttpBinding。
在你創建新的Silverlight2項目或另一個Web對象的時候,系統會默認添加測試Web項目,你可以向測試Web項目中添加WCF服務。一旦完成添加,系統會對服務類做如下操作:
- [ServiceContract(Namespace = "")]
- [AspNetCompatibilityRequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Allowed)]- public class CustomerService
- {
- [OperationContract]
- public void DoWork()
- {
- // Add your operation implementation here
- return;
- }
- // Add more operations here and mark them with [OperationContract]
- }
Silverlight2需要的basicHttpBinding會被自動添加到web.config,因此你不需要手動更改配置。(注意Silverlight3現在默認支持二進制信息編碼因此性能更優良。)
一旦WCF被添加到你的Web項目中,你就可以編寫方法以便返回必需的對象,并能用WCF OperationContract屬性對方法進行修飾。這一屬性將這些方法標記為服務操作以便Silverlight客戶能夠使用這些方法。下面的代碼是一個向返回Customer的對象添加名為GerCustomer服務操作的示例。雖然代碼直接返回了Customer對象,但是你還是可以添加必要的代碼以調用數據庫和返回動態數據:
- [ServiceContract(Namespace = "http://www.TheWahlinGroup.com")]
- [AspNetCompatibilityRequirements(RequirementsMode =
- AspNetCompatibilityRequirementsMode.Allowed)]
- public class CustomerService
- {
- [OperationContract]
- public Customer GetCustomer(int id)
- {
- return new Customer { FirstName = "John", LastName = "Doe", Zip = 85244 };
- }
- // Add more operations here and mark them with [OperationContract]
- }
- public class Customer
- {
- public string FirstName { get; set; }
- public string LastName { get; set; }
- public int Zip { get; set; }
- }
顯然,創建啟用Silverlight WCF服務就像在VS 2008選擇一個合適的模板一樣簡單。