Exemplarische Vorgehensweise: Erstellen von und Zugreifen auf einen WCF-Datendienst in Visual Studio

In dieser exemplarischen Vorgehensweise wird dargestellt, wie ein einfacher WCF Data Service erstellt wird, der in einer ASP.NET-Webanwendung gehostet wird, und wie dann von einer Windows Forms-Anwendung aus darauf zugegriffen wird.

In dieser exemplarischen Vorgehensweise werden Sie:

  • Eine Webanwendung erstellen, um einen WCF Data Service zu hosten.

  • Ein Entity Data Model zur Darstellung der Tabelle "Customers" in der Northwind-Datenbank erstellen.

  • Erstellen Sie eine WCF Data Service.

  • Eine Clientanwendung erstellen und dieser einen Verweis auf den WCF Data Service hinzufügen.

  • Die Datenbindung zum Dienst aktivieren und die Benutzeroberfläche erstellen.

  • Optional Filterfunktionen zur Anwendung hinzufügen.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

Erstellen des Diensts

Um einen WCF Data Service zu erstellen, fügen Sie ein Webprojekt hinzu. Dann erstellen Sie ein Entity Data Model und erstellen anschließend den Dienst aus dem Modell.

Im ersten Schritt fügen Sie ein Webprojekt zum Hosten des Diensts hinzu.

HinweisHinweis

Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

So erstellen Sie das Webprojekt

  1. Klicken Sie im Menü Visual Studio Datei auf Neues Projekt.

  2. Im Dialogfeld Neues Projekt erweitern Sie den Visual Basic oder Visual C# Knoten und klicken Sie auf Web und wählen Sie dann ASP.NET Web Forms-Anwendung aus.

  3. Geben Sie im Feld Name die Zeichenfolge NorthwindWeb ein, und klicken Sie dann auf OK, um das Projekt zu erstellen.

In diesem Schritt erstellen Sie ein Entity Data Model zur Darstellung der Tabelle "Customers" in der Northwind-Datenbank.

So erstellen Sie das Entity Data Model

  1. Klicken Sie im Menü Projekt auf Neues Element hinzufügen.

  2. Im Dialogfeld wählen Neues Element hinzufügen ausgewähltes Daten und dann ADO.NET Entity Data Model aus.

  3. Geben Sie im Feld Name die Zeichenfolge NorthwindModel ein, und klicken Sie dann auf Hinzufügen.

    Der Assistent für Entity Data Model wird angezeigt.

  4. Wählen Sie im Assistent für Entity Data Model die Option Aus Datenbank generieren aus, und klicken Sie dann auf Weiter.

  5. Führen Sie auf der Seite Wählen Sie Ihre Datenverbindung aus einen der folgenden Schritte aus:

    • Wenn in der Dropdownliste eine Datenverbindung zur Beispieldatenbank Northwind verfügbar ist, klicken Sie auf diese.

      - oder -

    • Klicken Sie auf Neue Verbindung, um eine neue Datenverbindung zu konfigurieren.Weitere Informationen hierzu finden Sie unter How to: Create Connections to SQL Server Databases.

  6. Sollte für die Datenbank ein Kennwort erforderlich sein, wählen Sie die Option für die Einbeziehung vertraulicher Daten aus, und klicken Sie anschließend auf Weiter.

    HinweisHinweis

    Klicken Sie in dem ggf. angezeigten Dialogfeld auf Ja, um die Datei im Projekt zu speichern.

  7. Erweitern Sie auf der Seite Datenbankobjekte auswählen den Knoten Tabellen, aktivieren Sie das Kontrollkästchen neben Customers, und klicken Sie auf Fertig stellen.

    Das Entitätsmodelldiagramm wird angezeigt, und dem Projekt wird die Datei NorthwindModel.edmx hinzugefügt.

In diesem Schritt erstellen und testen Sie den Datendienst.

So erstellen Sie den Datendienst

  1. Klicken Sie im Menü Projekt auf Neues Element hinzufügen.

  2. Im Dialogfeld wählen Neues Element hinzufügen ausgewähltes Web und dann WCF-Datendienst aus.

  3. Geben Sie im Feld Name die Zeichenfolge NorthwindCustomers ein, und klicken Sie dann auf Hinzufügen.

    Die Datei NorthwindCustomers.svc wird im Code-Editor angezeigt.

  4. Suchen Sie im Code-Editor den ersten TODO:-Kommentar, und ersetzen Sie den Code durch Folgendes:

    Inherits DataService(Of northwindEntities)
    
    public class NorthwindCustomers : DataService<northwindEntities>
    
    HinweisHinweis

    Je nach verwendeter Version der Northwind-Datenbank muss "NORTHWIND" möglicherweise in "NORTHWND" geändert werden.Sie können auch IntelliSense verwenden, um den richtigen Namen zu ermitteln.

  5. Ersetzen Sie die Kommentare im InitializeService-Ereignishandler durch folgenden Code:

    config.SetEntitySetAccessRule("*", EntitySetRights.All)
    
    config.SetEntitySetAccessRule("*", EntitySetRights.All);
    
  6. Drücken Sie STRG+F5, um den Dienst auszuführen.Ein Browserfenster wird geöffnet, und das XML-Schema für den Dienst wird angezeigt.

  7. Geben Sie in der Adressleiste am Ende der URL für NorthwindCustomers.svc die Zeichenfolge Customers ein, und drücken Sie die EINGABETASTE.

    Eine XML-Darstellung der Daten in der Tabelle "Customers" wird angezeigt.

    HinweisHinweis

    In einigen Fällen interpretiert Internet Explorer die Daten fälschlicherweise als RSS-Feed.Sie müssen sicherstellen, dass die Option zum Anzeigen von RSS-Feeds deaktiviert ist.Weitere Informationen hierzu finden Sie unter Problembehandlung bei Dienstverweisen.

  8. Schließen Sie das Browserfenster.

In den nächsten Schritten erstellen Sie eine Windows Forms-Clientanwendung zur Verwendung des Diensts.

Erstellen der Clientanwendung

Zum Erstellen der Clientanwendung fügen Sie ein zweites Projekt hinzu, dem Sie einen Dienstverweis hinzufügen. Daraufhin konfigurieren Sie eine Datenquelle, und erstellen eine Benutzeroberfläche zum Anzeigen der Daten des Diensts.

Im ersten Schritt fügen Sie der Projektmappe ein Windows Forms-Projekt hinzu und legen dieses als Startprojekt fest.

So erstellen Sie die Clientanwendung

  1. Klicken Sie im Menü Datei von Visual Studio auf Hinzufügen, und klicken Sie dann auf Neues Projekt.

  2. Erweitern Sie im Dialogfeld Neues Projekt den Knoten Visual Basic oder Visual C#, klicken Sie auf Windows, und wählen Sie Windows Forms-Anwendung aus.

  3. Geben Sie im Feld Name die Zeichenfolge NorthwindClient ein, und klicken Sie dann auf OK, um das Projekt zu öffnen.

  4. Wählen Sie im Projektmappen-Explorer das Projekt "NorthwindClient" aus.

  5. Klicken Sie im Menü Projekt auf Als Startprojekt festlegen.

In diesem Schritt fügen Sie dem WCF Data Service im Webprojekt einen Dienstverweis hinzu.

So fügen Sie einen Dienstverweis hinzu

  1. Klicken Sie im Menü Projekt auf Dienstverweis hinzufügen.

  2. Klicken Sie im Dialogfeld Dienstverweis hinzufügen auf Ermitteln.

    Die URL für den NorthwindCustomers-Dienst wird im Feld Adresse angezeigt.

  3. Klicken Sie auf OK, um den Dienstverweis hinzuzufügen.

In diesem Schritt konfigurieren Sie eine Datenquelle, um die Datenbindung zum Dienst zu aktivieren.

So aktivieren Sie die Datenbindung zum Dienst

  1. Klicken Sie im Menü Daten auf Datenquellen anzeigen.

  2. Klicken Sie im Datenquellenfenster auf Neue Datenquelle hinzufügen.

  3. Klicken Sie auf der Seite Datenquellentyp auswählen des Assistenten zum Konfigurieren von Datenquellen auf Objekt und dann auf Weiter.

  4. Erweitern Sie auf der Seite Objekt auswählen, an das Bindung hergestellt werden soll den Knoten NorthwindClient, und erweitern Sie dann den Knoten NorthwindClient.ServiceReference1.

  5. Wählen Sie Customers aus, und klicken Sie auf Fertig stellen.

In diesem Schritt erstellen Sie die Benutzeroberfläche, auf der die Daten des Diensts angezeigt werden.

So erstellen Sie eine Benutzeroberfläche

  1. Ziehen Sie den Knoten Customers aus dem Fenster Datenquellen auf das Formular.

    Ein DataGridView-Steuerelement, eine BindingSource-Komponente und eine BindingNavigator-Komponente werden dem Formular hinzugefügt.

  2. Doppelklicken Sie auf das Formular, um den Code-Editor zu öffnen, und fügen Sie dem Form1_Load-Ereignishandler folgenden Code hinzu:

           Dim proxy As New ServiceReference1.northwindModel.northwindEntities _
    (New Uri("https://localhost:53161/NorthwindCustomers.svc/"))
           Me.CustomersBindingSource.DataSource = proxy.Customers
    
               ServiceReference1.northwindModel.northwindEntities proxy = new
    ServiceReference1.northwindModel.northwindEntities(new
    Uri("https://localhost:53397/NorthwindCustomers.svc/"));
               this.customersBindingSource.DataSource = proxy.Customers;
    
    HinweisHinweis

    Je nach verwendeter Version der Northwind-Datenbank muss "NORTHWIND" möglicherweise in "NORTHWND" geändert werden.Sie können auch IntelliSense verwenden, um den richtigen Namen zu ermitteln.

  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei NorthwindCustomers.svc, und klicken Sie dann auf In Browser anzeigen.Internet Explorer wird geöffnet, und das XML-Schema für den Dienst wird angezeigt.

  4. Kopieren Sie die URL aus der Adressleiste von Internet Explorer.

  5. Markieren Sie in dem in Schritt 2 hinzugefügten Code den Text https://localhost:14735/NorthwindCustomers.svc, und ersetzen Sie diesen durch die soeben kopierte URL.

  6. Drücken Sie F5, um die Anwendung auszuführen.Die Kundeninformationen werden angezeigt.

Sie verfügen nun über eine funktionierende Anwendung, die eine Liste der Kunden aus dem NorthwindCustomers-Dienst anzeigt.Wenn Sie weitere Daten über den Dienst bereitstellen möchten, können Sie das Entity Data Model so bearbeiten, dass zusätzliche Tabellen aus der Northwind-Datenbank eingebunden werden.

Im nächsten optionalen Schritt erfahren Sie, wie die vom Dienst zurückgegebenen Daten gefiltert werden.

Hinzufügen von Filterfunktionen

In diesem Schritt passen Sie die Anwendung an, um die Daten nach dem Wohnort des Kunden zu filtern.

So fügen Sie Filterung anhand des Wohnorts hinzu

  1. Doppelklicken Sie im Projektmappen-Explorer auf Form1.vb oder Form1.cs, um den Windows Forms-Designer anzuzeigen.

  2. Ziehen Sie ein TextBox-Steuerelement und ein Button-Steuerelement aus der Toolbox in das Formular.

  3. Doppelklicken Sie auf das Button-Steuerelement, und fügen Sie im Button1_Click-Ereignishandler den folgenden Code hinzu:

           Dim proxy As New ServiceReference1.northwindModel.northwindEntities _
    (New Uri("https://localhost:53161/NorthwindCustomers.svc"))
           Dim city As String = TextBox1.Text
    
           If city <> "" Then
               Me.CustomersBindingSource.DataSource = From c In _
            proxy.Customers Where c.City = city
           End If
    
            ServiceReference1.northwindModel.northwindEntities proxy = new
     ServiceReference1.northwindModel.northwindEntities(new
     Uri("https://localhost:53397/NorthwindCustomers.svc/"));
        string city = textBox1.Text;
    
    if (city != "")
    {
        this.customersBindingSource.DataSource = from c in
     proxy.Customers where c.City == city select c;   
    
  4. Ersetzen Sie im vorherigen Code den Text https://localhost:14735/NorthwindCustomers.svc durch die URL aus dem Form1_Load-Ereignishandler.

  5. Drücken Sie F5, um die Anwendung auszuführen.

  6. Geben Sie im Textfeld die Zeichenfolge London ein, und klicken Sie dann auf die Schaltfläche.Nur die Kunden aus London werden angezeigt.

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen, Aktualisieren oder Entfernen eines WCF-Datendienstverweises