Czym są usługi WCF RIA?

Nienawidzę strony MSDN dla usług WCF RIA. Nie mówi, co to jest, mówi tylko to, co robi. Mówi, co może osiągnąć, ale nie mówi, dlaczego tego potrzebuję.

Na przykład:

" częstym problemem przy opracowywaniu rozwiązanie N-tier Ria koordynuje logika aplikacji pomiędzy środkiem warstwa i warstwa prezentacji".

Cóż, to niewiele dla mnie znaczy.

" RIA Services rozwiązuje ten problem poprzez zapewnienie ram komponenty, narzędzia, i usług, które składają wniosek logiki na serwerze dostępnym dla Klient RIA bez konieczności ręcznie Powiel to programowanie logika. Możesz utworzyć klienta RIA który jest świadomy zasad biznesowych i wiedzieć, że klient jest automatycznie zaktualizowano najnowszą logikę średniego poziomu za każdym razem, gdy rozwiązanie jest ponownie skompilowany."

Czyli ściąga DLL z serwera? Czy jest to metadane opisujące Zasady dla data?

Więc o co chodzi? Czy to tylko dodatek VS 2010 do RAD? A może jest to technologia na wierzchu WCF lub pod nim, czy co? Gdzie mieszka? Z danymi, z serwerem, co?

Będę wdzięczny, jeśli możesz to dla mnie streścić.

Author: Aliostad, 2010-09-10

2 answers

RIA services to technologia po stronie serwera, która automatycznie generuje obiekty po stronie klienta (Silverlight), które dbają o komunikację z serwerem i zapewniają walidację po stronie klienta.

Głównym obiektem wewnątrz usługi RIA jest DomainService, zazwyczaj LinqToEntitiesDomainService który jest połączony z Modelem Linqto.

Kluczową rzeczą do zapamiętania w usługach RIA jest to, że jest to głównie wyrafinowana sztuczka budowlana. Podczas tworzenia usługi domeny i skompiluj swoje rozwiązanie, generowana jest reprezentacja po stronie klienta usługi domeny. Ta reprezentacja po stronie klienta ma ten sam interfejs. Załóżmy, że tworzysz usługę domeny po stronie serwera CustomerService za pomocą metody IQueryable<Customer> GetCustomersByCountry. Kiedy budujesz rozwiązanie, w Twoim projekcie Silverlight generowana jest klasa o nazwie CustomerContext, która ma metodę GetCustomersByCountryQuery. Możesz teraz użyć tej metody na kliencie tak, jakbyś ją wywoływał na serwerze.

Aktualizacje, wstawianie i usuwanie są zgodne z innym wzorcem. Kiedy tworzysz 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. To, co masz na swojej CustomerContext, to metoda o nazwie SubmitChanges. Jak to działa:

  • W przypadku aktualizacji wystarczy zaktualizować właściwości istniejących klientów(pobrane przez GetCustomersByCountryQuery).
  • do wkładek używa się CustomerContext.Customers.Add(new Customer(...) {...}).
  • Dla usuwa, używasz CustomerContext.Customers.Remove(someCustomer).

Kiedy skończysz edytować, dzwonisz CustomerContext.SubmitChanges().

Jeśli chodzi o walidację, możesz udekorować obiekty po stronie serwera atrybutami walidacji z System.ComponentModel.DataAnnotations przestrzeń nazw. Ponownie, podczas tworzenia projektu, kod weryfikacyjny jest teraz automatycznie generowany dla odpowiednich obiektów po stronie klienta.

Mam nadzieję, że to Wyjaśnienie pomoże Ci trochę dalej.

 99
Author: Ronald Wildenberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-12 22:07:00

Najnowsze wiadomości: WCF RIA Services is dead:

Http://blogs.msmvps.com/deborahk/who-moved-my-cheese-ria-services/

Jeśli chcesz korzystać z usług RIA, zostały one otwarte:

Http://www.openriaservices.net/blog/posts/

 8
Author: user8128167,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-21 22:47:44