Bagikan melalui


Membuat Aplikasi Klien OData v4 (C#)

oleh Mike Wasson

Dalam tutorial sebelumnya, Anda membuat layanan OData dasar yang mendukung operasi CRUD. Sekarang mari kita buat klien untuk layanan.

Mulai instans baru Visual Studio dan buat proyek aplikasi konsol baru. Dalam dialog Proyek Baru, pilih Templat Terinstal>>Visual C#>Windows Desktop, dan pilih templat Aplikasi Konsol. Beri nama proyek "ProductsApp".

Cuplikan layar kotak dialog proyek baru, menyoroti jalur melalui opsi menu, untuk membuat proyek aplikasi konsol baru.

Catatan

Anda juga dapat menambahkan aplikasi konsol ke solusi Visual Studio yang sama yang berisi layanan OData.

Menginstal Generator Kode Klien OData

Dari menu Alat, pilih Ekstensi dan Updates. PilihGaleri Visual StudioOnline>. Di kotak pencarian, cari "OData Client Code Generator". Klik Unduh untuk menginstal VSIX. Anda mungkin diminta untuk memulai ulang Visual Studio.

Cuplikan layar kotak dialog ekstensi dan pembaruan, memperlihatkan menu untuk mengunduh dan menginstal generator kode klien V S I X untuk O Data.

Jalankan Layanan OData Secara Lokal

Jalankan proyek ProductService dari Visual Studio. Secara default, Visual Studio meluncurkan browser ke akar aplikasi. Perhatikan URI; Anda akan membutuhkannya di langkah berikutnya. Biarkan aplikasi berjalan.

Cuplikan layar host lokal browser web, memperlihatkan kode proyek Product Service yang berjalan di visual studio.

Catatan

Jika Anda menempatkan kedua proyek dalam solusi yang sama, pastikan untuk menjalankan proyek ProductService tanpa penelusuran kesalahan. Pada langkah berikutnya, Anda harus menjaga layanan tetap berjalan saat Memodifikasi proyek aplikasi konsol.

Membuat Proksi Layanan

Proksi layanan adalah kelas .NET yang menentukan metode untuk mengakses layanan OData. Proksi menerjemahkan panggilan metode ke dalam permintaan HTTP. Anda akan membuat kelas proksi dengan menjalankan templat T4.

Klik kanan proyek. Pilih Tambahkan>Item Baru.

Cuplikan layar kotak dialog penjelajah solusi, memperlihatkan jalur file untuk menambahkan item baru ke proyek, dengan menyoroti opsi dengan warna kuning.

Dalam dialog Tambahkan Item Baru , pilih Visual C# Items>Code>OData Client. Beri nama templat "ProductClient.tt". Klik Tambahkan dan klik peringatan keamanan.

Cuplikan layar jendela pengaturan aplikasi produk item baru, memperlihatkan templat produk klien O Data, dan melingkari bidang nama di bawah ini untuk menambahkan nama baru.

Pada titik ini, Anda akan mendapatkan kesalahan, yang dapat Anda abaikan. Visual Studio secara otomatis menjalankan templat, tetapi templat memerlukan beberapa pengaturan konfigurasi terlebih dahulu.

Cuplikan layar jendela pesan kesalahan, memperlihatkan satu tab kesalahan dan satu tab peringatan, bersama dengan pesan mendetail tentang kesalahan tersebut.

Buka file ProductClient.odata.config. Parameter Dalam elemen , tempelkan URI dari proyek ProductService (langkah sebelumnya). Contohnya:

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

Cuplikan layar file konfigurasi titik O Data klien produk, memperlihatkan contoh U R I setelah ditempelkan dalam elemen parameter.

Jalankan templat lagi. Di Penjelajah Solusi, klik kanan file ProductClient.tt dan pilih Jalankan Alat Kustom.

Templat membuat file kode bernama ProductClient.cs yang menentukan proksi. Saat Anda mengembangkan aplikasi, jika Anda mengubah titik akhir OData, jalankan templat lagi untuk memperbarui proksi.

Cuplikan layar menu jendela penjelajah solusi, menyoroti file dot c s klien produk yang dibuat, yang menentukan proksi.

Menggunakan Proksi Layanan untuk Memanggil Layanan OData

Buka file Program.cs dan ganti kode boilerplate dengan yang berikut ini.

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

Ganti nilai serviceUri dengan URI layanan dari sebelumnya.

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

Saat Anda menjalankan aplikasi, aplikasi harus menghasilkan yang berikut:

Response: 201
Yo-yo 4.95 Toys