Freigegebener Code

WCF RIA Services ermöglicht es Ihnen, Anwendungslogik zu schreiben, die zwischen der mittleren Ebene und der Darstellungsebene freigegeben ist, und stellt somit auf sowohl dem Server als auch dem Client identische Funktionalität bereit. Code kann entweder für Quelldateien oder Assemblys freigegeben werden.

Im Gegensatz zum im Thema Clientcodegenerierung beschriebenen automatischen Codegenerierungsprozess wird freigegebener Code während der Kompilierung nicht geändert. Stattdessen wird der Code entweder kopiert oder wörtlich zwischen den Ebenen freigegeben. Mit freigegebenem Code können Sie Logikabschnitte oder partielle Klassenerweiterungen für die Entitäten definieren, die einmal auf dem Server definiert werden, für die jedoch auch Code auf dem Client generiert wird, damit die gleiche Logik zur Verwendung an beiden Stellen verfügbar ist.

Freigegebene Quelldateien

Sie können der mittleren Ebene Quelldateien hinzufügen und diese Dateien anschließend explizit für die Freigabe auf der Darstellungsebene festlegen. Es gibt zwei Methoden zur Freigabe von Quelldateien auf verschiedenen Ebenen. Bei der ersten Methode werden die Quelldateien gemäß einer freigegebenen Benennungskonvention benannt: *.shared.cs (für C#) oder *.shared.vb (für Visual Basic). Bei der zweiten Methode wird die Funktion für verknüpfte Dateien in Visual Studio 2010 verwendet.

Freigegebene Benennungskonvention

Wenn Sie die freigegebene Benennungskonvention für die Freigabe von Dateien verwenden (*.shared.cs oder *.shared.vb), implementieren Sie ein Push-Modell für die Freigabe von Quellcodedateien. Die freigegebenen Dateien werden während der Kompilierung aktiv vom Projekt der mittleren Ebene in das Clientprojekt kopiert. Die freigegebene Benennungskonvention funktioniert nur dann für Dateifreigaben, wenn ein RIA Services -Link zwischen den Client- und Serverprojekten vorhanden ist.

Freigegebene Datei

Die freigegebene Benennungskonvention bietet die folgenden Vorteile:

Vorteile der freigegebenen Benennungskonvention Beschreibung

Integrierte Unterstützung

Der Entwickler muss keine weiteren Schritte ausführen, um die Synchronität der freigegebenen Dateien zu wahren.

Transparent

Der Name gibt eindeutig Aufschluss darüber, dass die Datei freigegeben werden soll.

Selbstständige Verwaltung

Wenn neue freigegebene Dateien hinzugefügt werden, werden alle Clientprojekte, die mit der mittleren Ebene verknüpft sind, bei der Kompilierung der Projektmappe automatisch aktualisiert.

Leicht verständliche Debugerfahrung

Der Entwickler kann in den Server- oder Clientversionen der Datei Haltepunkte festlegen.

Die freigegebene Benennungskonvention weist folgende Nachteile auf:

Nachteile der freigegebenen Benennungskonvention Beschreibung

Neues Konzept

Der Entwickler muss die freigegebene Benennungskonvention beachten.

Dateien werden kopiert

Die freigegebenen Dateien werden physisch in Clientprojekte kopiert, d. h., dass ein Entwickler möglicherweise unbeabsichtigt die kopierte Version bearbeitet und während der nächsten Kompilierung Änderungen verloren gehen.

Weitere Informationen finden Sie unter Gewusst wie: Freigeben von Code durch Quelldateien.

Verknüpfte Dateien

"Verknüpfte Dateien" ist eine bestehende Funktion von Visual Studio 2010 und ist in RIA Services nicht eindeutig. Ein RIA Services -Link zwischen Projekten kann vorhanden sein, doch es müssen keine verknüpften Dateien verwendet werden. Wenn Sie die Methode für verknüpfte Dateien verwenden, implementieren Sie ein Pull-Modell für die Freigabe von Quellcodedateien. Das Clientprojekt enthält keine Kopie der Datei. Stattdessen verweist das Clientprojekt nur auf die Datei im Serverprojekt.

Verknüpfte Datei

Sie können auch die Server- sowie die Clientprojekte mit einer Datei in einem anderen Projekt verknüpfen.

Verknüpfte Dateien

Die Methode mit verknüpften Dateien bietet die folgenden Vorteile:

Vorteile der Methode mit verknüpften Dateien Beschreibung

Bestehende Visual Studio-Funktion

Der Entwickler muss sich mit keiner neuen Konvention vertraut machen.

Die Datei wird nicht kopiert.

Die Datei ist nur im Serverprojekt vorhanden. Daher kann der Entwickler keine kopierte Version des Clients ändern, weshalb bei der nächsten Kompilierung keine Änderungen verloren gehen.

Die Methode mit verknüpften Dateien weist die folgenden Nachteile auf:

Nachteile der Methode mit verknüpften Dateien Beschreibung

Erfordert eine explizite Benutzeraktion

Der Entwickler muss jede freigegebene Datei verknüpfen.

Keine selbstständige Wartung

Jedes Clientprojekt muss aktualisiert werden, wenn freigegebene Dateien hinzugefügt oder entfernt werden.

Mangelnde Transparenz

Der Entwickler muss die Projektdatei überprüfen, um festzustellen, welche Dateien freigegeben werden.

Mangelnde Benutzerfreundlichkeit der Debuggingfunktionen

Die Bestimmung der Ebene, von der ein Haltepunkt angefordert wurde, gestaltet sich relativ schwierig.

Weitere Informationen finden Sie unter Gewusst wie: Freigeben von Code durch Quelldateien.

Freigegebene Assemblys

Anstatt Quelldateien zwischen Projekten freizugeben, können Sie Code in eine Klassenbibliothek kompilieren und dann die Bibliothek über Assemblyverweise freigeben. Sie stellen mithilfe der WCF RIA Services-Klassenbibliotheken sicher, dass die Assemblys kompatibel sind, auch wenn sie mit anderen Frameworks (z. B. .NET Framework Version 4 und Silverlight 4 ) verwendet werden.

Das folgende Diagramm zeigt eine n-Ebenen-Anwendung, die RIA Services -Klassenbibliotheken für die Freigabe von Code verwendet. Die mittlere Ebene und die Clientebene verwenden Assemblyverweise auf die Klassenbibliotheken.

Struktur der Klassenbibliothek

Weitere Informationen zu RIA Services -Klassenbibliotheken finden Sie unter Erstellen von RIA Services-Projektmappen und Exemplarische Vorgehensweise: Erstellen einer RIA Services-Klassenbibliothek.