Wskazówki: tworzenie i uzyskiwanie dostępu do usługi danych WCF w programie Visual Studio

Ten instruktaż pokazuje, jak utworzyć prostą usługę Usługa danych programu WCF hostowaną w aplikacji internetowej opartej na środowisku ASP.NET, a następnie uzyskiwać do niej dostęp z aplikacji wykorzystującej interfejs Windows Forms.

W instruktażu wykonasz następujące czynności:

  • Utworzenie aplikacji internetowej do hostowania usługi Usługa danych programu WCF.

  • Utworzenie modelu Entity Data Model reprezentującego tabelę Klienci w bazie danych Northwind.

  • Utworzenie usługi Usługa danych programu WCF.

  • Utworzenie aplikacji klienckiej i dodanie odwołania do usługi Usługa danych programu WCF.

  • Utworzenie powiązania danych z usługą i wygenerowanie interfejsu użytkownika.

  • Opcjonalnie dodanie funkcji filtrowania do aplikacji.

Wymagania wstępne

Następujące składniki są wymagane do przeprowadzenia tego instruktażu:

Tworzenie usługi

W celu utworzenia usługi Usługa danych programu WCF należy dodać projekt internetowy, utworzyć model Entity Data Model, a następnie utworzyć usługę na bazie modelu.

W pierwszym kroku dodasz projekt internetowy, który będzie hostował usługę.

[!UWAGA]

Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Aby utworzyć projekt internetowy

  1. W pasku menu wybierz Plik, Nowy, Projekt.

  2. W nowy projekt okna dialogowego rozwiń Visual Basic lub Visual C# i Web węzły, a następnie wybierz aplikacji sieci Web ASP.NET szablonu.

  3. W polu tekstowym Nazwa wpisz NorthwindWeb, a następnie kliknij przycisk OK.

  4. W nowy projekt ASP.NET dialogowym wybierz szablon wybierz pusty, a następnie wybierz OK przycisku.

W tym kroku utworzysz model Entity Data Model reprezentujący tabelę Klienci w bazie danych Northwind.

Aby utworzyć model Entity Data Model

  1. Na pasku menu kliknij Projekt, Dodaj nowy element.

  2. W oknie dialogowym Dodaj nowy element wybierz węzeł Dane, a następnie wybierz element Model bazy danych z encjami ADO.NET.

  3. W polu tekstowym Nazwa wpisz NorthwindModel, a następnie kliknij przycisk Dodaj.

    Zostanie wyświetlony Kreator modelu Entity Data Model.

  4. W Kreatorze modelu Entity Data Model wybierz element Generuj z bazy danych, a następnie kliknij przycisk Dalej.

  5. Na stronie Wybierz połączenie danych wykonaj jedną z następujących czynności:

    • Jeśli połączenie danych z przykładową bazą danych Northwind jest dostępne na liście rozwijanej, wybierz je.

      —lub—

    • Kliknij przycisk Nowe połączenie, aby skonfigurować nowe połączenie danych.Aby uzyskać więcej informacji, zobacz How to: Create Connections to SQL Server Databases.

  6. Jeśli baza danych wymaga hasła, zaznacz opcję Tak, dołącz dane poufne do parametrów połączenia i kliknij przycisk Dalej.

    [!UWAGA]

    Jeśli pojawi się okno dialogowe, kliknij przycisk Tak, aby zapisać plik do projektu.

  7. Na wybierz wersję wybierz Entity Framework 5.0 przycisk opcji, a następnie wybierz dalej przycisku.

    [!UWAGA]

    Aby można było używać najnowszej wersji programu Entity Framework 6 z usług WCF, należy zainstalować pakiet WCF danych usług Entity Framework dostawcy NuGet.Zobacz przy użyciu danych WCF usług 5.6.0 narzędzia Entity Framework 6 +.

  8. Na wybierz obiekty bazy danych użytkownika strony, a następnie rozwiń tabel węzła, wybierz opcję klienci pole wyboru, a następnie wybierz Zakończ przycisku.

    Zostanie wyświetlony diagram modelu jednostek, a do projektu zostanie dodany plik NorthwindModel.edmx.

W tym kroku utworzysz i przetestujesz usługę danych.

Aby utworzyć usługę danych

  1. Na pasku menu kliknij Projekt, Dodaj nowy element.

  2. W oknie dialogowym Dodaj nowy element wybierz węzeł Sieć Web, a następnie wybierz element Usługa danych programu WCF 5.6.

  3. W polu tekstowym Nazwa wpisz NorthwindCustomers, a następnie kliknij przycisk Dodaj.

    Plik NorthwindCustomers.svc pojawi się w Edytorze kodu.

  4. W Edytorze kodu odszukaj pierwszy komentarz TODO: i zastąp jego kod poniższym kodem:

    Inherits DataService(Of northwindEntities)
    
    public class NorthwindCustomers : DataService<northwindEntities>
    
  5. W programie InitializeService zastąp komentarze następującym kodem:

    config.SetEntitySetAccessRule("*", EntitySetRights.All)
    
    config.SetEntitySetAccessRule("*", EntitySetRights.All);
    
  6. Na pasku menu wybierz kolejno opcje Debuguj > Rozpocznij bez debugowania, co spowoduje uruchomienie usługi.Zostanie otwarte okno przeglądarki i pojawi się w nim schemat XML usługi.

  7. Na pasku adresu na końcu adresu URL pliku NorthwindCustomers.svc dopisz Klienci, a następnie naciśnij klawisz ENTER.

    Zostanie wyświetlona reprezentacja XML danych znajdujących się w tabeli Klienci.

    [!UWAGA]

    Czasami przeglądarka Internet Explorer błędnie interpretuje dane jako źródło danych RSS.Należy się upewnić, że opcja wyświetlania źródeł danych RSS jest wyłączona.Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z odwołaniami usługi.

  8. Zamknij okno przeglądarki.

W następnych krokach utworzysz aplikację kliencką opartą na interfejsie Windows Forms, która będzie korzystała z usługi.

Tworzenie aplikacji klienckiej

W celu utworzenia aplikacji klienckiej dodasz drugi projekt, dodasz odwołanie z projektu do usługi, skonfigurujesz źródło danych oraz utworzysz interfejs użytkownika, w którym będą wyświetlane dane z usługi.

W pierwszym kroku dodasz projekt Windows Forms do rozwiązania oraz nadasz mu status projektu startowego.

Aby utworzyć aplikację kliencką

  1. Na pasku menu wybierz kolejno opcje Plik > Dodaj > Nowy projekt.

  2. W oknie dialogowym Nowy projekt rozwiń węzeł Visual Basic lub Visual C#, wybierz węzeł Okna, a następnie kliknij pozycję Aplikacja formularzy systemu Windows.

  3. W polu tekstowym Nazwa wpisz NorthwindClient, a następnie kliknij przycisk OK.

  4. W Eksploratorze rozwiązania wybierz węzeł projektu NorthwindClient.

  5. Na pasku menu wybierz polecenie projektu, ustawiony jako projekt startowy.

W tym kroku w projekcie internetowym dodasz odwołanie do usługi Usługa danych programu WCF.

Aby dodać odwołanie do usługi

  1. Na pasku menu wybierz polecenie projektu, Dodaj odwołanie do usługi.

  2. W oknie dialogowym Dodaj odwołanie do usługi kliknij przycisk Wykryj.

    W polu Adres pojawi się adres URL usługi NorthwindCustomers.

  3. Kliknij przycisk OK. Odwołanie do usługi zostanie dodane.

W tym kroku skonfigurujesz źródło danych w celu utworzenia powiązania danych z usługą.

Aby utworzyć powiązanie danych z usługą

  1. Na pasku menu wybierz kolejno opcje Widok, Inne okna, Źródła danych.

  2. W oknie Źródła danych kliknij przycisk Dodaj nowe źródło danych.

  3. W Kreatorze konfiguracji źródła danych na stronie Wybierz typ źródła danych zaznacz opcję Obiekt, a następnie kliknij przycisk Dalej.

  4. Na stronie Wybierz obiekty danych rozwiń węzeł NorthwindClient, a następnie rozwiń węzeł NorthwindKliencka.ServiceReference1.

  5. Zaznacz pole wyboru Klient i kliknij przycisk Zakończ.

W tym kroku utworzysz interfejs użytkownika, w którym będą wyświetlane dane z usługi.

Aby utworzyć interfejs użytkownika

  1. W oknie Źródła danych otwórz menu skrótów węzła Klienci i wybierz polecenie Kopiuj.

  2. W projektancie formularzy Form1.vb lub Form1.cs otwórz menu skrótów i wybierz polecenie Wklej.

    Do formularza zostanie dodany formant DataGridView oraz składniki BindingSource i BindingNavigator.

  3. Otwórz menu skrótów i wybierz polecenie Pokaż kod, co spowoduje otwarcie Edytora kodu. U góry pliku dodaj następującą instrukcję Imports lub Using:

    Imports NorthwindClient.ServiceReference1
    
    using NorthwindClient.ServiceReference1;
    
  4. Dodaj następujący kod do programu obsługi zdarzeń Form1_Load:

    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;
    }
    
  5. W Eksploratorze rozwiązania otwórz menu skrótów pliku NorthwindCustomers.svc i wybierz polecenie Pokaż w przeglądarce.Zostanie otwarte okno przeglądarki Internet Explorer i pojawi się w nim schemat XML usługi.

  6. Skopiuj adres URL z paska adresu przeglądarki Internet Explorer.

  7. W kodzie dodanym w kroku 4 zaznacz fragment https://localhost:53161/NorthwindCustomers.svc/ i zastąp go świeżo skopiowanym adresem URL.

  8. Na pasku menu wybierz kolejno opcje Debuguj > Rozpocznij debugowanie, co spowoduje uruchomienie aplikacji.Zostaną wyświetlone informacje o kliencie.

Masz teraz działającą aplikację, która wyświetla listę klientów z usługi NorthwindCustomers.Aby za pośrednictwem usługi udostępnić dodatkowe dane, możesz zmodyfikować model Entity Data Model i dodać do niego więcej tabel z bazy danych Northwind.

W następnym opcjonalnym kroku dowiesz się, jak filtrować dane zwracane przez usługę.

Dodawanie funkcji filtrowania

W tym kroku dostosujesz aplikację w taki sposób, aby filtrowała dane według miejscowości zamieszkania klienta.

Aby dodać filtrowanie według miejscowości

  1. W Eksploratorze rozwiązania otwórz menu skrótów węzła Form1.vb lub Form1.cs i wybierz polecenie Otwórz.

  2. Z Przybornika dodaj do formularza formanty TextBox i Button.

  3. Otwórz menu skrótów formantu Button, wybierz polecenie Pokaż kod i w programie obsługi zdarzeń Button1_Click dodaj następujący kod:

    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. W poprzednim kodzie zastąp fragment https://localhost:53161/NorthwindCustomers.svc adresem URL pochodzącym z programu obsługi zdarzeń Form1_Load.

  5. Na pasku menu wybierz kolejno opcje Debuguj > Rozpocznij debugowanie, co spowoduje uruchomienie aplikacji.

  6. W polu tekstowym wpisz Londyn, a następnie kliknij przycisk.Zostaną wyświetleni tylko klienci z Londynu.

Zobacz też

Zadania

Porady: dodawanie, aktualizowanie lub usuwanie odwołań usługi danych WCF