Udostępnij za pośrednictwem


Tworzenie aplikacji klienckiej OData 4 (C#)

Autor: Mike Wasson

W poprzednim samouczku utworzono podstawową usługę OData, która obsługuje operacje CRUD. Teraz utwórzmy klienta dla usługi.

Uruchom nowe wystąpienie programu Visual Studio i utwórz nowy projekt aplikacji konsolowej. W oknie dialogowym Nowy projekt wybierz pozycję Zainstalowane>szablony>Visual C#>Windows Desktop, a następnie wybierz szablon Aplikacja konsolowa . Nadaj projektowi nazwę "ProductsApp".

Zrzut ekranu przedstawiający okno dialogowe nowego projektu z wyróżnionym ścieżką za pomocą opcji menu w celu utworzenia nowego projektu aplikacji konsolowej.

Uwaga

Możesz również dodać aplikację konsolową do tego samego rozwiązania programu Visual Studio, które zawiera usługę OData.

Instalowanie generatora kodu klienta OData

W menu Narzędzia wybierz pozycję Rozszerzenia i Aktualizacje. Wybierz pozycjęGaleria programu Visual Studioonline>. W polu wyszukiwania wyszukaj ciąg "Generator kodu klienta OData". Kliknij pozycję Pobierz , aby zainstalować plik VSIX. Może zostać wyświetlony monit o ponowne uruchomienie programu Visual Studio.

Zrzut ekranu przedstawiający okno dialogowe rozszerzeń i aktualizacji z menu pobierania i instalowania generatora kodu klienta V S I X dla danych O.

Uruchamianie usługi OData lokalnie

Uruchom projekt ProductService z poziomu programu Visual Studio. Domyślnie program Visual Studio uruchamia przeglądarkę do katalogu głównego aplikacji. Zanotuj identyfikator URI; Będzie to potrzebne w następnym kroku. Pozostaw uruchomioną aplikację.

Zrzut ekranu przedstawiający lokalny host przeglądarki internetowej przedstawiający kod projektu Usługi produktu uruchomionego w programie Visual Studio.

Uwaga

Jeśli oba projekty są umieszczane w tym samym rozwiązaniu, pamiętaj o uruchomieniu projektu ProductService bez debugowania. W następnym kroku należy zachować działanie usługi podczas modyfikowania projektu aplikacji konsolowej.

Generowanie serwera proxy usługi

Serwer proxy usługi jest klasą platformy .NET, która definiuje metody uzyskiwania dostępu do usługi OData. Serwer proxy tłumaczy wywołania metody na żądania HTTP. Klasę serwera proxy utworzysz, uruchamiając szablon T4.

Kliknij prawym przyciskiem myszy projekt. Wybierz pozycję Dodaj>nowy element.

Zrzut ekranu przedstawiający okno dialogowe Eksploratora rozwiązań z wyświetloną ścieżką pliku do dodawania nowego elementu do projektu przez wyróżnienie opcji w kolorze żółtym.

W oknie dialogowym Dodawanie nowego elementu wybierz pozycję Visual C# Items CodeOData Client (Klient ODatakodu> elementów >języka Visual C#). Nadaj szablonowi nazwę "ProductClient.tt". Kliknij przycisk Dodaj i kliknij ostrzeżenie o zabezpieczeniach.

Zrzut ekranu przedstawiający okno ustawień aplikacji produktu dla nowych elementów z szablonem produktu Klienta danych O i okrążenie pola nazwy poniżej w celu dodania nowej nazwy.

W tym momencie zostanie wyświetlony błąd, który można zignorować. Program Visual Studio automatycznie uruchamia szablon, ale szablon wymaga najpierw pewnych ustawień konfiguracji.

Zrzut ekranu przedstawiający okno komunikatu o błędzie z jedną kartą błędu i jedną kartą ostrzeżenia wraz ze szczegółowym komunikatem o błędzie.

Otwórz plik ProductClient.odata.config. W elemecie Parameter wklej identyfikator URI z projektu ProductService (poprzedni krok). Na przykład:

<Parameter Name="MetadataDocumentUri" Value="http://localhost:61635/" />

Zrzut ekranu przedstawiający plik konfiguracji kropki danych klienta produktu przedstawiający przykład języka U R I po wklejeniu w elemecie parametru.

Uruchom ponownie szablon. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy plik ProductClient.tt i wybierz polecenie Uruchom narzędzie niestandardowe.

Szablon tworzy plik kodu o nazwie ProductClient.cs, który definiuje serwer proxy. Podczas opracowywania aplikacji, jeśli zmienisz punkt końcowy OData, uruchom szablon ponownie, aby zaktualizować serwer proxy.

Zrzut ekranu przedstawiający menu okna Eksploratora rozwiązań z wyróżnionym utworzonym plikiem dot c s klienta produktu, który definiuje serwer proxy.

Wywoływanie usługi OData za pomocą serwera proxy usługi

Otwórz plik Program.cs i zastąp kod boilerplate następującym kodem.

using System;

namespace ProductsApp
{
    class Program
    {
        // Get an entire entity set.
        static void ListAllProducts(Default.Container container)
        {
            foreach (var p in container.Products)
            {
                Console.WriteLine("{0} {1} {2}", p.Name, p.Price, p.Category);
            }
        }

        static void AddProduct(Default.Container container, ProductService.Models.Product product)
        {
            container.AddToProducts(product);
            var serviceResponse = container.SaveChanges();
            foreach (var operationResponse in serviceResponse)
            {
                Console.WriteLine("Response: {0}", operationResponse.StatusCode);
            }
        }

        static void Main(string[] args)
        {
            // TODO: Replace with your local URI.
            string serviceUri = "http://localhost:port/";
            var container = new Default.Container(new Uri(serviceUri));

            var product = new ProductService.Models.Product()
            {
                Name = "Yo-yo",
                Category = "Toys",
                Price = 4.95M
            };

            AddProduct(container, product);
            ListAllProducts(container);
        }
    }
}

Zastąp wartość identyfikatora serviceUri identyfikatorem URI usługi z wcześniejszej wersji.

// TODO: Replace with your local URI.
string serviceUri = "http://localhost:port/";

Po uruchomieniu aplikacji powinny zostać wyświetlone następujące dane wyjściowe:

Response: 201
Yo-yo 4.95 Toys