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:
Przykładowa bazy danych Northwind.
Jeśli nie masz tej bazy danych na komputerze dewelopera, możesz pobrać go z Microsoft Download Center.Instrukcje znajdują się w temacie Downloading Sample Databases.
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
W pasku menu wybierz Plik, Nowy, Projekt.
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.
W polu tekstowym Nazwa wpisz NorthwindWeb, a następnie kliknij przycisk OK.
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
Na pasku menu kliknij Projekt, Dodaj nowy element.
W oknie dialogowym Dodaj nowy element wybierz węzeł Dane, a następnie wybierz element Model bazy danych z encjami ADO.NET.
W polu tekstowym Nazwa wpisz NorthwindModel, a następnie kliknij przycisk Dodaj.
Zostanie wyświetlony Kreator modelu Entity Data Model.
W Kreatorze modelu Entity Data Model wybierz element Generuj z bazy danych, a następnie kliknij przycisk Dalej.
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.
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.
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 +.
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
Na pasku menu kliknij Projekt, Dodaj nowy element.
W oknie dialogowym Dodaj nowy element wybierz węzeł Sieć Web, a następnie wybierz element Usługa danych programu WCF 5.6.
W polu tekstowym Nazwa wpisz NorthwindCustomers, a następnie kliknij przycisk Dodaj.
Plik NorthwindCustomers.svc pojawi się w Edytorze kodu.
W Edytorze kodu odszukaj pierwszy komentarz TODO: i zastąp jego kod poniższym kodem:
Inherits DataService(Of northwindEntities)
public class NorthwindCustomers : DataService<northwindEntities>
W programie InitializeService zastąp komentarze następującym kodem:
config.SetEntitySetAccessRule("*", EntitySetRights.All)
config.SetEntitySetAccessRule("*", EntitySetRights.All);
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.
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.
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ą
Na pasku menu wybierz kolejno opcje Plik > Dodaj > Nowy projekt.
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.
W polu tekstowym Nazwa wpisz NorthwindClient, a następnie kliknij przycisk OK.
W Eksploratorze rozwiązania wybierz węzeł projektu NorthwindClient.
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
Na pasku menu wybierz polecenie projektu, Dodaj odwołanie do usługi.
W oknie dialogowym Dodaj odwołanie do usługi kliknij przycisk Wykryj.
W polu Adres pojawi się adres URL usługi NorthwindCustomers.
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ą
Na pasku menu wybierz kolejno opcje Widok, Inne okna, Źródła danych.
W oknie Źródła danych kliknij przycisk Dodaj nowe źródło danych.
W Kreatorze konfiguracji źródła danych na stronie Wybierz typ źródła danych zaznacz opcję Obiekt, a następnie kliknij przycisk Dalej.
Na stronie Wybierz obiekty danych rozwiń węzeł NorthwindClient, a następnie rozwiń węzeł NorthwindKliencka.ServiceReference1.
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
W oknie Źródła danych otwórz menu skrótów węzła Klienci i wybierz polecenie Kopiuj.
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.
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;
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; }
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.
Skopiuj adres URL z paska adresu przeglądarki Internet Explorer.
W kodzie dodanym w kroku 4 zaznacz fragment https://localhost:53161/NorthwindCustomers.svc/ i zastąp go świeżo skopiowanym adresem URL.
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
W Eksploratorze rozwiązania otwórz menu skrótów węzła Form1.vb lub Form1.cs i wybierz polecenie Otwórz.
Z Przybornika dodaj do formularza formanty TextBox i Button.
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; } }
W poprzednim kodzie zastąp fragment https://localhost:53161/NorthwindCustomers.svc adresem URL pochodzącym z programu obsługi zdarzeń Form1_Load.
Na pasku menu wybierz kolejno opcje Debuguj > Rozpocznij debugowanie, co spowoduje uruchomienie aplikacji.
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