Когда мы пишем для Windows приложения все происходит на одном компьютере (если вы получаете данные из сети. Вы щелкните мышью, обработчик события вызывается, вы можете изменить то, что отображается.
Затем, с интернет, у вас есть среда без состояния, где (на мгновение откладывается Javascript) весь код запускается на сервере. Использование статического HTML-кода ASP.Net генерируется и переносится на клиента. В свою очередь пользователь может предпринять действия, сервер получит другой запрос и т. д.
С Silverlight все происходит на клиенте - Xap загружается, распаковывается и запускается. Проблема в том, что не все может быть сделано в приложение Silverlight - это не похоже на приложение Windows, которое может перезаписывать/сохранять файлы с жесткого диска - это больше похоже на приложение Asp.Net. Проблема в том, что данные на сервере, приложение Silverlight находится на клиенте. Поэтому разработчикам необходимо написать асинхронный код (чтобы пользовательский интерфейс не зависал). Это сложнее, чем синхронная обработка событий, к которой привыкли разработчики Windows. Кроме того, каждый раз, когда вам нужно получать данные, например, аутентификацию пользователя, он возвращается на сервер для проверки. Поэтому, когда Silverlight выглядит как «WPF в браузере», это действительно совсем другой стиль программирования. Веб-разработчик будет знаком с этим, но стандартный бизнес-разработчик, который хочет начать использовать Silverlight, найдет много накладных расходов.
Таким образом, службы .Net RIA пытаются довести удобство разработки Windows до Silverlight. Он делает это, создавая основу для выполнения таких действий, как предоставление возможности совместного использования типов .net между серверами клиентов, которые могут действовать на клиенте с сохранением состояния и передавать данные обратно на сервер, используя службы rest xml/json.
Одна примерная услуга предоставляется для аутентификации пользователя/авторизации/настроек.
Я бы порекомендовал вам посмотреть this article by Nikhil Kothari, а также это (PDF) walkthrough. Также посмотрите на некоторые из provided samples и попробуйте запустить/изменить их.
+1, очень хороший ответ. –