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:
Die Beispieldatenbank Northwind.
Befindet sich diese Datenbank nicht auf Ihrem Entwicklungscomputer, können Sie diese aus dem Microsoft Download Center herunterladen. Anweisungen dazu finden Sie unter Herunterladen von Beispieldatenbanken.
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 Anpassen der Entwicklungseinstellungen in Visual Studio.
So erstellen Sie das Webprojekt
Wählen Sie in der Menüleiste Datei, Neu, Projekt aus.
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.
Geben Sie "NorthwindWeb" im Textfeld Name ein, und wählen Sie dann die Schaltfläche OK.
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
Wählen Sie in der Menüleiste Projekt, Neues Element hinzufügen aus.
Wählen Sie im Dialogfeld Neues Element hinzufügen den Knoten Daten und anschließend das Element ADO.NET Entity Data Model aus.
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.
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.
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 How to: Create Connections to SQL Server Databases.
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.
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).
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
Wählen Sie in der Menüleiste Projekt, Neues Element hinzufügen aus.
Wählen Sie im Dialogfeld Neues Element hinzufügen den Knoten Web und anschließend das Element WCF Data Service 5.6.
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.
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>
Ersetzen Sie die Kommentare im InitializeService-Ereignishandler durch folgenden Code:
config.SetEntitySetAccessRule("*", EntitySetRights.All)
config.SetEntitySetAccessRule("*", EntitySetRights.All);
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.
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 Problembehandlung bei Dienstverweisen.
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
Wählen Sie auf der Menüleiste "Datei", Hinzufügen, Neues Projekt.
Erweitern Sie im Dialogfeld Neues Projekt den Knoten Visual Basic oder Visual C#, wählen Sie den Knoten Windows und dann Windows Forms-Anwendung.
Geben Sie im Textfeld Name den Eintrag NorthwindClient ein, und wählen Sie dann die Schaltfläche OK.
Wählen Sie im Projektmappen-Explorer den NorthwindClient-Projektknoten.
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
Wählen Sie in der Menüleiste Projekt, Dienstverweis hinzufügen aus.
Wählen Sie im Dialogfeld Dienstverweis hinzufügen die Schaltfläche Ermitteln.
Die URL für den NorthwindCustomers-Dienst wird im Feld Adresse angezeigt.
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
Wählen Sie auf der Menüleiste Ansicht, Weitere Fenster, Datenquellen aus.
Wählen Sie im Fenster Datenquellen die Schaltfläche Neue Datenquelle hinzufügen.
Wählen Sie auf der Seite Datenquellentyp auswählen unter Assistent zum Konfigurieren von Datenquellen den Typ Objekt und dann die Schaltfläche Weiter.
Erweitern Sie auf der Seite Datenobjekte auswählen den Knoten NorthwindClient, und erweitern Sie dann den Knoten NorthwindClient.ServiceReference1.
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
Im Fenster Datenquellen öffnen Sie das Kontextmenü für den Knoten Customers und wählen Kopieren.
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.
Wählen Sie das CustomersDataGridView-Steuerelement aus, und legen Sie dann im Fenster Eigenschaften die Eigenschaft Andocken auf Füllbereich fest.
Ö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;
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; }
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.
Kopieren Sie die URL aus der Adressleiste von Internet Explorer.
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.
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
Öffnen Sie im Projektmappen-Explorer das Kontextmenü für den Knoten Form1.vb oder Form1.cs und wählen Sie dann Öffnen.
Fügen Sie dem Formular ein TextBox- und ein Button-Steuerelement aus dem Werkzeugkasten hinzu.
Ö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; } }
Ersetzen Sie im vorherigen Code den Text https://localhost:53161/NorthwindCustomers.svc durch die URL aus dem Form1_Load-Ereignishandler.
Klicken Sie auf der Menüleiste auf Debuggen, Debuggen starten, um die Anwendung zu starten.
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
Aufgaben
Gewusst wie: Hinzufügen, Aktualisieren oder Entfernen eines WCF-Datendienstverweises