Apa itu layanan WCF RIA?

102

Saya benci situs MSDN untuk layanan WCF RIA. Ia tidak mengatakan apa itu, ia hanya mengatakan apa yang dilakukannya. Ia mengatakan apa yang dapat dicapai tetapi tidak mengatakan mengapa saya membutuhkannya.

Sebagai contoh:

"Masalah umum saat mengembangkan solusi RIA n-tier adalah mengoordinasikan logika aplikasi antara tingkat menengah dan tingkat presentasi".

Yah, itu tidak berarti banyak bagiku.

"Layanan RIA memecahkan masalah ini dengan menyediakan komponen kerangka kerja, alat, dan layanan yang membuat logika aplikasi di server tersedia untuk klien RIA tanpa mengharuskan Anda untuk menduplikasi logika pemrograman tersebut secara manual. Anda dapat membuat klien RIA yang mengetahui aturan bisnis dan ketahuilah bahwa klien secara otomatis diperbarui dengan logika tingkat menengah terbaru setiap kali solusi tersebut dikompilasi ulang. "

Jadi apakah itu mengunduh DLL dari server? Apakah itu metadata yang menjelaskan aturan untuk data?

Jadi apa itu? Apakah ini hanya add-on VS 2010 untuk RAD? Atau apakah itu teknologi di atas WCF atau di bawahnya atau apa? Di mana tempat tinggalnya? Dengan data, dengan server, apa?

Saya menghargai jika Anda dapat meringkas ini untuk saya.

Aliostad
sumber
3
Ini adalah teknologi di atas WCF, yang menggunakan Pembuatan Kode dan kode sisi Server dan sisi Klien. Ini berfokus terutama pada pengocokan data dari server ke klien dan kembali lagi, dengan validasi dan hal-hal lain.
Rangoric
1
@Rangoric: Anda dapat memposting itu sebagai Jawaban. Jawaban singkat juga bisa menjadi jawaban yang bagus.
Henk Holterman
7
Ah, lol, saya salah membacanya sebagai RIAA , dan menjadi gila.
Mateen Ulhaq
Sebaiknya Anda tahu: RIA = Rich Internet Applications (thin client di antaranya Silverlight), dijelaskan dengan baik di sini . Layanan WCF RIA adalah layanan RIA melalui WCF, yang menghubungkan thin client ke server. " Layanan WCF RIA mengambil data dari database Microsoft Structured Query Language (SQL) Server dan membuat data ini tersedia untuk klien Silverlight yang disajikan untuk diedit dan dilihat "
menit

Jawaban:

109

Layanan RIA adalah teknologi sisi server yang secara otomatis menghasilkan objek sisi klien (Silverlight) yang menangani komunikasi dengan server untuk Anda dan memberikan validasi sisi klien.

Objek utama di dalam layanan RIA adalah DomainService, biasanya LinqToEntitiesDomainServiceyang terhubung ke model LinqToEntities.

Hal utama yang perlu diingat dalam layanan RIA adalah bahwa ini terutama merupakan trik build yang canggih. Saat Anda membuat layanan domain dan mengompilasi solusi Anda, representasi sisi klien dari layanan domain Anda dibuat. Representasi sisi klien ini memiliki antarmuka yang sama. Misalkan Anda membuat layanan domain sisi server CustomerServicedengan metode IQueryable<Customer> GetCustomersByCountry. Ketika Anda membangun solusi Anda, sebuah kelas dibuat di dalam proyek Silverlight Anda yang disebut CustomerContextyang memiliki metode GetCustomersByCountryQuery. Sekarang Anda dapat menggunakan metode ini pada klien seolah-olah Anda memanggilnya di server.

Pembaruan, penyisipan dan penghapusan mengikuti pola yang berbeda. Saat Anda membuat layanan domain, Anda dapat menunjukkan apakah Anda ingin mengaktifkan pengeditan. Metode terkait untuk perbarui / sisipkan / hapus kemudian dibuat di layanan domain sisi server. Namun, bagian sisi klien tidak memiliki metode ini. Apa yang Anda miliki pada Anda CustomerContextadalah sebuah metode yang disebut SubmitChanges. Jadi bagaimana cara kerjanya:

  • Untuk pembaruan, Anda cukup memperbarui properti pelanggan yang sudah ada (yang Anda ambil melalui GetCustomersByCountryQuery).
  • Untuk sisipan, Anda menggunakan CustomerContext.Customers.Add(new Customer(...) {...}).
  • Untuk menghapus, Anda menggunakan CustomerContext.Customers.Remove(someCustomer).

Setelah selesai mengedit, Anda menelepon CustomerContext.SubmitChanges().

Untuk validasi, Anda dapat menghias objek sisi server Anda dengan atribut validasi dari System.ComponentModel.DataAnnotationsnamespace. Sekali lagi, ketika Anda membangun proyek Anda, kode validasi sekarang secara otomatis dibuat untuk objek sisi klien yang sesuai.

Saya harap penjelasan ini sedikit membantu Anda.

Ronald Wildenberg
sumber
Pasti begitu. Terima kasih telah membagikannya. Saya berharap Anda dapat memperbarui situs MSDN. Sekarang, bagaimana jika saya menambahkan properti ke objek domain saya? Apakah itu akan memperbarui dirinya sendiri?
Aliostad
Saya menambahkan beberapa info tambahan tentang pembaruan, penyisipan dan penghapusan.
Ronald Wildenberg