OData v4 İstemci Uygulaması Oluşturma (C#)

tarafından Mike Wasson

Önceki öğreticide CRUD işlemlerini destekleyen temel bir OData hizmeti oluşturdunuz. Şimdi hizmet için bir istemci oluşturalım.

Visual Studio'nun yeni bir örneğini başlatın ve yeni bir konsol uygulaması projesi oluşturun. Yeni Proje iletişim kutusunda Yüklü>Şablonlar>Visual C#>Windows Masaüstü'nü ve ardından Konsol Uygulaması şablonunu seçin. Projeyi "ProductsApp" olarak adlandırın.

Yeni bir konsol uygulaması projesi oluşturmak için menü seçeneklerindeki yolu vurgulayan yeni proje iletişim kutusunun ekran görüntüsü.

Uyarı

Konsol uygulamasını, OData hizmetini içeren aynı Visual Studio çözümüne de ekleyebilirsiniz.

OData İstemci Kod Oluşturucu'nu yükleme

Araçlar menüsünde Uzantılar ve Güncelleştirmeler'i seçin. Çevrimiçi>Visual Studio Galerisi'ne tıklayın. Arama kutusunda "OData İstemci Kodu Oluşturucu" araması yapın. VSIX'i yüklemek için İndir'e tıklayın. Visual Studio'yu yeniden başlatmanız istenebilir.

V S I X istemci kodu oluşturucunun OData için indirme ve yükleme menüsünü gösteren uzantılar ve güncelleştirmeler iletişim kutusunun ekran görüntüsü.

OData Hizmetini Yerel Olarak Çalıştırma

Visual Studio'dan ProductService projesini çalıştırın. Varsayılan olarak, Visual Studio uygulama köküne bir tarayıcı başlatır. URI'yi not edin; sonraki adımda buna ihtiyacınız olacaktır. Uygulamayı çalışır durumda bırakın.

Visual Studio'da çalışan Ürün Hizmeti projesinin kodunu gösteren web tarayıcısının yerel ana bilgisayarının ekran görüntüsü.

Uyarı

Her iki projeyi de aynı çözüme koyarsanız, hata ayıklamadan ProductService projesini çalıştırdığınızdan emin olun. Sonraki adımda, konsol uygulaması projesini değiştirirken hizmeti çalışır durumda tutmanız gerekir.

Hizmet Ara Sunucusunu Oluşturma

Hizmet ara sunucusu, OData hizmetine erişme yöntemlerini tanımlayan bir .NET sınıfıdır. Proxy, yöntem çağrılarını HTTP isteklerine çevirir. Bir T4 şablonu çalıştırarak proxy sınıfını oluşturacaksınız.

Projeye sağ tıklayın. Ekle>Yeni Öğe seçin.

Seçenekler sarı renkle vurgulanarak projeye yeni öğe eklemeye yönelik dosya yolunu gösteren çözüm gezgini iletişim kutusunun ekran görüntüsü.

Yeni Öğe Ekle iletişim kutusunda Visual C# Öğe>Kodu>OData İstemcisi'ni seçin. Şablonu "ProductClient.tt" olarak adlandırın. Ekle'ye tıklayın ve güvenlik uyarısına tıklayın.

O Data istemcisi ürün şablonunu gösteren ve yeni ad eklemek için aşağıdaki ad alanını daire içine alan yeni öğeler ürün uygulaması ayarları penceresinin ekran görüntüsü.

Bu noktada, görmezden gelebileceğiniz bir hata mesajı alırsınız. Visual Studio şablonu otomatik olarak çalıştırır, ancak önce bazı yapılandırma ayarları gerekir.

Bir hata sekmesi ve bir uyarı sekmesinin yanı sıra hatanın ayrıntılı iletisini gösteren hata iletisi penceresinin ekran görüntüsü.

dosyasını ProductClient.odata.configaçın. öğesinde Parameter , ProductService projesinden (önceki adım) URI'yi yapıştırın. Örneğin:

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

Parametre öğesine yapıştırıldıktan sonra U R I örneğini gösteren ürün istemcisi O Data nokta yapılandırma dosyasının ekran görüntüsü.

Şablonu yeniden çalıştırın. Çözüm Gezgini'nde ProductClient.tt dosyasına sağ tıklayın ve Özel Aracı Çalıştır'ı seçin.

Şablon, ara sunucuyu tanımlayan ProductClient.cs adlı bir kod dosyası oluşturur. Uygulamanızı geliştirirken OData uç noktasını değiştirirseniz, proxy'yi güncelleştirmek için şablonu yeniden çalıştırın.

Oluşturulan ve ara sunucuyu tanımlayan ürün istemcisi dot c s dosyasını vurgulayan çözüm gezgini pencere menüsünün ekran görüntüsü.

OData Hizmetini Çağırmak için Hizmet Ara Sunucusunu Kullanma

Program.cs dosyasını açın ve şablon kodunu aşağıdaki kodla değiştirin.

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);
        }
    }
}

serviceUri değerini önceki hizmet URI'siyle değiştirin.

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

Uygulamayı çalıştırdığınızda aşağıdaki çıkışları vermelidir:

Response: 201
Yo-yo 4.95 Toys