2010-03-26 11 views
20

Istnieje wiele informacji na temat tworzenia aplikacji Silverlight za pomocą usług .NET RIA, ale nie jest jasne, co jest wyjątkowego w RIA, czego nie ma w WCF?Usługi RIA a usługi WCF: co to jest różnica?

Oto kilka tematów, które mówią wokół tego tematu: [1], [2]

Ale nie daje odpowiedzi na pytanie.

Przepraszam za głupie pytanie, ale co wnosi RIA Services do swojej aplikacji, jeśli masz już Silverlight <--> WCF Service <--> Business Logic <--> Entity Framework Model <--> Database? Poświadczenie? Uprawomocnienie? Czy to jest dla Ciebie odpowiednie?

W tej chwili jedyne co widzę: dzięki użyciu usług RIA nie trzeba ręcznie obsługiwać usługi WCF i nie trzeba konfigurować żadnych referencji po stronie klienta (strona kliencka == Aplikacja Silverlight).

Prawdopodobnie nie znam niektórych bardzo przydatnych funkcji usług RIA? Czy mógłbyś wskazać mi dobry dokument na ten temat?

Wielkie dzięki.

P.S. Czytałem wiele różnych artykułów na temat różnic, ale nie mogę tego wyjaśnić ... wszystkie artykuły "omijają" i nie są konkretne. Jeśli masz zamiar podać mi link do dodatkowego artykułu, proszę, bądź uprzejmy i podaj listę korzyści, które TY widzisz.

Odpowiedz

12

W rzeczywistości można użyć tego samego sprawdzania poprawności i uwierzytelniania bez korzystania z usług RIA. To, co daje Ci RIA Services, to generowanie kodu. Tworzy twoje zajęcia dla ciebie. Wystarczy wprowadzić logikę biznesową. Wydaje mi się, że usługi RIA są bardzo przydatne w bardzo szybkim opracowywaniu małych i średnich aplikacji.

Kolejną różnicą jest to, że ukrywa asynchroniczne połączenia z usługą sieciową. Wiele osób nie lubi modelu asynchronicznego (który jest jedynym, którego można używać w Silverlight), a usługi RIA obsługują to za Ciebie.

polecam czytanie tego artykułu z Shawnem Wildermuth gdzie zwraca uwagę na wady i zalety z obu podejść i obejmuje również usługi danych ADO.NET (który nazywa się teraz WCF Data Services, myślę):

http://wildermuth.com/2009/09/29/Choosing_a_Data_Access_Layer_for_Silverlight_3

+0

Arturo, dziękuję za link, dało to trochę do myślenia ... ale zresztą, nie jest dla mnie jasne, jakie są zalety OSR.Jedyną nową rzeczą, którą otrzymałem z połączonego artykułu: usługi RIA są BARDZO podobne do WebServices (lub do WCF, który używa protokołu transferu WsHttpBasic) i zapewniają dodatkową możliwość zastosowania zapytań LinQ do wywoływanych metod. Czy zostaną wykonane po stronie serwera? Czy to wszystko? – Budda

+0

Tak, zostaną wykonane po stronie serwera. Usługi RIA obejmują deskryptory filtrów, które umożliwiają przekazywanie kryteriów do bazy danych, czyli tam, gdzie powinny. Poza tym i z powodów wymienionych powyżej, tak to wszystko :-) Dla mnie generowanie kodu, które otrzymujesz, jest jego różnicą. –

+0

Arturo, w jaki sposób można replikować logikę walidacji do klienta bez duplikowania kodu? – bob

4

Cóż, nie zgadzam się z poprzednią wysłaną odpowiedzią. WCF Ria Sercices to świetna architektura i czasy pokazały, że to udowadnia. Wolę przyjrzeć się http://blogs.msdn.com/b/saurabh/archive/2009/11/23/understanding-the-wcf-in-wcf-ria-services.aspx

Aktualnie korzystam z usług WCF Ria na dużej aplikacji LOB, która jest skierowana do ponad 1500 współczesnych użytkowników. Dokonałem ogromnego wykorzystania personalizacji generowania kodu klienta (szczegóły można znaleźć pod numerem Varun's blog), ale mogę używać LINQ przez przewód z silverlight i mam możliwość wyboru między automatycznym leniwym lub gorliwym ładowaniem wśród środowisk w kontekście . I proszę nie zapominać, że paradygmat reszta usług WCF Ria pozwala również na użycie OutputCache.

Nie wspominając, że dzięki niestandardowemu metadataprovider można znacznie ułatwić generowanie klienta i sposób serializowania danych do klienta. Wierzę, że jeśli twoja aplikacja Silverlight jest oparta na kontekście, możesz na pewno przejść do usług WCF Ria. Mam nadzieję, że to pomogło, Marco

Powiązane problemy