Walkthrough: Creating and Accessing a WCF Data Service in Visual Studio

 

Veröffentlicht: Juni 2016

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.

Hinweis

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren der IDE.

So erstellen Sie das Webprojekt

  1. Wählen Sie in der Menüleiste Datei, Neu, Projekt aus.

  2. Erweitern Sie im Dialogfeld Neues Projekt den Knoten Visual Basic oder Visual C# sowie Web, und wählen Sie dann die Vorlage ASP.NET-Webanwendung aus.

  3. Geben Sie "NorthwindWeb" im Textfeld Name ein, und wählen Sie dann die Schaltfläche OK.

  4. Wählen Sie im Dialogfeld Neues ASP.NET-Projekt aus der Liste Vorlage auswählen die Option Leer, und klicken Sie dann auf die Schaltfläche OK.

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. Wählen Sie in der Menüleiste Projekt, Neues Element hinzufügen aus.

  2. Wählen Sie im Dialogfeld Neues Element hinzufügen den Knoten Daten und anschließend das Element ADO.NET Entity Data Model aus.

  3. Geben Sie NorthwindModel im Textfeld Name ein, und wählen Sie dann die Schaltfläche Hinzufügen.

    Der Assistent für Entity Data Model wird angezeigt.

  4. Wählen Sie im Entity Data Model-Assistenten auf der Seite Modellinhalte auswählen das Element EF-Designer aus Datenbank aus, und wählen Sie dann Weiter.

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

    • Wenn eine Datenverbindung mit der Beispieldatenbank Northwind in der Dropdownliste verfügbar ist, wählen Sie sie aus.

      - oder -

    • Wählen Sie die Schaltfläche Neue Verbindung, um eine neue Datenverbindung zu konfigurieren. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Verbindungen mit SQL Server-Datenbanken.

  6. Wenn für die Datenbank ein Kennwort erforderlich sein, wählen Sie das Optionsfeld Ja, vertrauliche Daten in die Verbindungszeichenfolge einschließen und dann die Schaltfläche Weiter.

    Hinweis

    Wenn ein Dialogfeld angezeigt wird, wählen Sie Ja, um die Datei im Projekt zu speichern.

  7. Wählen Sie auf der Seite Wählen Sie Ihre Version das Optionsfeld Entity Framework 5.0 aus, und klicken Sie dann auf die Schaltfläche Weiter.

    Hinweis

    Um die aktuelle Version vom Entity Framework 6 mit WCF-Diensten zu verwenden, müssen Sie das WCF Data Services Entity Framework Provider NuGet-Paket installieren. Weitere Informationen finden Sie unter Verwenden von WCF Data Services 5.6.0 mit Entity Framework 6+ (möglicherweise nur in englischer Sprache).

  8. Erweitern Sie auf der Seite Datenbankobjekte auswählen den Knoten Tabellen, aktivieren Sie das Kontrollkästchen Customers, und wählen Sie dann die Schaltfläche 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. Wählen Sie in der Menüleiste Projekt, Neues Element hinzufügen aus.

  2. Wählen Sie im Dialogfeld Neues Element hinzufügen den Knoten Web und anschließend das Element WCF Data Service 5.6.

  3. Geben Sie im Textfeld Name den Eintrag NorthwindCustomers ein, und wählen Sie dann die Schaltfläche 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:

        public class NorthwindCustomers : DataService<northwindEntities>
    
        Inherits DataService(Of northwindEntities)
    
  5. Ersetzen Sie die Kommentare im InitializeService-Ereignishandler durch folgenden Code:

                config.SetEntitySetAccessRule("*", EntitySetRights.All);
    
            config.SetEntitySetAccessRule("*", EntitySetRights.All)
    
  6. Wählen Sie zum Ausführen des Dienstes auf der Menüleiste Debuggen, Starten ohne Debugging aus. Ein Browserfenster wird geöffnet, und das XML-Schema für den Dienst wird angezeigt.

  7. Geben Sie in der Leiste Adresse am Ende der URL für "NorthwindCustomers.svc" die Zeichenfolge Customers ein, und wählen Sie die EINGABETASTE.

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

    Hinweis

    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 finden Sie unter Troubleshooting Service References.

  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. Wählen Sie auf der Menüleiste "Datei", Hinzufügen, Neues Projekt.

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

  3. Geben Sie im Textfeld Name den Eintrag NorthwindClient ein, und wählen Sie dann die Schaltfläche OK.

  4. Wählen Sie im Projektmappen-Explorer den NorthwindClient-Projektknoten.

  5. Wählen Sie in der Menüleiste Projekt, Als Startprojekt festlegen aus.

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

So fügen Sie einen Dienstverweis hinzu

  1. Wählen Sie in der Menüleiste Projekt, Dienstverweis hinzufügen aus.

  2. Wählen Sie im Dialogfeld Dienstverweis hinzufügen die Schaltfläche Ermitteln.

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

  3. Wählen Sie die Schaltfläche 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. Wählen Sie auf der Menüleiste Ansicht, Weitere Fenster, Datenquellen aus.

  2. Wählen Sie im Fenster Datenquellen die Schaltfläche Neue Datenquelle hinzufügen.

  3. Wählen Sie auf der Seite Datenquellentyp auswählen unter Assistent zum Konfigurieren von Datenquellen den Typ Objekt und dann die Schaltfläche Weiter.

  4. Erweitern Sie auf der Seite Datenobjekte auswählen den Knoten NorthwindClient, und erweitern Sie dann den Knoten NorthwindClient.ServiceReference1.

  5. Aktivieren Sie das Kontrollkästchen Customer, und wählen Sie dann Fertig stellen.

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

So erstellen Sie die Benutzeroberfläche

  1. Im Fenster Datenquellen öffnen Sie das Kontextmenü für den Knoten Customers und wählen Kopieren.

  2. In Formular-Designer Form1.vb oder Form1.cs öffnen Sie das Kontextmenü und wählen Einfügen.

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

  3. Wählen Sie das CustomersDataGridView-Steuerelement aus, und legen Sie dann im Fenster Eigenschaften die Eigenschaft Andocken auf Füllbereich fest.

  4. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für den Form1-Knoten, und wählen Sie Code anzeigen aus, um den Code-Editor zu öffnen, und fügen die folgende Imports- oder Using-Anweisung am Anfang der Datei ein:

    Imports NorthwindClient.ServiceReference1  
    
    using NorthwindClient.ServiceReference1;  
    
  5. Fügen Sie dem Form1_Load-Ereignishandler folgenden Code hinzu:

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load  
            Dim proxy As New NorthwindEntities _  
    (New Uri("https://localhost:53161/NorthwindCustomers.svc/"))  
            Me.CustomersBindingSource.DataSource = proxy.Customers  
        End Sub  
    
    private void Form1_Load(object sender, EventArgs e)  
    {  
    NorthwindEntities proxy = new NorthwindEntities(new Uri("https://localhost:53161/NorthwindCustomers.svc/"));  
    this.CustomersBindingSource.DataSource = proxy.Customers;  
    }  
    
  6. In Projektmappen-Explorer öffnen Sie das Kontextmenü für die NorthwindCustomers.svc-Datei und wählen In Browser anzeigen. Das XML-Schema für den Dienst wird im Internet Explorer angezeigt.

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

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

  9. Klicken Sie auf der Menüleiste auf Debuggen, Debuggen starten, um die Anwendung zu starten. 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. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für den Knoten Form1.vb oder Form1.cs und wählen Sie dann Öffnen.

  2. Fügen Sie dem Formular ein TextBox- und ein Button-Steuerelement aus dem Werkzeugkasten hinzu.

  3. Öffnen Sie das Kontextmenü für das Button-Steuerelement, und wählen Sie Code anzeigen, und fügen Sie dann den folgenden Code im Button1_Click-Ereignishandler hinzu:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click  
            Dim proxy As New 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  
    
        End Sub  
    
    private void Button1_Click(object sender, EventArgs e)  
    {  
    ServiceReference1.northwindModel.northwindEntities proxy = new northwindEntities(new Uri("https://localhost:53161/NorthwindCustomers.svc"));  
    string city = TextBox1.Text;  
    
    if (!string.IsNullOrEmpty(city)) {  
    this.CustomersBindingSource.DataSource = from c in proxy.Customers where c.City == city;  
    }  
    
    }  
    
  4. Ersetzen Sie im vorherigen Code den Text https://localhost:53161/NorthwindCustomers.svc durch die URL aus dem Form1_Load-Ereignishandler.

  5. Klicken Sie auf der Menüleiste auf Debuggen, Debuggen starten, um die Anwendung zu starten.

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

Siehe auch

How to: Add, Update, or Remove a WCF Data Service Reference