MSDN Magazine - November 2008 - (Page 24) Figure 2 Returning an Entity from a Web Service in C# [WebService(Namespace = "http://www.microsoft.com/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] public class TestService : System.Web.Services.WebService { [WebMethod] public List GetDogList() { return new List {new Dog {Name = "Spot", Age = 10}, new Dog {Name = "Kadi", Age = 13}}; } } [Serializable] public class Dog { public string Name { get; set; } public int Age { get; set; } } TestServiceSoapClient proxy = new TestServiceSoapClient(); proxy.GetDogListCompleted += new EventHandler (proxy_ GetDogListCompleted); proxy.GetDogListAsync(); Here’s the C# code for receiving the entities: void proxy_GetDogListCompleted(object sender, { } GetDogListCompletedEventArgs e) Dog[] list = e.Result; Like ASMX Web services, WCF Web services describe themselves through WSDL. WCF Web services expose their SOAP-based services describe themselves so Figure 3 Preparing Data for WCF services and the data that they can pass using a series of attributes. This means that the client apthe Silverlight 2 client application can pass data [DataContract] class Employee plications can reference a WCF Web service and to and from the services using any exposed en- public_employeeID; { int generate a proxy class to interact with the services tity. Both ASMX Web services and WCF Web string _firstName; string _lastName; and their exposed data contracts. services allow entities to be included as part of string _title; WCF defines a data contract as any custom their contract with a client reference. The client DateTime _hireDate; byte[] _photo; .NET type that can be returned from a WCF reference generates a proxy class on the client Web service. These types are decorated with the that contains a definition for the exposed class[DataMember] public int EmployeeID { DataContract attribute. Properties of the class es and the service methods (all service methods get { return _employeeID; } must be decorated with the DataMember attriare converted to asynchronous calls for Silverset { _employeeID = value; } } bute. Figure 3 shows a sample class decorated light 2 clients). [DataMember] with the appropriate attributes. Services that do not describe themselves, such public string FirstName { get { return _firstName; } Once the data formats have been defined for as POX and REST-based services, allow a client set {_firstName = value; } the WCF Web service using the DataContract application to call their service methods and re} [DataMember] and DataMember attributes, the service and its trieve data in scalar format, as XML, or as JSON. public string LastName { service methods must be set up. The services are These types of services do not expose Web Serget { return _lastName; } set { _lastName = value; } decorated with the ServiceContract attribute and vices Description Language (WSDL) and there} its methods are decorated with the Operationfore the client application does not generate a } Contract attributes. If desired, the service can proxy class for them. The services are queried using a URI through classes like the WebClient or the HttpWeb- implement an interface, in which case the interface (and not the service class) and its interface methods are decorated with the atRequest classes. tributes. Here is the IEmployeeService and its members decorated with these attributes: How is data consumed from ASMX Web services? [ServiceContract(Namespace = "")] Like ASMX services, SOAP-based WCF Web services describe public interface IEmployeeService themselves through WSDL. If the client adds a reference to the { [OperationContract] service, it will generate a client proxy to the service, allowing the List FindEmployees(); } client to pass data with the service in their native form (that is, as classes). For example, a Dog entity may be returned from a SOAP- Note here that Silverlight 2 applications can only consume SOAPbased Web service (ASMX or WCF) to a Silverlight 2 client. The based WCF services that use basicHttpBinding. A Silverlight 2 client application can add a service reference to this Silverlight 2 client can then create an instance of the Dog class. Methods are exposed to clients in ASMX Web services by deco- service, which creates a proxy class. The service can then be called rating the public service methods with the WebMethod attribute asynchronously, just like with an ASMX Web service, and a hanand decorating the ASMX Web service class with the WebService dler can help capture the results. The code to implement the proxy and the completed event handler use exactly the same format, as attribute. Figure 2 illustrates this in C#. This example shows the .NET-targeted code in a Silverlight 2 shown earlier for ASMX Web services. Once the data is returned client app that generates the proxy to the SOAP service. An event as a List the entities can be iterated, data bound, modihandler is assigned to the GetDogListCompleted event followed fied, and passed back through a service method if required. by the asynchronous call to the service. All calls to Web services from Silverlight 2 are made asynchronously to prevent the services How is data received from a REST Web service? REST services can be called through a URI using a query string from tying up the UI thread and freezing the user. Here’s the event with parameter. It can be called from Silverlight 2 using the Webhandler receiving the results as an array of the entity type: 24 msdn magazine Data Points How is data consumed from WCF Web services?
Table of Contents Feed for the Digital Edition of MSDN Magazine - November 2008 Contents MSDN Magazine - November 2008 Toolbox CLR Inside Out Data Points Cutting Edge Security Briefs Test Your Security IQ Agile SDL Access Control Utility Spotlight RIA Test Run Wicked Code Foundations Team System End Bracket MSDN Magazine - November 2008 MSDN Magazine - November 2008 - (Page Intro) MSDN Magazine - November 2008 - MSDN Magazine - November 2008 (Page Cover1) MSDN Magazine - November 2008 - MSDN Magazine - November 2008 (Page Cover2) MSDN Magazine - November 2008 - MSDN Magazine - November 2008 (Page 1) MSDN Magazine - November 2008 - MSDN Magazine - November 2008 (Page 2) MSDN Magazine - November 2008 - MSDN Magazine - November 2008 (Page 3) MSDN Magazine - November 2008 - MSDN Magazine - November 2008 (Page 4) MSDN Magazine - November 2008 - MSDN Magazine - November 2008 (Page 5) MSDN Magazine - November 2008 - MSDN Magazine - November 2008 (Page 6) MSDN Magazine - November 2008 - MSDN Magazine - November 2008 (Page 7) MSDN Magazine - November 2008 - MSDN Magazine - November 2008 (Page 8) MSDN Magazine - November 2008 - MSDN Magazine - November 2008 (Page 9) MSDN Magazine - November 2008 - MSDN Magazine - November 2008 (Page 10) MSDN Magazine - November 2008 - Toolbox (Page 11) MSDN Magazine - November 2008 - Toolbox (Page 12) MSDN Magazine - November 2008 - Toolbox (Page 13) MSDN Magazine - November 2008 - Toolbox (Page 14) MSDN Magazine - November 2008 - Toolbox (Page 15) MSDN Magazine - November 2008 - Toolbox (Page 16) MSDN Magazine - November 2008 - CLR Inside Out (Page 17) MSDN Magazine - November 2008 - CLR Inside Out (Page 18) MSDN Magazine - November 2008 - CLR Inside Out (Page 19) MSDN Magazine - November 2008 - CLR Inside Out (Page 20) MSDN Magazine - November 2008 - CLR Inside Out (Page 21) MSDN Magazine - November 2008 - CLR Inside Out (Page 22) MSDN Magazine - November 2008 - Data Points (Page 23) MSDN Magazine - November 2008 - Data Points (Page 24) MSDN Magazine - November 2008 - Data Points (Page 25) MSDN Magazine - November 2008 - Data Points (Page 26) MSDN Magazine - November 2008 - Data Points (Page 27) MSDN Magazine - November 2008 - Data Points (Page 28) MSDN Magazine - November 2008 - Data Points (Page 29) MSDN Magazine - November 2008 - Data Points (Page 30) MSDN Magazine - November 2008 - Cutting Edge (Page 31) MSDN Magazine - November 2008 - Cutting Edge (Page 32) MSDN Magazine - November 2008 - Cutting Edge (Page 33) MSDN Magazine - November 2008 - Cutting Edge (Page 34) MSDN Magazine - November 2008 - Cutting Edge (Page 35) MSDN Magazine - November 2008 - Cutting Edge (Page 36) MSDN Magazine - November 2008 - Cutting Edge (Page 37) MSDN Magazine - November 2008 - Cutting Edge (Page 38) MSDN Magazine - November 2008 - Cutting Edge (Page 39) MSDN Magazine - November 2008 - Cutting Edge (Page 40) MSDN Magazine - November 2008 - Security Briefs (Page 41) MSDN Magazine - November 2008 - Security Briefs (Page 42) MSDN Magazine - November 2008 - Security Briefs (Page 43) MSDN Magazine - November 2008 - Security Briefs (Page 44) MSDN Magazine - November 2008 - Security Briefs (Page 45) MSDN Magazine - November 2008 - Test Your Security IQ (Page 46) MSDN Magazine - November 2008 - Test Your Security IQ (Page 47) MSDN Magazine - November 2008 - Test Your Security IQ (Page 48) MSDN Magazine - November 2008 - Test Your Security IQ (Page 49) MSDN Magazine - November 2008 - Test Your Security IQ (Page 50) MSDN Magazine - November 2008 - Test Your Security IQ (Page 51) MSDN Magazine - November 2008 - Agile SDL (Page 52) MSDN Magazine - November 2008 - Agile SDL (Page 53) MSDN Magazine - November 2008 - Agile SDL (Page 54) MSDN Magazine - November 2008 - Agile SDL (Page 55) MSDN Magazine - November 2008 - Agile SDL (Page 56) MSDN Magazine - November 2008 - Agile SDL (Page 57) MSDN Magazine - November 2008 - Agile SDL (Page 58) MSDN Magazine - November 2008 - Access Control (Page 59) MSDN Magazine - November 2008 - Access Control (Page 60) MSDN Magazine - November 2008 - Access Control (Page 61) MSDN Magazine - November 2008 - Access Control (Page 62) MSDN Magazine - November 2008 - Access Control (Page 63) MSDN Magazine - November 2008 - Access Control (Page 64) MSDN Magazine - November 2008 - Access Control (Page 65) MSDN Magazine - November 2008 - Access Control (Page 66) MSDN Magazine - November 2008 - Access Control (Page 67) MSDN Magazine - November 2008 - Access Control (Page 68) MSDN Magazine - November 2008 - Access Control (Page 69) MSDN Magazine - November 2008 - Access Control (Page 70) MSDN Magazine - November 2008 - Access Control (Page 71) MSDN Magazine - November 2008 - Utility Spotlight (Page 72) MSDN Magazine - November 2008 - Utility Spotlight (Page 73) MSDN Magazine - November 2008 - Utility Spotlight (Page 74) MSDN Magazine - November 2008 - Utility Spotlight (Page 75) MSDN Magazine - November 2008 - Utility Spotlight (Page 76) MSDN Magazine - November 2008 - Utility Spotlight (Page 77) MSDN Magazine - November 2008 - Utility Spotlight (Page 78) MSDN Magazine - November 2008 - Utility Spotlight (Page 79) MSDN Magazine - November 2008 - Utility Spotlight (Page 80) MSDN Magazine - November 2008 - RIA (Page 81) MSDN Magazine - November 2008 - RIA (Page 82) MSDN Magazine - November 2008 - RIA (Page 83) MSDN Magazine - November 2008 - RIA (Page 84) MSDN Magazine - November 2008 - RIA (Page 85) MSDN Magazine - November 2008 - RIA (Page 86) MSDN Magazine - November 2008 - RIA (Page 87) MSDN Magazine - November 2008 - RIA (Page 88) MSDN Magazine - November 2008 - RIA (Page 89) MSDN Magazine - November 2008 - RIA (Page 90) MSDN Magazine - November 2008 - Test Run (Page 91) MSDN Magazine - November 2008 - Test Run (Page 92) MSDN Magazine - November 2008 - Test Run (Page 93) MSDN Magazine - November 2008 - Test Run (Page 94) MSDN Magazine - November 2008 - Test Run (Page 95) MSDN Magazine - November 2008 - Test Run (Page 96) MSDN Magazine - November 2008 - Test Run (Page 97) MSDN Magazine - November 2008 - Test Run (Page 98) MSDN Magazine - November 2008 - Wicked Code (Page 99) MSDN Magazine - November 2008 - Wicked Code (Page 100) MSDN Magazine - November 2008 - Wicked Code (Page 101) MSDN Magazine - November 2008 - Wicked Code (Page 102) MSDN Magazine - November 2008 - Wicked Code (Page 103) MSDN Magazine - November 2008 - Wicked Code (Page 104) MSDN Magazine - November 2008 - Wicked Code (Page 105) MSDN Magazine - November 2008 - Wicked Code (Page 106) MSDN Magazine - November 2008 - Foundations (Page 107) MSDN Magazine - November 2008 - Foundations (Page 108) MSDN Magazine - November 2008 - Foundations (Page 109) MSDN Magazine - November 2008 - Foundations (Page 110) MSDN Magazine - November 2008 - Foundations (Page 111) MSDN Magazine - November 2008 - Foundations (Page 112) MSDN Magazine - November 2008 - Team System (Page 113) MSDN Magazine - November 2008 - Team System (Page 114) MSDN Magazine - November 2008 - Team System (Page 115) MSDN Magazine - November 2008 - Team System (Page 116) MSDN Magazine - November 2008 - Team System (Page 117) MSDN Magazine - November 2008 - Team System (Page 118) MSDN Magazine - November 2008 - Team System (Page 119) MSDN Magazine - November 2008 - End Bracket (Page 120) MSDN Magazine - November 2008 - End Bracket (Page Cover3) MSDN Magazine - November 2008 - End Bracket (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.