Nienawidzę witryny MSDN dla usług WCF RIA. Nie mówi, co to jest, mówi tylko, co robi. Mówi, co może osiągnąć, ale nie mówi, dlaczego tego potrzebuję.
Na przykład:
„Typowym problemem podczas tworzenia n-warstwowego rozwiązania RIA jest koordynacja logiki aplikacji między warstwą środkową a warstwą prezentacji”.
Cóż, to niewiele dla mnie znaczy.
„Usługi RIA rozwiązują ten problem, udostępniając komponenty szkieletu, narzędzia i usługi, które udostępniają logikę aplikacji na serwerze klientowi RIA bez konieczności ręcznego kopiowania tej logiki programowania. Można utworzyć klienta RIA, który zna reguły biznesowe i wiedz, że klient jest automatycznie aktualizowany przy użyciu najnowszej logiki warstwy środkowej za każdym razem, gdy rozwiązanie jest ponownie kompilowane ”.
Czy więc pobiera biblioteki DLL z serwera? Czy są to metadane opisujące zasady dotyczące danych?
Więc co to jest? Czy to tylko dodatek VS 2010 dla RAD? Czy jest to technologia na szczycie WCF lub pod nim, czy co? Gdzie to żyje? Z danymi, z serwerem, co?
Dziękuję, jeśli możesz to dla mnie podsumować.
Odpowiedzi:
Usługi RIA to technologia po stronie serwera, która automatycznie generuje obiekty po stronie klienta (Silverlight), które zajmują się komunikacją z serwerem za Ciebie i zapewniają weryfikację po stronie klienta.
Głównym obiektem wewnątrz usługi RIA jest a
DomainService
, zwykle a,LinqToEntitiesDomainService
który jest połączony z modelem LinqToEntities.Kluczową rzeczą do zapamiętania w usługach RIA jest to, że jest to głównie wyrafinowana sztuczka budowania. Podczas tworzenia usługi domeny i kompilowania rozwiązania generowana jest reprezentacja usługi domeny po stronie klienta. Ta reprezentacja po stronie klienta ma ten sam interfejs. Załóżmy, że tworzysz usługę domeny po stronie serwera
CustomerService
za pomocą metodyIQueryable<Customer> GetCustomersByCountry
. Podczas tworzenia rozwiązania w projekcie Silverlight generowana jest klasa o nazwie,CustomerContext
która ma metodęGetCustomersByCountryQuery
. Możesz teraz użyć tej metody na kliencie, tak jakbyś wywoływał ją na serwerze.Aktualizacje, wstawianie i usuwanie przebiega według innego wzoru. Tworząc usługę domeny, możesz wskazać, czy chcesz włączyć edycję. Odpowiednie metody aktualizacji / wstawiania / usuwania są następnie generowane w usłudze domeny po stronie serwera. Jednak część po stronie klienta nie ma tych metod. Masz na sobie
CustomerContext
metodę zwanąSubmitChanges
. Jak to działa:GetCustomersByCountryQuery
).CustomerContext.Customers.Add(new Customer(...) {...})
.CustomerContext.Customers.Remove(someCustomer)
.Po zakończeniu edycji dzwonisz
CustomerContext.SubmitChanges()
.Jeśli chodzi o walidację, możesz ozdobić swoje obiekty po stronie serwera atrybutami walidacji z
System.ComponentModel.DataAnnotations
przestrzeni nazw. Ponownie, podczas budowania projektu kod walidacji jest teraz automatycznie generowany dla odpowiednich obiektów po stronie klienta.Mam nadzieję, że to wyjaśnienie pomoże ci trochę dalej.
źródło
Najnowsze wiadomości: WCF RIA Services nie żyje:
http://blogs.msmvps.com/deborahk/who-moved-my-cheese-ria-services/
Jeśli chcesz korzystać z usług RIA, mają one otwarte źródła:
http://www.openriaservices.net/blog/posts/
źródło