Course info
Mar 25, 2010
2h 5m

This course covers more advanced topics in Silverlight 3 including server communication, custom controls, and navigation.

About the author
About the author

Ian is an independent consultant, developer, speaker, and author. He has written books on Windows Presentation Foundation, Windows Forms, and Visual Studio. He lives in London but can often be found on various developer mailing lists and newsgroups, where a popular sport is to see who can get him to write the longest email in reply to the shortest possible question.

Section Introduction Transcripts
Section Introduction Transcripts

Server Communication
We'll now look at how Silverlight's applications can communicate with the remote servers. There are many different ways in which clients site code might want to communicate with the back-end server. A popular approach in the world of. net is the classic XML-based web service. Some services adhere more closely to the so-called REST principles that underpin HTTP. REST being short for representational state transfer. And independently of whether your service uses the remote procedure architectural style found with many web services or the REST style of HTTP there's the matter of the form of which data is sent over the wire. XML can be used with either of these styles but JSON, the JavaScript object notation is widely used in services designed to be consumed by browser-based JavaScripts. Another popular style of service is based around a syndication model. RSS and Atom are the most widely encountered syndication systems and while these first became popular in the world of blogs, the idea is a much more widely applicable. For example, ADO. NET Data Services enable information for database to be exposed using syndication mechanisms. And sometimes none of these styles is a great fit in which case it could be useful to be able to drop down to a socket-level API to get more control of the network. Silverlight offers support for all of these approaches.

Custom Controls
This section will show how to write your own Silverlight controls. We'll start with user controls, which offer the simplest way to build a reusable user interface element. They're also an important mechanism for managing complexity of development type by separating your interface into small, manageable pieces. We'll then see how to write a custom control that works like the built-in controls, offering full support for templating, something your user control cannot do.

In this module, we'll look at Silverlight's navigation features. We'll start by looking at the challenges involved in combining the web navigation model with client side code. And how Silverlight resolves the conflicts. We'll then look at the main classes that enable navigation in Silverlight, frame and page. Then we'll see how to take control of the URIs that end users see. And finally, we'll look at the various ways you can cause navigation operations to occur.