6

Mam za zadanie udostępnienie aplikacji internetowej mojej firmy w trybie offline. Zanim przejdę do fazy rozwoju, chcę mieć pewność, że moja obecna strategia nie okaże się biustem.Uczyń aplikację internetową ASP.Net (C#) offline

Najpierw myślałem o używaniu pamięci podręcznej aplikacji html5, ale po wykonaniu niektórych testów okazało się, że nie buforuje on operacji po stronie serwera, ale rzeczywisty HTML, który jest renderowany (proszę poprawić mnie, jeśli się mylę). To nie zadziała, ponieważ renderowany html zależy od tego, kto jest aktualnie zalogowany. Z moich testów zawsze wyrenderował on kod HTML tak, jakby logował się ostatnio zalogowany użytkownik (online).

Moja obecna strategia to: Przechowuję w pamięci podręcznej tylko stronę logowania i stronę w trybie offline (.html) odpowiadającą każdej stronie aspx, która będzie dostępna w trybie offline. Każde udane logowanie (online) powoduje utworzenie lub aktualizację bazy danych SQL lub IndexDB (w zależności od przeglądarki) wraz ze wszystkimi danymi potrzebnymi, aby ta osoba działała w trybie offline, w tym tabelą, która będzie używana do poświadczeń logowania. W ten sposób jedynym wymogiem logowania w trybie offline jest zalogowanie się przy użyciu danych logowania przynajmniej raz.

Obawiam się, że nadmiernie komplikuję. Aby to zadziałało, będę musiał utworzyć stronę HTML dla każdej bieżącej strony (wiele stron) i będę musiał przepisać wszystko, co aktualnie jest robione na serwerze w JavaScript, w tym sprawdzanie poprawności, wywoływanie baz danych, zapełnianie kontrolek takie jak listy rozwijane i siatki danych itp. Również wszystko, co zmienię w przyszłości, będzie wymagać późniejszej zmiany w trybie offline.

Czy istnieje ustalona najlepsza praktyka dla tego, co próbuję zrobić, że przeoczyłem lub czy wchodzę w nowy grunt?

+0

Nie jestem ekspertem, ale to brzmi jak trzeba mieć różnych użytkowników zalogować się na stronie, wszystko od sama sesja przeglądarki i wszystkie rozłączone? Wydaje się to trudnym scenariuszem wymagającym buforowania nazw użytkowników i haseł na kliencie. Prawdopodobnie niebezpieczna praktyka. – andleer

+0

Dziękuję za odpowiedź. Jeśli dobrze cię rozumiem, myślę, że nie rozumiesz mojej strategii. Plan zakłada zezwolenie każdemu, kto wcześniej logował się w trybie online, na późniejsze działanie w trybie offline. Normalnym przypadkiem dla aplikacji, którą rozwijam jest to, że byłby dostępny przez brygadzistę na urządzeniu mobilnym (iphone, droid, tablet, itp.), Więc zwykle ta sama osoba używałaby tego samego urządzenia. Czy mówisz, że przechowywanie haseł przez Web SQL lub IndexDB jest niebezpieczną praktyką? Jeśli tak, dlaczego? –

+1

Oczywiście przechowywanie nazwy użytkownika i hasła na kliencie może nie być dobrą praktyką w tym samym czasie, james wydaje się być prawdziwym problemem do rozwiązania. Idealnie, gdy użytkownicy końcowi chcieliby mieć dostęp do systemu offline, musi on również zostać uwierzytelniony online i kontynuować pracę offline oraz zsynchronizować się online. Sądzę, że używam czegoś takiego jak silverlight, ale wydaje się, że istnieje problem z dostępem klientów do silverlight, więc Jedynym sposobem jest pozostawienie w pamięci. –

Odpowiedz

3

Proszę odnieść się do tych linków, które dają wgląd w to, co należy osiągnąć. Nie jestem pewien, czy są to najlepsze praktyki, ale to będzie dobry punkt wyjścia.

http://www.c-sharpcorner.com/UploadFile/aravindbenator/offline-mvc3-application/ http://www.developerfusion.com/article/84438/isolated-storage/

+0

Dziękuję Ci Siva za tę odpowiedź. Nie mogę się doczekać dalszego samotnego przechowywania, ponieważ wydaje się, że będzie to dobre narzędzie. Model, który wskazałeś na c-sharpcorner, wydaje się być dobrym modelem do wdrożenia strategii, którą nakreśliłem w pierwotnym pytaniu. Czy Twoim zdaniem buforowanie pliku html w trybie offline odpowiadającego każdemu z plików aspx online jest najlepszym rozwiązaniem? –

Powiązane problemy