Searching the Windows Phone 7 Marketplace Programmatically
Within the Microsoft.Phone.Tasks namespace there are several types that allow you to interact with the Windows Phone 7 marketplace. We’ll explore these types and see how you can search the Windows Phone 7 marketplace programmatically.
Let’s start with a simple marketplace search using the MarketplaceSearchTask class.
As you can see in the above class diagram, the MarketplaceSearchTask class contains two properties. The ContentType property allows us to specify, through the MarkeplaceContentType enumeration, whether the search is for Applications or Music. The SearchTerms property then allows us to specify a string containing the search terms for our marketplace search.
MarketplaceSearchTask task = new MarketplaceSearchTask();
task.ContentType = MarketplaceContentType.Applications;
task.SearchTerms = "Doug Holland Stopwatch";
task.Show();
Using the above code the application will redirect the user to the marketplace as shown here within the Windows Phone 7 emulator.
What if we want the user to be directed directly to the information page for that application rather than the search results page? Let’s now take a look at the MarketplaceDetailTask class.
While the MarketplaceDetailTask class also contains the ContentType property as before, it also allows us to specify a string representing the ContentIdentifier or Product ID from the AppHub.
MarketplaceDetailTask task = new MarketplaceDetailTask();
task.ContentType = MarketplaceContentType.Applications;
task.ContentIdentifier = "d35631f4-8c02-e011-9264-00237de2db9e";
task.Show();
Using the above code the application will redirect the user to the application information page within the marketplace, as shown here within the Windows Phone 7 emulator.
Another type within the Microsoft.Phone.Tasks namespace is the MarketplaceReviewTask class that allows us to redirect the user to the marketplace such that they can write a review of the application.
With the MarketplaceReviewTask class there are no properties to set as it will internally direct to the marketplace for the application within which is has been called.
MarketplaceReviewTask task = new MarketplaceReviewTask();
task.Show();
When using this code within a sample application, using either the Windows Phone 7 emulator or a developer unlocked phone, you’ll see the following error when the application cannot be found for the user to review.
The last type within the Microsoft.Phone.Tasks namespace is the MarketplaceHubTask class that allows us to redirect the user to the marketplace for applications or music. Within the following code we’ll open the marketplace for applications by specifying the ContentType property to the appropriate value within the MarkeplaceContentType enumeration.
MarketplaceHubTask task = new MarketplaceHubTask();
task.ContentType = MarketplaceContentType.Applications;
task.Show();
Using the above code the application will redirect the user to the the marketplace, as shown here within the Windows Phone 7 emulator.
We’ll now use the following code to open the marketplace for music, again by specifying the appropriate value within the MarkeplaceContentType enumeration for the ContentType property.
MarketplaceHubTask task = new MarketplaceHubTask();
task.ContentType = MarketplaceContentType.Music;
task.Show();
Using the above code the application will redirect the user to the Zune music marketplace, as shown here within the Windows Phone 7 emulator.