Witam,
Z góry zaznaczam że pytanie jest generalnie o możliwość użycia, logikę przetwarzania danych oraz sposób korelacji miedzy sobą kilku elementów całej aplikacji.
A więc tak: Zastanawiam się nad stworzeniem aplikacji powiedzmy zapisującej kontakty użytkownika, taka wirtualna książka telefoniczna (generalnie nie wnikajmy co za dane ma przechowywać ta aplikacja, głównym jej założeniem jest: "przetwarzanie danych").
Wymagania dotyczące aplikacji to:
-
klient napisany w WPF obsługujący podstawową funkcjonalność: dodawanie, usuwanie,edytowanie wpisów, działający także offline, i mający mechanizm uwierzytelniania logującego się użytkownika (z tym nie będzie problemu ponieważ na jednej maszynie będzie jeden użytkownik - serializacja login/ hasło i szyfrowanie + mechanizmy odczytywania tych informacji, to akurat jest nieważne). klient pierwszy raz musi jednak być online, aby choćby się uwierzytelnić na danej maszynie. Tu także mogą logować się TYLKO powiedzmy "admini" książki telefonicznej.
-
Klient po stronie www (asp.net) na bazie wzorca projektowego MVC, możliwości działania na danych zależne od "grupy uprawnień", a grupy te dzielą się w zasadzie na trzy:
*Admini - czyli wszystko to co na WPF(RWX)
*Klienci - osoby, które założyły swoje konta i np. (RW)
*niezalogowani - domyślny odwiedzający np. (R)
Czytając o MVC w ASP.NET oraz użyciu Entity Framework razem z WCF http://msdn.microsoft.com/pl-pl/library/ff714342.aspx - Entity Framework – aplikacja trójwarstwowa, doszedłem do wniosku (i tu uwaga pytanie pierwsze konkretne pytanie), czy można by było zastosować taki model:
EF + WCF zgodnie z opisem na stronie www m$ jako warstwa dostępu dodanych także mechanizmy synchronizacji wyeksponowane przez WCF. natomiast generalnie aplikacja WPF z własnymi mechanizmami pracy offline (np serializacja stworzonych obiektów w trybie offline,oraz zdarzenie np: "onOnline"kiedy nastąpi dostęp do sieci - wywoła synchro serializowanych obiektów)
WWW - własne podstawowe mechanizmy,jednakże wszystkie mechanizmy zweiązane z danymi udostepnione przez WCF
Reasumując, można powiedzieć że kontroler oraz widok w głównej mierze zaimplementowane by były po stronie "klientów" czyli WPF oraz ASP.NET natomiast cały model dostępu do danych ma być eksponowany i kontrolowany przez WCF.
czy takie rozwiązanie jest w ogóle możliwe do osiągnięcia, czy dostęp do danych muszę pisać w każdej z "aplikacji" osobno?
Pozdrawiam
Oskar