Сделать веб-приложение ASP.Net (C#) доступным в автономном режиме

Мне было поручено сделать веб-приложение моей компании доступным в автономном режиме. Прежде чем я перейду к фактической фазе разработки, я хочу быть уверен, что моя текущая стратегия не окажется провальной.

Сначала я подумал об использовании кеша приложений html5, но после проведения некоторых тестов я обнаружил, что он, похоже, кэширует не операции на стороне сервера, а фактический отображаемый html (пожалуйста, поправьте меня, если я ошибаюсь). Это не сработает, потому что отображаемый html зависит от того, кто в данный момент вошел в систему. Из моих тестов он всегда отображал html, как если бы последний человек, который вошел в систему (онлайн), вошел в систему.

Моя текущая стратегия такова: я кэширую только страницу входа и автономную страницу (.html), чтобы соответствовать каждой странице aspx, которая должна быть доступна в автономном режиме. Каждый успешный вход в систему (онлайн) приводит к созданию или обновлению базы данных Web SQL или IndexDB (в зависимости от браузера) со всеми данными, необходимыми этому человеку для работы в автономном режиме, включая таблицу, которая будет использоваться для учетных данных для входа. Таким образом, единственным требованием для входа в систему в автономном режиме является вход в систему с вашими учетными данными хотя бы один раз.

Меня беспокоит то, что я слишком усложняю это. Чтобы это работало, мне нужно будет создать html-страницу для каждой текущей страницы (много страниц), и мне придется переписать все, что в настоящее время делается на сервере, на JavaScript, включая проверку, вызовы базы данных, заполнение элементов управления такие как выпадающие списки и сетки данных и т. д. Также все, что я изменяю в будущем, потребует последующего автономного изменения.

Есть ли устоявшаяся передовая практика для того, что я пытаюсь сделать, которую я упускаю из виду, или я рискую выйти на новый уровень?


person James Sumner    schedule 10.10.2012    source источник
comment
Я не эксперт здесь, но похоже, что вам нужно, чтобы разные пользователи входили на ваш сайт, все из одного и того же сеанса браузера и все были отключены? Это кажется сложным сценарием, который потребует от вас кэширования имен пользователей и паролей на вашем клиенте. Вероятно, опасная практика.   -  person andleer    schedule 10.10.2012
comment
Спасибо за ваш ответ. Если я правильно вас понимаю, я думаю, вы неправильно понимаете мою стратегию. План состоит в том, чтобы позволить всем, кто ранее входил в онлайн-режим, позже работать в автономном режиме. Обычный случай для приложения, которое я разрабатываю, заключается в том, что к нему будет обращаться мастер на мобильном устройстве (iphone, droid, планшет и т. д.), поэтому обычно один и тот же человек будет использовать одно и то же устройство. Вы говорите, что хранение паролей через Web SQL или IndexDB — опасная практика? Если да, то почему?   -  person James Sumner    schedule 10.10.2012
comment
Конечно, хранение имени пользователя и пароля на клиенте не может быть хорошей практикой, в то же время то, что у Джеймса, похоже, является реальной проблемой, которую нужно решить. В идеале, когда конечные пользователи хотели бы иметь доступ к автономной системе, им также необходимо пройти онлайн-аутентификацию и продолжить свою работу в автономном режиме и синхронизировать онлайн. Я бы подумал об использовании чего-то вроде silverlight, но, похоже, есть проблема с доступом клиентов к silverlight, поэтому единственным оставшимся вариантом является изолированное хранилище.   -  person Siva Karthikeyan    schedule 15.10.2012


Ответы (1)


Пожалуйста, обратитесь к этим ссылкам, которые дают вам некоторое представление о том, что должно быть достигнуто. Я не уверен, что это лучшие практики, но они будут хорошей отправной точкой.

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

person Siva Karthikeyan    schedule 15.10.2012
comment
Спасибо Шива за этот ответ. Я с нетерпением жду дальнейшего изучения изолированного хранилища, так как кажется, что это будет хороший инструмент. Модель, которую вы указали в c-sharpcorner, кажется хорошей моделью для реализации стратегии, которую я изложил в своем первоначальном вопросе. Считаете ли вы, что кеширование автономного html-файла для соответствия каждому онлайн-файлу aspx является лучшим решением? - person James Sumner; 15.10.2012