RIA Services zusammengefasst

Im Zuge meiner Arbeit hier in Redmond habe ich mir die RIA-Services mal etwas genauer angeschaut.

RIA-Services sind, um es mal auf einen Satz zusammen zu fassen, eine sehr leichtgewichtige Art die benutzerdefinierte Kommunikation zwischen Silverlight-Anwendungen und einer serverseitigen Datenlieferung zu definieren.

Ähnlich wie bei den ADO Data Services liegt der Fokus nicht bei der Definition von einfachen Methoden-Aufrufen, sondern auf dem sauberen Auflisten von Entitäten-Listen. So gibt es sehr einfache Deklarationsmöglichkeiten für Abfragen, Inserts, Updates und Deletes mit frei definierbaren Entitäten. Aber klassische Methoden lassen sich damit natürlich auch deklarieren.

Was unterscheidet RIA von WCF oder klassischen Webservices?

Im Gegensatz zur klassischen Service-Implementierung werden die Projekte (Server und Client) von Visual Studio zur Entwicklungszeit bereits aneinander gebunden. Änderungen im Server werden vor dem Build-Prozess an die richtige Stelle des Clients repliziert. Zugriffsklassen und Entitäten erhalten dadurch die selben Namen (inkl. Namespace). Auch lassen sich Validierungsattribute an einzelne Properties schreiben, die auch mit repliziert werden.

Das meiner Meinung nach abgefahrenste an der Sache: Es lassen sich zu den Entitäten zusätzliche Validierungsmethoden erstellen, die (durch partial classes separat abgelegt) beim Build einfach direkt auf den Client kopiert werden. Validierungen können somit gleichermaßen auf Client und Server mit dem faktisch selben Code durchgeführt werden.

RIA

Deklaration

Die eigentliche Service-Klasse muss von der Klasse “DomainService” erben. Methoden, die ein IEnumerable<T> zurück liefern, werden als Query erkannt. Methoden, die T als Parameter entgegen nehmen und Schlüsselworte wir Insert, Update, Delete enthalten sind automatisch Teil der Zugriffsmethoden auf T. Alternativ kann man diese Methoden auch per Attribut markieren. Benutzerdefinierte Methoden erhalten einfach auch eine Attribut und werden automatisch auf dem Client zur Verfügung gestellt. T wird, sobald es Zugriffsmetoden dafür gibt, ohne weiteres Zutun auch direkt repliziert.

Requirements

All das funktioniert ab Silverlight 3 und ist dementsprechend auch bei der Installation von Silverlight verfügbar. Die Integration in Visual Studio (natürlich zwingend erforderlich, da VS eine entscheidende Rolle Spiel) kommt mit den SL3-Tools für Visual Studio.

Weiterführende Infos und Ressourcen

Download Silverlight 3 SDK
Download Silverlight 3 Tools für Visual Studio
RIA Dokumentation