Ich hasse die Website von MSDN für WCF-RIA-Dienste. Es sagt nicht, was es ist, es sagt nur, was es tut. Es sagt, was es erreichen kann, sagt aber nicht, warum ich es brauche.
Beispielsweise:
"Ein häufiges Problem bei der Entwicklung einer n-Tier-RIA-Lösung ist die Koordination der Anwendungslogik zwischen der mittleren Schicht und der Präsentationsebene."
Nun, es bedeutet mir nicht viel.
"RIA Services löst dieses Problem, indem Framework-Komponenten, Tools und Services bereitgestellt werden, die die Anwendungslogik auf dem Server für den RIA-Client verfügbar machen, ohne dass Sie diese Programmierlogik manuell duplizieren müssen. Sie können einen RIA-Client erstellen, der die Geschäftsregeln kennt und wissen, dass der Client bei jeder Neukompilierung der Lösung automatisch mit der neuesten Logik der mittleren Ebene aktualisiert wird. "
Lädt es DLLs vom Server herunter? Handelt es sich um Metadaten, die die Regeln für die Daten beschreiben?
Also, was ist es? Ist es nur ein VS 2010-Add-On für RAD? Oder ist es eine Technologie über oder unter WCF oder was? Wo wohnt es? Mit Daten, mit Server, was?
Ich freue mich, wenn Sie dies bitte für mich zusammenfassen können.
Antworten:
RIA-Dienste sind eine serverseitige Technologie, die automatisch clientseitige (Silverlight) Objekte generiert, die für Sie die Kommunikation mit dem Server übernehmen und die clientseitige Validierung ermöglichen.
Das Hauptobjekt innerhalb eines RIA-Dienstes ist ein Objekt
DomainService
, das normalerweiseLinqToEntitiesDomainService
mit einem LinqToEntities-Modell verbunden ist.Das Wichtigste bei RIA-Diensten ist, dass es sich hauptsächlich um einen ausgeklügelten Build-Trick handelt. Wenn Sie einen Domänendienst erstellen und Ihre Lösung kompilieren, wird eine clientseitige Darstellung Ihres Domänendienstes generiert. Diese clientseitige Darstellung hat dieselbe Schnittstelle. Angenommen, Sie erstellen einen serverseitigen Domänendienst
CustomerService
mit einer MethodeIQueryable<Customer> GetCustomersByCountry
. Wenn Sie Ihre Lösung erstellen, wird in Ihrem Silverlight-Projekt eine KlasseCustomerContext
mit einer Methode generiertGetCustomersByCountryQuery
. Sie können diese Methode jetzt auf dem Client verwenden, als würden Sie sie auf dem Server aufrufen.Aktualisierungen, Einfügungen und Löschungen folgen einem anderen Muster. Wenn Sie einen Domänendienst erstellen, können Sie angeben, ob Sie die Bearbeitung aktivieren möchten. Die entsprechenden Methoden zum Aktualisieren / Einfügen / Löschen werden dann im serverseitigen Domänendienst generiert. Der clientseitige Teil verfügt jedoch nicht über diese Methoden. Was Sie auf Ihrem haben,
CustomerContext
ist eine Methode namensSubmitChanges
. Wie funktioniert das?GetCustomersByCountryQuery
).CustomerContext.Customers.Add(new Customer(...) {...})
.CustomerContext.Customers.Remove(someCustomer)
.Wenn Sie mit der Bearbeitung fertig sind, rufen Sie an
CustomerContext.SubmitChanges()
.Zur Validierung können Sie Ihre serverseitigen Objekte mit Validierungsattributen aus dem
System.ComponentModel.DataAnnotations
Namespace dekorieren . Wenn Sie Ihr Projekt erstellen, wird jetzt automatisch ein Validierungscode für die entsprechenden clientseitigen Objekte generiert.Ich hoffe, diese Erklärung hilft Ihnen ein wenig weiter.
quelle
Die neuesten Nachrichten: WCF RIA Services ist tot:
http://blogs.msmvps.com/deborahk/who-moved-my-cheese-ria-services/
Wenn Sie RIA Services nutzen möchten, wurden diese als Open Source bereitgestellt:
http://www.openriaservices.net/blog/posts/
quelle