6

Se me ha encomendado la tarea de hacer que la aplicación web de mi empresa esté disponible sin conexión. Antes de pasar a la fase de desarrollo real, quiero estar seguro de que mi estrategia actual no será un fracaso.Hacer que la aplicación web ASP.Net (C#) esté disponible fuera de línea

Primero pensé en usar la caché de la aplicación html5 pero después de hacer algunas pruebas descubrí que parece no almacenar en caché las operaciones del lado del servidor sino el html real que se procesa (Corrígeme si estoy equivocado). Esto no funcionará porque el html renderizado depende de quién está actualmente conectado. De mis pruebas, siempre renderizó el html como si la última persona que inició sesión (en línea) está iniciando sesión.

Mi estrategia actual es esta: Guardo en caché solo la página de inicio de sesión y una página fuera de línea (.html) para que se correspondan con cada página aspx que deberá estar disponible sin conexión. Cada inicio de sesión exitoso (en línea) da como resultado la creación o actualización de Base de datos Web SQL o IndexDB (dependiendo del navegador) con todos los datos necesarios para que esa persona funcione fuera de línea, incluida una tabla que se utilizará para credenciales de inicio de sesión. De esta forma, el único requisito para iniciar sesión sin conexión es iniciar sesión con sus credenciales de inicio de sesión al menos una vez.

Mi preocupación es que lo estoy complicando demasiado. Para que esto funcione, tendré que crear una página html para cada página actual (muchas páginas) y tendré que reescribir todo lo que se está haciendo actualmente en el servidor en JavaScript, incluida la validación, las llamadas a la base de datos, los controles poblados. como listas desplegables y cuadrículas de datos, etc. Además, todo lo que cambie en el futuro requerirá un cambio posterior sin conexión.

¿Existe una buena práctica establecida para lo que estoy tratando de hacer que estoy pasando por alto o me estoy aventurando en un terreno nuevo?

+0

No soy experto aquí, pero parece que usted necesita tener diferentes usuarios inician sesión en su sitio, todos de la misma sesión del navegador y todos desconectados? Parece un escenario difícil que requeriría caché de nombres de usuario y contraseñas en su cliente. Probablemente una práctica peligrosa. – andleer

+0

Gracias por su respuesta. Si te estoy entendiendo correctamente, creo que estás malinterpretando mi estrategia. El plan es permitir que cualquier persona que haya iniciado sesión previamente en el modo en línea funcione más tarde en modo fuera de línea. El caso normal para la aplicación que estoy desarrollando es que un capataz accedería a él desde un dispositivo móvil (iphone, droide, tableta, etc.), por lo que normalmente la misma persona usaría el mismo dispositivo. ¿Estás diciendo que almacenar contraseñas a través de Web SQL o IndexDB es una práctica peligrosa? Si es así, ¿por qué? –

+1

Ciertamente, almacenar el nombre de usuario y la contraseña en el cliente puede no ser una buena práctica al mismo tiempo, lo que parece tener james parece ser un problema genuino para resolver. Idealmente, cuando los usuarios finales deseen tener acceso al sistema fuera de línea, también necesita ser autenticado en línea y continuar su trabajo fuera de línea y sincronizar en línea. Yo pensaría usar algo como Silverlight, pero parece que hay un problema en términos de clientes que acceden a Silverlight, por lo que el almacenamiento aislado es la única opción que queda. –

Respuesta

3

Consulte estos enlaces, que le dan una idea de lo que se debe lograr. No estoy seguro de que estas sean las mejores prácticas, pero este será un buen punto de partida.

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

+0

Gracias Siva por esta respuesta. Estoy ansioso por buscar en el almacenamiento aislado aún más, ya que parece que será una buena herramienta. El modelo que señaló en c-sharpcorner parece ser un buen modelo para implementar la estrategia que describí en mi pregunta original. ¿Opina que el almacenamiento en caché de un archivo html sin conexión para corresponder con cada archivo aspx en línea es la mejor solución? –

Cuestiones relacionadas