14 Stimmen

Was ist der Unterschied zwischen WCF und der RIA Services Domain Service Class?

Ich mache mich gerade mit den grundlegenden Unterschieden zwischen Silverlight 3 und seinem Vorgänger vertraut. Wenn ich mir die Domain Service Class innerhalb der RIA Services anschaue, scheint die Ausführung ziemlich vereinfacht zu sein. Kann mir jemand die grundlegenden Unterschiede zu Windows Communication Foundation erklären?

Verwendet die Domänen-Serviceklasse WCF oder ein anderes Service-Framework im Hintergrund, oder ist dies von Grund auf neu?

17voto

mundeep Punkte 2717

Ich empfehle Ihnen die Lektüre dieser Blog-Artikel in der es heißt, dass:

Unsere Überlegungen zu den RIA-Services haben sich vor einigen Jahren aus dem LINQ-Projekt entwickelt. LINQ integriert die Abfragesemantik in die Sprachen (C#, VB usw.) und bietet eine gemeinsame Abstraktion für die Arbeit mit Daten, unabhängig davon, ob es sich bei diesen Daten um CLR-Objekte im Speicher, XML, relationale Daten oder etwas anderes handelt. Mit RIA Services erweitern wir dieses Muster, indem wir ein präskriptives Modell für die Offenlegung Ihrer Domänenlogik über LINQ anbieten. Unter Domänenlogik verstehen wir den Teil Ihrer Anwendung, der sehr spezifisch für Ihre Domäne ist - also das spezielle Geschäftsproblem, das Sie lösen.

Es ist also für die "Domänenlogik" das, was LINQ für Daten ist, während WCF im Wesentlichen nur ein Dienstanbieter ist.

In der traditionellen N-Tier-Entwicklung bedeutet dies, dass:

...Sie sollten die RIA-Dienste als eine empfindlichere Schicht über den ADO.NET-Datendiensten und WCF betrachten... Wir erwarten auch, dass wir irgendwann vollen Zugriff auf die gesamte Leistung und Flexibilität der zugrunde liegenden WCF-Dienste bieten werden, wie z. B. die hoch optimierte binäre Serialisierung.

Sie haben auch die Möglichkeit, das neue "RIA Services-Muster" zu verwenden:

...ASP.NET-Anwendungen einfach zu erstellen und dabei die Vorteile aller eingebauten Funktionen von RIA Services wie Datenvalidierung, Autorisierung usw. zu nutzen. In der März-Vorschau bieten wir ein asp:DomainDataSource-Steuerelement an, das einen sehr einfachen ASP.NET WebForms-Zugriff auf Ihre Domain-Logik ermöglicht. Darauf aufbauend ist eine zukünftige Version von ASP.NET Dynamic Data geplant, die es sehr einfach macht, allgemeine, standardmäßige UI auf der Grundlage Ihrer Domänenlogik zu generieren.

Dies bedeutet im Wesentlichen, dass die RIA-Dienste entweder:

  • Setzen Sie auf WCF auf (im Wesentlichen wickeln Sie die WCF-Dienste ein, damit die Client-App sie nutzen kann).
  • Ersetzen Sie die WCF-Schicht durch RIA-Dienste unter Verwendung einer alternativen Datenquelle (z. B. ADO.NET Entity Data Model/Entity Framework gemäß Erstellen einer datengesteuerten Spesen-App mit Silverlight 3 )

Es lohnt sich auch ein Blick auf Mix09: Erstaunliche Geschäftsanwendungen mit Silverlight 3 erstellen für ein anderes Beispiel.

Während ich dies schreibe, habe ich gerade entdeckt, dass Überblick über die .NET RIA-Dienste von Microsoft die anscheinend viel von der Logik der RIA-Dienste erklärt (und wahrscheinlich etwas klarer ist als einige der oben genannten :)

2voto

Wir verwenden eine Kombination aus beidem. WCF für sperrige Daten, die besser mit binärer Serialisierung funktionieren, und RIA für CRUD-Entitäten, weil der Code so viel schneller zu schreiben und zu pflegen ist. Wenn RIA Binärdaten unterstützen würde, würden wir es anstelle von WCF verwenden, aber ich bin mir ziemlich sicher, dass es das in der aktuellen Version nicht tut.

1voto

Timo Punkte 11

WCF hat viel mehr Möglichkeiten zum Debuggen als RIA. Die Domänen-Datenquelle ist einfacher einzurichten, aber schwieriger, Fehler herauszufinden. In vielen Fällen wird WCF für die Erstellung eines Interoperabilitäts-Kommunikationssystems verwendet, das ältere WSDL mit WSSE-Header-Sicherheit desolut ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X