10

Ich bin gerade dabei, eine datengesteuerte Silverlight 3-Anwendung zu erstellen. Für den Zugriff auf die Datenbank werden zwei gängige Ansätze verwendet: RIA Services und ADO.NET Data Services. Hat jemand eine Anleitung, wann/warum jeder Ansatz gewählt werden sollte? Hier ist, was ich aus meiner Forschung/Erfahrung gesammelt habe. Irgendwelche Gedanken?RIA-Dienste im Vergleich zu ADO.NET Data Services

ADO.NET scheint nur für reine Datenbankaufrufe nützlich zu sein. Wenn Sie die Datendienste für andere Anwendungen bereitstellen müssen (ignorieren Sie die Domänenbeschränkung von Silverlight 3), ist dies ein guter Ansatz. Auch wenn die URL/Query-Syntax in Ihrer Anwendung nützlich sein kann, ist dies ein weiterer Vorteil

RIA Services scheinen ein flexibler, akzeptierter Rahmen zu sein. Es scheint Ihnen mehr als nur einen Datenbankzugriff zu geben. Es gibt eine Einschränkung, dass es nur für die Silverlight/Web-Anwendung verwendet wird, da es nicht über einen Dienst verfügbar gemacht wird.

Gedanken? Ideen? Bemerkungen?

Antwort

10

ADO.NET-Datendienste und RIA-Dienste sind sehr ähnlich (sie basieren beide auf REST).

Mit ADO.NET-Datendiensten und allen anderen REST-Services erhalten Sie jedoch keine einfach zu erkennende API in Visual Studio. Beispiel: Sie wissen nicht, welche Aufrufe an die Datenbank verfügbar sind und die zurückgegebenen Daten sind nicht stark typisiert. Es sorgt für ein sehr interoperables Datensystem, aber es kann mühsam sein, damit zu arbeiten.

Mit RIA-Services erhalten Sie das Beste aus beiden Welten, da Ihr RIA-Projekt direkt für Silverlight-Projekte referenziert wird, damit Visual Studio wissen kann, welche Methoden verfügbar sind und alles stark typisiert ist. Alle anderen Apps können diesen Dienst (dataservice.axd) verwenden, haben aber nicht den Luxus einer API.

EDIT: Korrektur: ADO.NET Data Services tut Metadaten (Sorry für schlechte info) erzeugen http://msdn.microsoft.com/en-us/library/cc716656.aspx

+0

Gute Informationen. Ich muss Ihnen eine "virtuelle" Abstimmung geben, da ich zu neu für Stack Overflow bin (Reputation nur 11), um Ihre Antwort zu bewerten. –

+2

Ich glaube, Sie irren sich über: "nicht einfach zu API in Visual Studio zu sehen" in Bezug auf Data Services. ADO.NET Data Services können wie jede WCF/RIA-Lösung in Visual Studio importiert werden, sodass Sie die API in Code über die stark typisierten Methoden/Klassen anzeigen können, die erstellt werden. –

+0

Insgesamt guten Thread, aber ich stimme mit Robert - ADO.NET Data Services ist sehr einfach unter der Haube von. –

0

ich einen Prototyp eines Systems mit Silverlight 2 und ADO.NET Data Services haben, und ich bin derzeit für die Zukunft mit einer MVVM-Implementierung, die Silverlight 3 und RIA-Dienste für eine Branchenanwendung verwendet.

RIA verfügt über ein Sicherheitsmodell, das Sie daran hindert, eigene Dateien mit WCF für Silverlight zu erstellen. Es basiert auf dem ASP.NET-Sicherheitsanbietermodell. Es verfügt über ein interessantes und leistungsstarkes Validierungsmodell, mit dem Sie Ihre eigenen Kundenvalidatoren einfach einfügen können.

Die Hauptprobleme mit RIA Services sind, dass sie sehr neu sind, nicht in der endgültigen Form, und haben sehr wenig Dokumentation mit mehr als einem einfachen Fall senario. Beta wird im November auf der PDC und RTM mit EF 4.0, C# 4.0 und VS2010 erwartet.

Wenn Sie so früh mit etwas arbeiten, können Sie erwarten, dass das Refactoring stark verändert wird, wenn Änderungen vorgenommen werden, und einige Frustrationen mit kleinen Änderungen, die nicht so einfach zu erkennen sind.

Wir arbeiten derzeit an Bugs in EF und RIA und wir müssen möglicherweise Datendienste verwenden, um einige Dinge zu tun, bis RIA stabiler ist.

Es gibt eine starke Typisierung mit Data Services und RIA. Intellisense arbeitet mit beiden zusammen. Resharper unterstützt RIA noch nicht, obwohl es in Version 5.0 erwartet wird.

3

Dies ist sehr alte Frage, aber möchte eine Antwort für die Leser hinzufügen.

Ria-Dienste sind eine Ebene über den ADO.net-Datendiensten. Ria-Dienste verwenden ADO.Net als Basis-Framework und fügt Layer für die einfache Verwendung der UI-Bibliothek hinzu.

So Frage kann sein, wenn RIA Services zu verwenden und wenn ADO.Net Datendienste verwenden