Silverlight-Enabled Live Search

any web services offer clients a variety of ways to communicate with them, including SOAP and REST, and can often return either XML or JSON. Silverlight can communicate with any of these types of services, parsing the results using LINQ.

Editor’s Note: This article was excerpted from John Papa’s book, Data-Driven Services with Silverlight 2, published by O’Reilly Media, Inc. ISBN-13: 978-0596523091, and is reprinted with the author’s permission.

Silverlight 2 brings a tremendous number of tools to clients that support the creation of rich user interfaces. It also has the ability to consume a variety of services across a network or the Internet. The ability to communicate with different types of web services in different ways (through RESTful services, syndicated feeds, and SOAP services to name a few) allows Silverlight 2 applications to take advantage of the features these services expose. Silverlight 2 clients provide a robust user experience and it’s a great choice for interactive and service-based applications. This article demonstrates how to build a Silverlight application that communicates with the Live Search web services.

Calling Live Search

Figure 1. Referencing Live Search: Use Visual Studio’s Add Service Reference dialog to add the reference to the Live Search service.

Some available web services are discoverable, such as Live Search; others, such as Amazon ECS, use REST, and are not. Most of these services require that clients send a unique key to the service so that the request can be associated with the key’s owner. Live Search calls its key an AppID. You can find instructions to get a Live Search AppID on MSDN, as well as information about how to use it.

The following example shows how to conduct a simple search using the SOAP-based web service provided by Live Search. First, if you don’t have one already, request an AppID, which you’ll need for use in the LiveSearchClient sample program (available from the CoDe Magazine site for download). Next, you must add a service reference to the Live Search service’s WSDL file. The sample calls the service LiveSearchService as shown in Figure 1.

After adding the service reference, you can create a proxy to the service and invoke its SearchAsync method. This method requires a SearchRequest parameter, which can include a set of intricate parameters that define the type of search you want to make. The Live Search example shown here keeps the search parameters simple, and simply returns the first 10 hits (shown by the Offset property in Listing 1).

Figure 2. Live Search Results: The ListBox on this page has a DataTemplate with fields bound to the results.

Listing 1 shows you how to create a proxy object, set up the search parameters, add an event handler that will be called when the search completes, and call the web service’s asynchronous SearchAsync method.

When the search completes, the proxy_SearchCompleted event handler (see Listing 2) executes and binds the result to the ListBox control. The ListBox’s DataTemplate simply displays the Title, Url and Description of each search result in the ListBox. Figure 2 shows the results of a sample search.

When the Silverlight client makes the web service request, the call originates from the local web site that hosts the Silverlight application on the Live Search domain. Because the call crosses the domain boundary, Silverlight will request the clientaccesspolicy.xml file (see Listing 3), which in this case indicates that Silverlight should allow any SOAP request from any domain to use the web services located anywhere on the web site, which is

Wrap Up

Silverlight clients can call any discoverable web services using ASMX web services and WCF web services. While Silverlight can also call services that do not describe themselves, such as REST services, self-describing services are beneficial, because they can tell the client application exactly how they should be called and what type of data they will return (if any).

Editor’s Note: This article was first published in the March/April 2009 issue of CoDe Magazine, and is reprinted here by permission.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin


The Latest

microsoft careers

Top Careers at Microsoft

Microsoft has gained its position as one of the top companies in the world, and Microsoft careers are flourishing. This multinational company is efficiently developing popular software and computers with other consumer electronics. It is a dream come true for so many people to acquire a high paid, high-prestige job

your company's audio

4 Areas of Your Company Where Your Audio Really Matters

Your company probably relies on audio more than you realize. Whether you’re creating a spoken text message to a colleague or giving a speech, you want your audio to shine. Otherwise, you could cause avoidable friction points and potentially hurt your brand reputation. For example, let’s say you create a

chrome os developer mode

How to Turn on Chrome OS Developer Mode

Google’s Chrome OS is a popular operating system that is widely used on Chromebooks and other devices. While it is designed to be simple and user-friendly, there are times when users may want to access additional features and functionality. One way to do this is by turning on Chrome OS