Silverlight WCF服務(wù)正確組建方法淺談
運(yùn)用WCF服務(wù)可以幫助我們輕松的實(shí)現(xiàn)一個(gè)企業(yè)級(jí)跨平臺(tái)的互聯(lián)解決方案。在接下來(lái)的這篇文章中,我們將會(huì)為大家詳細(xì)介紹一下有關(guān)Silverlight WCF服務(wù)的基本啟用方法,希望能給大家?guī)?lái)一些幫助。#t#
Silverlight能夠消耗來(lái)自各種源碼類型的數(shù)據(jù),包括REST,API,ASMX服務(wù),WCF服務(wù)和其他符合標(biāo)準(zhǔn)的服務(wù)。訪問(wèn)REST API中的數(shù)據(jù)對(duì)于想創(chuàng)建能夠匯總和顯示其他各類頁(yè)面和服務(wù)中數(shù)據(jù)的混合應(yīng)用程序的人來(lái)說(shuō)總是充滿吸引力的。
然而,很多情況下,我們都想要對(duì)應(yīng)用程序進(jìn)行檢索并以自己的數(shù)據(jù)顯示應(yīng)用程序。這種構(gòu)想中所存在的不同選擇包括ASMX服務(wù),ADO.NET數(shù)據(jù)服務(wù)和WCF服務(wù)。讓我們看看怎么用VS2008創(chuàng)建啟用Silverlight WCF服務(wù)。
WCF為客戶綁定服務(wù)提供了若干不同的方法。你可以是用wsHttpBingding,netTcpBinding,basicHttpBinding和許多其他依照客戶需求設(shè)計(jì)的應(yīng)用程序。在Sliverlight2客戶調(diào)用WCF服務(wù)的案例中,由于Silverlight2不支持使用WSSecurity標(biāo)準(zhǔn)來(lái)加密和解密SOAP信息的加密類,因此你需要使用basicHttpBinding。如果數(shù)據(jù)需要在客戶端和服務(wù)器之間獲得安全保障,可以使用SSL。雖然你可以創(chuàng)建一個(gè)WCF服務(wù),然后手動(dòng)改變服務(wù)配置文件的綁定。最簡(jiǎn)單的啟動(dòng)創(chuàng)建WCF服務(wù)的方法是使用VS2008的Add New Item對(duì)話中啟用了Silverlight WCF服務(wù)模板。通過(guò)使用這一模板,所有必須的配置選項(xiàng)都會(huì)自動(dòng)創(chuàng)建以滿足basicHttpBinding。
在你創(chuàng)建新的Silverlight2項(xiàng)目或另一個(gè)Web對(duì)象的時(shí)候,系統(tǒng)會(huì)默認(rèn)添加測(cè)試Web項(xiàng)目,你可以向測(cè)試Web項(xiàng)目中添加WCF服務(wù)。一旦完成添加,系統(tǒng)會(huì)對(duì)服務(wù)類做如下操作:
- [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會(huì)被自動(dòng)添加到web.config,因此你不需要手動(dòng)更改配置。(注意Silverlight3現(xiàn)在默認(rèn)支持二進(jìn)制信息編碼因此性能更優(yōu)良。)
一旦WCF被添加到你的Web項(xiàng)目中,你就可以編寫(xiě)方法以便返回必需的對(duì)象,并能用WCF OperationContract屬性對(duì)方法進(jìn)行修飾。這一屬性將這些方法標(biāo)記為服務(wù)操作以便Silverlight客戶能夠使用這些方法。下面的代碼是一個(gè)向返回Customer的對(duì)象添加名為GerCustomer服務(wù)操作的示例。雖然代碼直接返回了Customer對(duì)象,但是你還是可以添加必要的代碼以調(diào)用數(shù)據(jù)庫(kù)和返回動(dòng)態(tài)數(shù)據(jù):
- [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; }
- }
顯然,創(chuàng)建啟用Silverlight WCF服務(wù)就像在VS 2008選擇一個(gè)合適的模板一樣簡(jiǎn)單。