WCF RIA hizmetleri nedir?


102

MSDN'nin WCF RIA hizmetleri sitesinden nefret ediyorum. Ne olduğunu söylemez, sadece ne yaptığını söyler. Neyi başarabileceğini söylüyor ama neden ihtiyacım olduğunu söylemiyor.

Örneğin:

"Bir n katmanlı RIA çözümü geliştirirken yaygın bir sorun, orta katman ile sunum katmanı arasındaki uygulama mantığını koordine etmektir".

Benim için pek bir şey ifade etmiyor.

"RIA Hizmetleri, bu programlama mantığını manuel olarak kopyalamanıza gerek kalmadan, sunucudaki uygulama mantığını RIA istemcisi için kullanılabilir kılan çerçeve bileşenleri, araçları ve hizmetleri sağlayarak bu sorunu çözer. İş kurallarının farkında olan bir RIA istemcisi oluşturabilirsiniz. ve çözüm her yeniden derlendiğinde istemcinin en son orta katman mantığıyla otomatik olarak güncellendiğini bilir. "

Peki, DLL'leri sunucudan indiriyor mu? Veriler için kuralları açıklayan bir meta veri mi?

Öyleyse nedir? Yalnızca RAD için bir VS 2010 eklentisi mi? Yoksa WCF'nin üstünde mi, altında mı yoksa altında bir teknoloji mi? Nerede yaşıyor? Verilerle, sunucuyla, ne?

Bunu benim için özetleyebilirseniz minnettarım.


3
Kod Oluşturma ve hem Sunucu tarafı hem de İstemci tarafı kodu kullanan WCF'nin üstünde bir teknolojidir. Doğrulama ve diğer şeyler ile esas olarak verileri sunucudan istemciye ve tekrar geri karıştırmaya odaklanır.
Rangoric

1
@Rangoric: Bunu bir Cevap olarak gönderebilirsiniz. Kısa cevaplar da iyi cevaplar olabilir.
Henk Holterman

7
Ah, lol, RIAA olarak yanlış anladım ve psikopat oldum .
Mateen Ulhaq

Bilmekte fayda var: RIA = Zengin İnternet Uygulamaları (Silverlight'ın bulunduğu ince istemciler), burada iyi açıklanmıştır . WCF RIA hizmetleri, ince istemciyi sunucuya bağlayan WCF üzerinden RIA hizmetleridir. " WCF RIA Hizmetleri, verileri Microsoft Yapılandırılmış Sorgu Dili (SQL) Sunucusu veritabanından alır ve bu verileri, düzenleme ve görüntüleme için sunulduğu bir Silverlight istemcisinin kullanımına sunar "
dakika

Yanıtlar:


109

RIA hizmetleri, sizin için sunucuyla olan iletişimi sizin yerinize yapan ve istemci tarafında doğrulama sağlayan istemci tarafı (Silverlight) nesneleri otomatik olarak oluşturan bir sunucu tarafı teknolojisidir.

Bir RIA hizmetindeki ana nesne DomainService, genellikle LinqToEntitiesDomainServiceLinqToEntities modeline bağlı olan bir nesnedir.

DEA hizmetlerinde hatırlanması gereken en önemli şey, esas olarak karmaşık bir yapı hilesi olmasıdır. Bir etki alanı hizmeti oluşturduğunuzda ve çözümünüzü derlediğinizde, etki alanı hizmetinizin istemci tarafı bir temsili oluşturulur. Bu istemci tarafı gösterimi aynı arayüze sahiptir. Eğer bir sunucu tarafı alanı hizmeti oluşturmak varsayalım CustomerServicebir yöntemle IQueryable<Customer> GetCustomersByCountry. Çözümünüzü oluşturduğunuzda, Silverlight projenizde CustomerContextyönteme sahip olan bir sınıf oluşturulur GetCustomersByCountryQuery. Artık bu yöntemi istemcide sanki sunucuda çağırıyormuş gibi kullanabilirsiniz.

Güncellemeler, ekler ve silmeler farklı bir modeli izler. Bir etki alanı hizmeti oluşturduğunuzda, düzenlemeyi etkinleştirmek isteyip istemediğinizi belirtebilirsiniz. Güncelleştirme / ekleme / silme için ilgili yöntemler daha sonra sunucu tarafı etki alanı hizmetinde oluşturulur. Ancak, istemci tarafı kısımda bu yöntemler yoktur. Üzerinde sahip olduğunuz CustomerContextşey adı verilen bir yöntemdir SubmitChanges. Peki bu nasıl çalışıyor:

  • Güncellemeler için, mevcut müşterilerin özelliklerini güncellemeniz yeterlidir (üzerinden aldığınız GetCustomersByCountryQuery).
  • Ekler için kullanırsınız CustomerContext.Customers.Add(new Customer(...) {...}).
  • Silmek için kullanırsınız CustomerContext.Customers.Remove(someCustomer).

Düzenlemeyi bitirdiğinizde arayın CustomerContext.SubmitChanges().

Doğrulamaya gelince, sunucu tarafındaki nesnelerinizi System.ComponentModel.DataAnnotationsad alanından doğrulama öznitelikleriyle dekore edebilirsiniz . Yine, projenizi oluşturduğunuzda, ilgili istemci tarafı nesneler için doğrulama kodu artık otomatik olarak üretilir.

Umarım bu açıklama size biraz daha yardımcı olur.


Kesinlikle öyle. Paylaştığınız için teşekkürler MSDN sitesini güncellemenizi dilerdim. Şimdi, etki alanı nesneme bir özellik eklersem ne olur? Kendini günceller mi?
Aliostad

Güncellemeler, ekler ve silmeler hakkında bazı ek bilgiler ekledim.
Ronald Wildenberg

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.