¿Silverlight es adecuado para una interfaz de usuario de producto basada en web de clase empresarial?

8

Nuestro equipo está trabajando actualmente en la construcción de nuestro HIS (Sistema de información hospitalaria) de próxima generación que consta de más de 30 módulos (actualmente estimados en 400 meses hombre), que posiblemente se alojarán en una ubicación central y se accederá a través de geografías. Por lo tanto, los NFR primarios de IU (requisitos no funcionales) serían

  • Compatibilidad con múltiples navegadores
  • Páginas de carga rápida con una rica GUI
  • Capacidad para integrarse con dispositivos de hardware como escáneres biométricos, lectores biométricos, etc.
  • Facilidad de desarrollo, mantenimiento (incorporando cambios), ciclo de desarrollo más corto
  • Posibilidad de abrir múltiples formularios dentro de la misma ventana del navegador (sin iniciar ventanas adicionales)

Pros:

  1. La interfaz de usuario sería independiente del navegador , no tenemos que preocuparnos de garantizar que nuestras páginas web funcionen con IE 7, 8, 9 ++ / Chrome 8, 9, 18 ++ / Mozilla Firefox (actualmente se dedica mucho esfuerzo de desarrollo a esto comprobación de compatibilidad y fijación)
  2. Posiblemente podríamos hacer que nuestra aplicación sea más modular, a diferencia de una aplicación monolítica ASP.Net
  3. Uso de almacenamiento aislado en la PC cliente

Contras:

  1. Problemas de pérdida de memoria de Silverlight. Los enfrentamos en algunas muestras que creamos usando SL y tenemos el mismo problema en una aplicación XBAP heredada. Los siguientes enlaces, corroboran el miedo http://davybrion.com/blog/2010/08/silverlight-getting-worse-when-it-comes-to-memory-leaks/ /programming/5091636 / silverlight-4-memory-leaks

  2. Microsoft no parece muy entusiasmado con el futuro de SL. Parecen estar invirtiendo más en HTML 5. Las versiones futuras de un SL 5 o 6 también son inciertas. http://support.microsoft.com/gp/lifean45 http://www.zdnet.com/blog/microsoft/microsoft-our-strategy-with-silverlight-has-shifted/7834 http: //www.zdnet. com / blog / microsoft / will-there-be-a-silverlight-6-and-does-it-matter / 11180

  3. Los módulos HIS se abrirían como pestañas múltiples dentro de la misma ventana del navegador (estamos hablando de un máximo de 8 pestañas abiertas simultáneamente). ¿Cuánta carga pondría en esa instancia del navegador y cómo afectaría eso al problema de pérdida de memoria?

  4. Curva de aprendizaje para desarrolladores ASP.Net

  5. Otro enlace de Stack en SL /programming/251718/silverlight-wpf-web-app-xbap-or-click-once-pros-and-cons

Neutral

  1. La compatibilidad con SEO no es una preocupación

Mis consultas son?

  1. ¿Usaría SL, conociendo los Pros y Contras anteriores (y otros)
  2. En caso de que usemos el patrón MVVM para construir un producto con SL como front-end, ¿sería posible reemplazar la UI mañana con otra UI (ASP.Net u otra cosa). Tengo entendido que el reproceso sería sustancial. ¿Qué piensa la comunidad?
  3. Hemos pasado un tiempo considerable en el análisis anterior (y en la creación de pruebas de conceptos). ¿Hay un hecho importante / factor decisivo que estamos pasando por alto?

No marque esto como un duplicado, ya que se ha invertido mucha investigación y esfuerzo en este ejercicio.

PD: Hemos pasado los últimos 6 meses construyendo el producto usando formularios web ASP.Net (usando el patrón MVP) y ahora estamos viendo un cambio tecnológico debido a las razones anteriores.

Tushax
fuente
1
Como lo destacó @Alex, la línea "Capacidad para integrarse con dispositivos de hardware como escáneres biométricos, lectores biométricos, etc." puede ser engañoso y complicado. Si lo desea, ignórelo, aunque todavía lo tenemos como NFR.
2
No hay tal cosa como una "apuesta segura" cuando no sabemos lo que traerá el futuro. El mayor problema que veo es la dependencia de la integración de hardware. Para ser honesto: elegiría una aplicación de escritorio clásica cuando la integración del hardware es clave.
Erno
No dio suficientes razones por las que desea abandonar la tecnología actual (ASP.NET) a otra tecnología en la que su personal no está capacitado y que tiene un futuro dudoso. De todos modos, si está construyendo un sistema de ese tamaño, en este día y edad, y está dispuesto a invertir en capacitación, vaya con tecnologías principales en el front-end como HTML5 y JavaScript. Ninguna tecnología de front end durará mucho de todos modos.
NoPuerto

Respuestas:

2

Realmente tenemos este problema. Comenzamos el desarrollo en Silverligth. Es una tecnología prety, pero probablemente Microsoft la abandone. Así que cambiamos para desarrollar en ASP.NET MVC.

Entonces :

  1. Probablemente no funciona en Windows 8 metro. No funciona en otro sistema operativo.
  2. Es muy difícil cambiar Pattern MVVM a otra tecnología. Para nuestro caso, cambie a MVC con HTML 5, cambie todo el código.
  3. ...

Espero que pueda ser de ayuda.


fuente
1
-1 Esta respuesta no es muy informativa. # 1 es falso por dos razones. Por un lado, Silverlight definitivamente será compatible con Windows 8. En segundo lugar, Silverlight también funciona en Mac. # 2 es engañoso. Si su aplicación está estructurada correctamente (MVVM, MVC, lo que sea), será un poco más fácil cambiar los niveles. De cualquier manera, será difícil en el mundo real. # 3 no es una razón ...
Morgan Herlocker
Tengo entendido que Windows 8 tiene 2 modos. Uno de esos modos tendrá IE que no permita complementos, pero el otro modo permitiría a los navegadores ejecutar complementos.
NoPuerto
2

Para responder un par de preguntas:

Los módulos HIS se abrirían como pestañas múltiples dentro de la misma ventana del navegador (estamos hablando de un máximo de 8 pestañas abiertas simultáneamente). ¿Cuánta carga pondría en esa instancia del navegador y cómo afectaría eso al problema de pérdida de memoria?

¿Por qué necesitas abrir 8 pestañas simultáneamente? Con Silverlight, podría tener una sola pestaña de aplicación y todos los controles / páginas, etc. con pestañas dentro de eso. Esto no ejercería mayor presión sobre la instancia del navegador y no empeoraría el problema de pérdida de memoria.

En caso de que usemos el patrón MVVM para construir un producto con SL como front-end, ¿sería posible reemplazar la UI mañana con otra UI (ASP.Net u otra cosa). Tengo entendido que el reproceso sería sustancial. ¿Qué piensa la comunidad?

Prácticamente cualquier tecnología que elija ahora le dará los mismos dolores de cabeza si intenta reemplazar la interfaz de usuario. A menos que pueda divorciarse totalmente de la lógica de la aplicación de la interfaz de usuario, habrá una importante reelaboración. Si tuviera que convertirlo en una aplicación WPF, tendría menos problemas.

Sin embargo, esta declaración:

Capacidad para integrarse con dispositivos de hardware como escáneres biométricos, lectores biométricos, etc.

me lleva a pensar que usar cualquier tecnología basada en la web te causará problemas en esta área. Aquí estoy de acuerdo con Alex : una mejor apuesta podría ser escribir una aplicación nativa. El uso de Java le dará cierta interoperabilidad en múltiples plataformas, pero a costa de no usar elementos de la interfaz de usuario nativos.

ChrisF
fuente
Lo sentimos, si el objetivo de la pestaña no estaba claro. Estamos intentando abrir varias pestañas dentro de la misma aplicación SL. La aplicación base (sin pestañas internas) comenzó con 50 MB de memoria en el administrador de tareas y al abrir alrededor de 15 pestañas (con varios controles de formulario y sin lógica de procesamiento) la memoria se disparó hasta 250+ MB. Al cerrar todas las pestañas, la utilización de la memoria se redujo, pero finalmente se mantuvo en 150 MB. Por lo tanto, se está replanteando la idea de tener varias pestañas en una aplicación que podría ejecutarse las 24 horas del día (sin cerrar sesión). Completamente de acuerdo en el dolor de actualización de la interfaz de usuario.
Tushax
1

Capacidad para integrarse con dispositivos de hardware como escáneres biométricos, lectores biométricos, etc.

Este puede ser difícil y requerirá el modo OutOfBrowser para Silverlight, tendrá que usar COM para que esto funcione, y esto arruinará su requisito de navegador cruzado. COM solo funciona en Internet Explorer.

En mi humilde opinión, el requisito más difícil para la aplicación WEB es trabajar con dispositivos externos. Por lo general, vienen con bibliotecas C, C ++ para trabajar con ellas, y necesita una forma de interoperar en C, C ++.

No creo que ninguna tecnología WEB pueda cumplir estos requisitos, solo si los applets de Java, pero no sé acerca de las capacidades de interoperabilidad de los applets de Java. De cualquier manera, pensaría en Java, ya sea applet o aplicación de escritorio, dependiendo de la capacidad de trabajar con hardware.

Alex Burtsev
fuente
Sí, Alex, he tenido esos problemas con los controles OCX (Activex) en el pasado: solo son IE
0

Si JS no te concierne, iría Html5 + JS hasta el final. No se requiere un complemento externo, el antiguo IE se puede hacer razonar con Html5 a través de JS, y también funcionará en dispositivos móviles.

SL como Flash requiere un complemento, no funcionará en dispositivos móviles, etc.

Si te gusta el patrón MVVM, puedes unirte a Html5 con Knockout.js, una biblioteca JS que usa el patrón MVVM, ya lo usé en un par de proyectos y es increíble.

Entonces, para responder, manténgase alejado de SL o Flash si desea algo tan compatible y tan rápido como sea posible.

Matteo Mosca
fuente
1
SilverLight funciona en algunos dispositivos móviles. Además, JavaScript puede ser bastante abrumador dependiendo del cliente que lo ejecute. No es razonable pensar que HTML y JS siempre serán más rápidos.
Yuck
Como dices, funciona en "algunos". Html5 + JS es mucho más compatible. No soy un gran fanático de JS, pero necesita cosas dinámicas del lado del cliente, es eso o un complemento, y los complementos dan una peor compatibilidad.
Matteo Mosca, el
¿Cómo obtendría una solución "pura" como esta sin complementos para trabajar con hardware externo?
Yuck
IMHO JS es un conjunto de habilidades de nicho que con el tiempo podría ser muy difícil de retener y mantener. Acuerde que necesitaríamos complementos para interactuar con hardware externo.
Tushax