Erstellen von RIA Services-Projektmappen

WCF RIA Services ermöglicht es Ihnen, beim Erstellen von Geschäftsanwendungen Projektmappen für eine Vielzahl von Szenarien zu erstellen. Es werden sowohl elementare als auch komplexe Szenarien unterstützt. Ein elementares Szenario kann z. B. aus nur einer Silverlight-Anwendung bestehen, die auf wenige Domänendienste in der mittleren Ebene zugreift. Ein komplexeres Szenario könnte mehrere Silverlight-Anwendungen umfassen, die alle mit einer gemeinsamen mittleren Ebene verknüpft sind, die viele Domänendienste verfügbar macht. Dieses Thema befasst sich mit Problemen, die beim Erstellen und Verwalten einer RIA Services -Projektmappe auftreten. Folgende Fragen werden z. B. behandelt:

  • Welche unterschiedlichen Methoden sind zum Strukturieren einer RIA Services -Projektmappe verfügbar?

  • Welche Struktur eignet sich für ein bestimmtes Szenario am besten?

  • Wie können Fehler in einer Projektmappe behoben werden?

  • Wie kann eine Projektmappe bereitgestellt werden?

Dieses Thema enthält auch einige Hinweise zu den exemplarischen Vorgehensweisen und anderen Themen in diesem Abschnitt, in denen Aufgaben für eine Reihe typischer Szenarien mit RIA Services Schritt für Schritt beschrieben werden. Dieser Abschnitt enthält die folgenden fünf exemplarischen Vorgehensweisen:

  1. Exemplarische Vorgehensweise: Einführung in RIA Services

  2. Exemplarische Vorgehensweise: Erstellen einer RIA Services-Projektmappe

  3. Exemplarische Vorgehensweise: Verwenden der Silverlight-Geschäftsanwendungsvorlage

  4. Exemplarische Vorgehensweise: Erstellen einer RIA Services-Klassenbibliothek

  5. Exemplarische Vorgehensweise: Lokalisieren einer Geschäftsanwendung

Dieser Abschnitt enthält auch die folgenden drei Themen:

  1. In Gewusst wie: Hinzufügen oder Entfernen eines Links für RIA Services wird die Verwaltung der RIA Services -Links beschrieben.

  2. In Verwenden des Domänendienst-Assistenten werden die Benutzeroberflächenelemente im Dialogfeld beschrieben.

  3. Im Thema zum Debuggen einer RIA Services-Projektmappe wird beschrieben, wie Sie vorgehen können, wenn beim Erstellen einer RIA Services -Projektmappe Probleme auftreten.

Für die exemplarischen Vorgehensweisen in diesem Abschnitt der RIA Services -Dokumentation müssen zusätzlich zu WCF RIA Services und dem WCF RIA Services-Toolkit mehrere erforderliche Programme installiert und korrekt konfiguriert werden, z. B. Visual Studio 2010, die Silverlight-Laufzeit und das Silverlight-SDK. Zudem müssen Sie SQL Server 2008 R2 Express with Advanced Services installieren und konfigurieren und die AdventureWorks OLTP- und LT-Datenbanken installieren.

Ausführliche Anweisungen für jede dieser erforderlichen Komponenten finden Sie in den Themen unter Erforderliche Komponenten für WCF RIA Services. Folgen Sie den Anweisungen in diesen Themen, um sicherzustellen, dass beim Ausführen der exemplarischen Vorgehensweisen für RIA Services in diesem Abschnitt so wenig Probleme wie möglich auftreten.

In allen RIA Services -Projektmappen ist ein Link (bezeichnet als RIA Services -Link) zwischen einem Silverlight-Projekt und dem zugehörigen Projekt der mittleren Ebene vorhanden. Ein RIA Services -Link ist ein spezieller Interprojektverweis, der das Generieren von Code der Präsentationsebene aus Code der mittleren Ebene vereinfacht. Um einen RIA Services -Link zu erstellen, aktivieren Sie das Kontrollkästchen WCF RIA-Dienste aktivieren beim Erstellen eines neuen Silverlight-Projekts. Sie können in den Projekteigenschaften auch einen RIA Services -Link für vorhandene Projekte erstellen. Wie in den folgenden Abschnitten beschrieben, wird der RIA Services -Link in einigen Fällen zwischen Anwendungsprojekten erstellt und in anderen Fällen zwischen Klassenbibliotheksprojekten.

Wenn ein Link zwischen den Projekten vorhanden ist, empfängt das Silverlight-Projekt Proxyklassen, die ihm den Zugriff auf Code der mittleren Ebene ermöglichen. Es kann nicht angegeben werden, dass nur bestimmte Teile der mittleren Ebene für ein Silverlight-Projekt gelten. Die folgenden Regeln gelten für die Verwendung von RIA Services -Links:

  • Der Link wird in einem Silverlight-Clientprojekt definiert.

  • Der Link verweist immer von einem Silverlight-Clientprojekt auf ein .NET-Serverprojekt oder eine .NET-Klassenbibliothek.

  • Für jedes Silverlight-Clientprojekt kann nur ein Link vorhanden sein.

  • Der Link kann nicht auf andere Silverlight-Clientprojekte verweisen.

  • Mehrere Silverlight-Clientprojekte können auf das gleiche Serverprojekt oder die gleiche Klassenbibliothek verweisen.

  • Eine Silverlight-Anwendung kann nicht direkt mit einem Klassenbibliotheksprojekt verknüpft werden.

Weitere Informationen zum Verwalten von RIA Services -Links finden Sie unter Gewusst wie: Hinzufügen oder Entfernen eines Links für RIA Services in diesem Abschnitt.

Standardmäßige Projektmappenstruktur

In der standardmäßigen Projektmappenstruktur erstellt RIA Services nur ein Clientprojekt und nur ein Serverprojekt. Wenn Sie mit der Vorlage Silverlight-Anwendung ein neues Projekt erstellen und das Kontrollkästchen WCF RIA-Dienste aktivieren aktivieren, wird eine Projektmappe mit dieser Standardstruktur erstellt. Zwischen den beiden Projekten ist dann bereits ein RIA Services -Link vorhanden. Beim Erstellen der Projektmappe wird Clientcode für Domänendienste und freigegebener Code generiert. Die folgende Abbildung zeigt die standardmäßige Projektmappenstruktur.

Standardprojektstruktur

Die standardmäßige Projektmappenstruktur ist praktisch, da alle dem Serverprojekt hinzugefügten Domänendiensttypen und der hinzugefügte freigegebene Code nach dem Erstellen der Projektmappe automatisch für das Silverlight-Clientprojekt verfügbar sind. Zudem ist der freigegebene Code, den Sie dem Serverprojekt hinzufügen, im Clientprojekt sichtbar. Diese Struktur funktioniert gut, wenn das Serverprojekt wenig Domänendienste umfasst und Geschäftslogik nicht in vielen unterschiedlichen Silverlight-Anwendungen wiederverwendet werden muss.

In einer Projektmappe mit der Standardstruktur können Sie dem Serverprojekt weitere Silverlight-Anwendungen mit einem RIA Services -Link hinzufügen. Für die Standardstruktur gelten jedoch einige Einschränkungen. Der generierte Code für jeden Silverlight-Client kann auf den gesamten Code der mittleren Ebene des Serverprojekts zugreifen. Wenn z. B. drei Silverlight-Anwendungen mit einem Serverprojekt verknüpft sind und Sie einen Domänendienst hinzufügen möchten, der nur von einer der Silverlight-Anwendungen verwendet wird, enthalten alle drei Clientanwendungen einen generierten Domänenkontext für den Domänendienst und können auf diesen Domänendienst zugreifen.

Weitere Informationen zum Erstellen von RIA Services -Projektmappen in Visual Studio 2010 finden Sie unter Exemplarische Vorgehensweise: Erstellen einer RIA Services-Projektmappe. Weitere Informationen zum generierten Code für ein Clientprojekt finden Sie unter Clientcodegenerierung.

Vorlage "Silverlight-Geschäftsanwendung"

RIA Services enthält auch eine Vorlage mit dem Namen Silverlight-Geschäftsanwendung. Diese Vorlage ist ein geeigneter Ausgangspunkt für das Erstellen einer Geschäftsanwendung, in der Silverlight für den Client eingesetzt wird. Die Vorlage beruht auf der Silverlight-Navigationsanwendung und verwendet RIA Services für die Authentifizierung und Benutzerregistrierung. Wenn Sie ein Projekt mit der Vorlage Silverlight-Geschäftsanwendung erstellen, wird die Projektmappe von RIA Services mit der Standardstruktur erstellt. Die folgenden Funktionen werden bei Verwendung der Vorlage Silverlight-Geschäftsanwendung automatisch hinzugefügt:

  • Anmeldefenster

  • Registrierungsfenster

  • Silverlight-Navigation

Der Standardauthentifizierungsmodus für die Geschäftsanwendung ist die Formularauthentifizierung. Wenn Sie die Windows-Authentifizierung verwenden möchten, ändern Sie einfach den Wert des Authentifizierungselements in der Datei "Web.config" (z. B. <authentication mode="Windows"/>) und den Wert der Authentication-Eigenschaft für die generierte WebContext-Klasse. Die Geschäftsanwendungsvorlage enthält automatisch Code zur Unterstützung der Formularauthentifizierung oder der Windows-Authentifizierung. Weitere Informationen finden Sie im Thema Exemplarische Vorgehensweise: Verwenden der Silverlight-Geschäftsanwendungsvorlage.

Der Ordner "Services" des Serverprojekts enthält die Domänendienste, durch die Benutzerregistrierung und Benutzerauthentifizierung verfügbar gemacht werden. Der Benutzerregistrierungsdienst verwendet den ASP.NET-Mitgliedschaftsanbieter, um neue Benutzer zu erstellen. Ein Ordner mit dem Namen "Models" im Serverprojekt enthält Klassen zum Definieren von Eigenschaften für Benutzer- und Registrierungsdaten. Sie können diesen Klassen Eigenschaften hinzufügen, um die Benutzerdaten für Ihre Anwendung anzupassen.

Im Clientprojekt enthält die Geschäftsanwendung Code, der das Entwickeln der Präsentationsebene vereinfacht. Die Ordner "Libs" und "Controls" enthalten Assemblys und Steuerelemente, die innerhalb der Vorlage verwendet werden. Der Ordner "Login" (im Ordner "Views") enthält die Authentifizierungs- und Benutzerregistrierungssteuerelemente. Diese Steuerelemente werden automatisch im Projekt aktiviert. Der Ordner "Resources" (im Ordner "Assets") enthält Ressourcenzeichenfolgen für Text innerhalb des Projekts. Wenn Sie der Anwendung Text hinzufügen, können Sie diesen Text der Datei für Anwendungszeichenfolgen hinzufügen.

Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Verwenden der Silverlight-Geschäftsanwendungsvorlage.

Unterstützung von n-Ebenen-Klassenbibliothekskomponenten

RIA Services stellt den Projekttyp WCF RIA Services-Klassenbibliothek bereit, um die Freigabe von Code durch Bibliotheken zu unterstützen. Mithilfe von Klassenbibliotheken können Sie Geschäftslogik in wiederverwendbare n-Ebenen-Klassenbibliothekskomponenten verpacken.

Die folgende Abbildung zeigt eine Projektmappenstruktur mit einer RIA Services-Klassenbibliothek.

Struktur der Klassenbibliothek

Beachten Sie, dass kein RIA Services -Link zwischen den Anwendungsprojekten vorhanden ist. Stattdessen ist der Link zwischen den Klassenbibliotheksprojekten vorhanden. Sie können beliebig viele der Klassenbibliotheken in Ihrer Anwendung verwenden, und Sie können die Klassenbibliothek in einer beliebigen Anzahl von Anwendungen wiederverwenden.

Die Verwendung von RIA Services -Klassenbibliotheken bietet die folgenden Vorteile:

  • Die Server- und Clientteile einer einzelnen Datendomäne können als eine Komponente entwickelt und gepackt werden. Diese Komponente kann in mehreren Anwendungen wiederverwendet werden.

  • Die Generierung von Clientproxycode und die Quellcodefreigabe erfolgen an einem Speicherort. Der Speicherort befindet sich zwischen den Ebenen der Komponente und nicht in jeder Silverlight-Anwendung.

  • Mehrere Silverlight-Anwendungen in einem Webanwendungsprojekt können nur auf die benötigten Klassenbibliotheken verweisen. So muss nicht die gesamte, von der mittleren Ebene verfügbar gemachte Geschäftslogik für einen Silverlight-Client sichtbar sein.

Mit RIA Services -Klassenbibliotheken können Sie eine flexible Projektmappenstruktur erstellen, die nur die für eine Anwendung benötigten Komponenten bereitstellt. Die folgende Abbildung zeigt eine Projektmappenstruktur mit mehreren RIA Services -Klassenbibliotheken.

Struktur der Klassenbibliothek

Important Hinweis:
Wenn Sie einem Projekt vom Typ Silverlight-Geschäftsanwendung ein Klassenbibliotheksprojekt hinzufügen, können Sie dem Serverprojekt in der Klassenbibliothek keinen Authentifizierungsdienst hinzufügen. Das User-Objekt in der Vorlage Silverlight-Geschäftsanwendung ist für die Klassenbibliothek nicht zugänglich.

Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen einer RIA Services-Klassenbibliothek.