War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern

Mittlere Ebene

WCF RIA Services

Dieser Abschnitt enthält Informationen und Hinweise zur Verwendung von Domänendiensten, freigegebenem Code und Datenentitäten innerhalb der mittleren Ebene einer WCF RIA Services-Anwendung. In einer Anwendung mit drei Ebenen enthält die mittlere Ebene die Logik zum Verwalten der Interaktion zwischen der Präsentationsebene und der Datenebene. In der mittleren Ebene wenden Sie Geschäftsregeln und Validierungsüberprüfungen an, um sicherzustellen, dass die Daten in einem akzeptablen Zustand sind. In einer Personalanwendung können Sie z. B. eine Benutzeroberfläche bereitstellen, die es Mitarbeitern ermöglicht, einen Urlaubsantrag zu senden, Sie müssen jedoch sicherstellen, dass die Urlaubsbilanz eines Mitarbeiters nie kleiner als Null ist. Daher fügen Sie in der mittleren Ebene Logik hinzu, mit der die Urlaubsbilanz des Mitarbeiters vor dem Senden eines Urlaubsantrags überprüft wird.

Um in einem RIA Services -Client wie einer Silverlight-Anwendung maximale Benutzerfreundlichkeit zu bieten, sollen auf dem Client oft die gleichen Geschäftsregeln erzwungen werden wie auf dem Server. Dies erfordert, dass der Code der mittleren Ebene auf dem Client und Server synchronisiert wird. RIA Services ermöglicht es Ihnen, Anwendungslogik in der mittleren Ebene mithilfe von .NET Framework zu schreiben. Da RIA Services automatisch Code für die Präsentationsebene aus dem Code der mittleren Ebene generiert, werden diese Ebenen immer synchronisiert. In diesem Thema und den Unterthemen wird beschrieben, wie Domänendienste, freigegebener Code und Datenentitäten verwendet werden, um die mittlere Ebene zu erstellen.

Datenzugriffsebene

Sie können jeden beliebigen Typ von Datenzugriffsebene verwenden, wenn Sie die mittlere Ebene mit RIA Services entwickeln. Sie können z. B. eine Verbindung mit den folgenden Datenzugriffsebenen herstellen:

  • Entity Data Model

  • LINQ to SQL-Objektmodell (dies ist nur möglich, wenn Sie das RIA Services-Toolkit installiert haben)

  • Common Language Runtime-Objekt (CLR)

  • Webdienst, der Daten aus seiner Quelle verfügbar macht

Sie können Validierungsüberprüfungen auf das Datenmodell anwenden, um Einschränkungen für von der Präsentationsebene übermittelte Datenwerte zu erzwingen.

In einigen Fällen müssen Sie mit Daten interagieren, die in mehreren Tabellen vorhanden sind. RIA Services stellt eine Programmierumgebung bereit, die das Ändern von hierarchischen Datenmodellen (z. B. eine Order- und OrderDetails-Beziehung), von Vererbungsdatenmodellen (z. B. eine Über-/Untergeordnet-Beziehung) und von Datenprojektionsmodellen (z. B. das Denormalisieren von Daten, indem Werte aus den Tabellen "Customer" und "Address" in nur ein Datenmodell abgerufen werden) unterstützt. Weitere Informationen finden Sie unter Daten.

In der Anwendung müssen Sie möglicherweise Daten aus einer Vielzahl von Datenquellen anzeigen oder eine einzelne Entität für mehrere Domänendienste verfügbar machen. WCF RIA Services ermöglicht dieses Szenario, da Verweise zwischen Entitäten unterschiedlicher DomainContext-Typen unterstützt werden. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Freigeben von Entitäten zwischen mehreren Domänendiensten.

Standardmäßig übergibt RIA Services nicht die gesamte ursprüngliche Entität zusammen mit den geänderten Werten an die Datenzugriffsebene, um die Datenparallelität zu überprüfen. Stattdessen speichert und übergibt RIA Services nur die Member, die mit dem Attribut RoundtripOriginalAttribute, ConcurrencyCheck oder TimeStamp markiert sind. Weitere Informationen finden Sie unter Daten.

Domänendienste

Ein Domänendienst ist die öffentliche Abstraktion der Geschäftslogik für eine Domäne. Er enthält die Entitäten und Vorgänge, aus denen die Domänengeschäftslogik besteht. RIA Services stellt die DomainService-Klasse als Basisklasse für alle Klassen bereit, die als Schnittstelle zur Geschäftslogik in der Datenebene dienen. Wenn Sie einen Domänendienst implementieren, geben Sie die Entitätsklassen an, die Sie für den Zugriff vom Client verfügbar machen möchten. Sie geben auch die Datenvorgänge an, die über den Domänendienst zulässig sind, und Sie können dem Domänendienst Anwendungslogik hinzufügen. Für jeden Domänendienst, den Sie für den Clientzugriff aktivieren, generiert RIA Services eine DomainContext-Klasse für die Clientanwendung. Weitere Informationen finden Sie unter Domänendienste.

Informationen zum Sichern des Domänendiensts finden Sie unter Sicherheit für WCF RIA Services.

Freigegebener Code

In einigen Szenarien müssen Sie zwischen dem Projekt der mittleren Ebene und dem Projekt der Präsentationsebene freigegebenen Code hinzufügen, möchten diesen Code aber nicht im Domänendienst oder einer Entitätsklasse hinzufügen. Möglicherweise müssen Sie z. B. auf eine Bibliothek verweisen, die in vielen anderen Projekten verwendete Anwendungslogik enthält. Es kann auch vorkommen, dass Sie benutzerdefinierte Eigenschaften erstellen müssen, durch die Werte aus der Entitätsklasse kombiniert oder geändert werden, z. B. ein Anzeigename im Format "Nachname, erster Buchstabe des Vornamens". RIA Services ermöglicht es Ihnen, Klassen oder Assemblys in die mittlere Ebene einzuschließen, auf die ohne Änderungen am Clientprojekt zugegriffen werden kann. Weitere Informationen finden Sie im Thema Freigegebener Code.

Clientcodegenerierung

Wenn Sie mit RIA Services ein Projekt der mittleren Ebene und ein Projekt der Präsentationsebene verknüpfen, generiert das RIA Services -Framework automatisch Code für den Client aus der mittleren Ebene. Clientcode wird für den folgenden Code der mittleren Ebene generiert:

  • Jeder Domänendienst, der mit dem EnableClientAccessAttribute-Attribut versehen ist.

  • Jede Entitätsklasse, auf die von einem Domänendienst verwiesen wird.

  • Nach der freigegebenen Benennungskonvention benannte Codedateien (*.shared.cs oder *.shared.vb) werden ohne Änderung in das Clientprojekt kopiert.

Dieser Code der mittleren Ebene steht dem Client durch Clientproxyklassen zur Verfügung. Wenn sich der Code der mittleren Ebene ändert, werden die Clientproxyklassen automatisch erneut generiert, damit die Präsentationsebene immer mit der mittleren Ebene synchronisiert ist.

Weitere Informationen finden Sie unter Clientcodegenerierung.

Anzeigen:
© 2015 Microsoft