Wenn wir Windows-Anwendungen schreiben, findet alles auf einem Computer statt (es sei denn, Sie erhalten Daten aus dem Netzwerk. Sie klicken mit der Maus, Ihr Event-Handler wird aufgerufen, Sie können ändern, was angezeigt wird.
Mit dem Internet haben Sie dann eine zustandslose Umgebung, in der (von Javascript einmal abgesehen) der gesamte Code auf dem Server ausgeführt wird. Mit ASP.Net wird statisches HTML erzeugt und an den Client übertragen. Im Gegenzug kann der Benutzer eine Aktion ausführen, woraufhin der Server eine weitere Anfrage erhält, und so weiter.
Bei Silverlight findet alles auf dem Client statt - die Xap wird heruntergeladen, dekomprimiert und ausgeführt. Das Problem ist, dass nicht alles in der Silverlight-Anwendung gemacht werden kann - es ist nicht wie eine Windows-Anwendung, die Dateien von der Festplatte öffnen/speichern kann - es ist mehr wie eine Asp.Net-Anwendung. Das Problem ist, dass die Daten auf dem Server liegen und die Silverlight-App auf dem Client. Die Entwickler müssen also asynchronen Code schreiben (damit die Benutzeroberfläche nicht einfriert). Dies ist komplexer als die synchrone Ereignisbehandlung, an die Windows-Entwickler gewöhnt sind. Darüber hinaus müssen Sie jedes Mal, wenn Sie Daten abrufen müssen, z. B. zur Authentifizierung des Benutzers, eine Überprüfung auf dem Server durchführen. Silverlight sieht zwar aus wie "WPF im Browser", ist aber in Wirklichkeit eine ganz andere Art der Programmierung. Ein Webentwickler wird damit vertraut sein, aber der normale Geschäftsentwickler, der Silverlight verwenden möchte, wird dies als eine Menge Overhead empfinden.
Die .Net RIA-Dienste versuchen also, die Annehmlichkeiten der Windows-Entwicklung auf Silverlight zu übertragen. Dies geschieht durch die Bereitstellung eines Rahmens für Dinge wie die Fähigkeit, .net-Typen zwischen Clients und Servern auszutauschen, die in einer zustandsorientierten Art und Weise auf dem Client agieren und Daten zurück an den Server mit Rest-xml/json-Diensten übertragen können.
Ein Beispieldienst wird für die Benutzerauthentifizierung/-autorisierung/-einstellungen bereitgestellt.
Ich empfehle Ihnen einen Blick auf dieser Artikel von Nikhil Kothari und auch dies (PDF) Durchgang . Sehen Sie sich auch einige der bereitgestellte Proben und versuchen Sie, sie auszuführen/zu ändern.