O Silverlight é adequado para uma interface de usuário de produto de classe corporativa baseada na Web?


8

Atualmente, nossa equipe está trabalhando na construção de nossa próxima geração de HIS (Sistema de Informações Hospitalares), composta por mais de 30 módulos (atualmente estimados em 400 homens / mês), que podem estar hospedados em um local central e acessados ​​em diferentes regiões geográficas. Portanto, os NFRs da UI principal (requisitos não funcionais) seriam

  • Compatibilidade com vários navegadores
  • Carregamento rápido de páginas com GUI avançada
  • Capacidade de integração com dispositivos de hardware, como scanners biométricos, leitores biométricos etc.
  • Facilidade de desenvolvimento, manutenção (incorporando alterações), ciclo de desenvolvimento mais curto
  • Capacidade de abrir vários formulários na mesma janela do navegador (sem abrir janelas adicionais)

Prós:

  1. A interface do usuário seria independente do navegador , não precisamos nos preocupar em garantir que nossas páginas da Web funcionem com o IE 7, 8, 9 ++ / Chrome 8, 9, 18 ++ / Mozilla Firefox (atualmente há muito esforço de desenvolvimento nesse sentido). verificação e correção de compatibilidade)
  2. Poderíamos tornar nosso aplicativo mais modular, diferente de um aplicativo ASP.Net monolítico
  3. Uso de armazenamento isolado no PC cliente

Contras:

  1. Problemas de vazamento de memória do Silverlight. Nós os enfrentamos em algumas amostras que criamos usando o SL e temos o mesmo problema em um aplicativo XBAP herdado. Os links a seguir comprovam o medo http://davybrion.com/blog/2010/08/silverlight-getting-worse-when-it-comes-to-memory-leaks/ /programming/5091636 / silverlight-4-memory-leaks

  2. A Microsoft não parece muito entusiasmada com o futuro do SL. Eles parecem estar investindo mais no HTML 5. As versões futuras de um SL 5 ou 6 também são incertas. 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 / haverá um silverlight-6-e-importa-o / 11180

  3. Os módulos HIS abririam como várias guias na mesma janela do navegador (estamos falando de um máximo de oito guias abertas simultaneamente). Quanto de carga seria aplicada nessa instância do navegador e como isso afetaria o problema de vazamento de memória?

  4. Curva de aprendizado para desenvolvedores do ASP.Net

  5. Outro link de pilha no SL /programming/251718/silverlight-wpf-web-app-xbap-or-click-once-pros-and-cons

Neutro

  1. Compatibilidade com SEO não é uma preocupação

Minhas consultas são?

  1. Você usaria o SL, conhecendo os prós e os contras acima (e outros)
  2. Caso usemos o padrão MVVM para criar um produto com SL como front-end, seria possível substituir a interface do usuário amanhã por outra interface do usuário (ASP.Net ou outra coisa). Meu entendimento é que o retrabalho seria substancial. O que a comunidade pensa?
  3. Passamos um tempo considerável na análise acima (e na criação de provas de conceitos). Existe um fato importante / fator decisivo que estamos ignorando?

Por favor, não marque isso como duplicado, pois muita pesquisa e esforço foram realizados neste exercício.

PS: Passamos os últimos 6 meses na criação do produto usando formulários da Web ASP.Net (usando o padrão MVP) e agora estamos observando uma mudança de tecnologia devido aos motivos acima.


1
Conforme destacado pelo @Alex, a linha "Capacidade de integração com dispositivos de hardware como scanners biométricos, leitores biométricos etc." pode ser enganoso e complicado. Por favor, ignore que, se quiser, ainda o temos como NFR.

2
Não existe uma "aposta segura" quando não sabemos o que o futuro trará. O maior problema que vejo é a dependência da integração de hardware. Para ser honesto: eu usaria um aplicativo de desktop clássico quando a integração de hardware for essencial.
Erno

Você não deu razões suficientes para querer abandonar a tecnologia atual (ASP.NET) para outra tecnologia em que sua equipe não esteja treinada e que tenha um futuro duvidoso. De qualquer forma, se você estiver construindo um sistema desse tamanho hoje em dia e estiver disposto a investir em treinamento, use as principais tecnologias de fluxo no front-end, como HTML5 e JavaScript. De qualquer forma, nenhuma tecnologia de front-end durará muito tempo.
precisa saber é o seguinte

Respostas:


2

Temos realmente esse problema. Começamos o desenvolvimento do Silverligth. É uma tecnologia bonita, mas provavelmente é desistida pela Microsoft. Então, mudamos para desenvolver no ASP.NET MVC.

Assim :

  1. Provavelmente não funciona no Windows 8 metro. Não funciona em outro sistema operacional.
  2. É muito difícil mudar o Pattern MVVM para outra tecnologia. Para o nosso caso, altere para MVC com HTML 5 altere todo o código.
  3. ...

Espero que isso possa ajudá-lo.


1
-1 Esta resposta não é muito informativa. O número 1 é falso em dois aspectos. Por um lado, o Silverlight definitivamente será suportado no Windows 8. Em segundo lugar, o Silverlight também funciona no Mac. # 2 é desanimador. Se seu aplicativo estiver estruturado adequadamente (MVVM, MVC, qualquer que seja), será um pouco mais fácil alterar as camadas. De qualquer maneira, será difícil no mundo real. # 3 não é uma razão ...
Morgan Herlocker

Meu entendimento é que o Windows 8 tem 2 modos. Um desses modos terá o IE não permitindo plug-ins, mas o outro modo permitiria que os navegadores executassem plug-ins.
precisa saber é o seguinte

2

Para responder algumas de suas perguntas:

Os módulos HIS abririam como várias guias na mesma janela do navegador (estamos falando de um máximo de oito guias abertas simultaneamente). Quanto de carga seria aplicada nessa instância do navegador e como isso afetaria o problema de vazamento de memória?

Por que você precisa abrir 8 abas simultaneamente? Com o Silverlight você poderia ter uma única guia de aplicação e todos os controles / páginas etc abas dentro disso. Isso não sobrecarregaria mais a instância do navegador e não pioraria o problema de vazamento de memória.

Caso usemos o padrão MVVM para criar um produto com SL como front-end, seria possível substituir a interface do usuário amanhã por outra interface do usuário (ASP.Net ou outra coisa). Meu entendimento é que o retrabalho seria substancial. O que a comunidade pensa?

Praticamente qualquer tecnologia que você escolher agora dará as mesmas dores de cabeça se você tentar substituir a interface do usuário. A menos que você possa separar totalmente a lógica do aplicativo da interface do usuário, haverá uma grande reformulação envolvida. O mínimo de dor seria se você o convertesse em um aplicativo WPF.

No entanto, esta declaração:

Capacidade de integração com dispositivos de hardware, como scanners biométricos, leitores biométricos etc.

leva-me a pensar que o uso de qualquer tecnologia baseada na Web vai causar problemas nessa área. Aqui eu concordo com Alex - uma aposta melhor pode ser escrever um aplicativo nativo. O uso do Java fornecerá interoperabilidade em várias plataformas, mas com o custo de não usar elementos da interface do usuário nativos.


Desculpe, se o objetivo da guia não estava claro. Estamos tentando abrir várias guias no mesmo aplicativo SL. O aplicativo base (sem guias internas) começou com 50 MB de memória no gerenciador de tarefas e, ao abrir cerca de 15 guias (com vários controles de formulário e nenhuma lógica de processamento), a memória disparou para 250 + MB. Ao fechar todas as guias, a utlização da memória foi reduzida, mas finalmente ficou em 150 MB. Portanto, o pensamento de ter várias guias em um aplicativo que pode funcionar 24 horas por dia (sem logout) está sendo repensado. Concordo totalmente com a dor de atualização da interface do usuário.
Tushax

1

Capacidade de integração com dispositivos de hardware, como scanners biométricos, leitores biométricos etc.

Este pode ser difícil e exigirá o modo OutOfBrowser para o Silverlight, você precisará usar o COM para que isso funcione e isso arruinará os requisitos de vários navegadores. COM funciona apenas no Internet Explorer.

IMHO, o requisito mais difícil para a aplicação WEB é trabalhar com dispositivos externos. Geralmente eles vêm com bibliotecas C, C ++ para trabalhar com eles, e você precisa de uma maneira de interoperabilidade em C, C ++.

Eu não acho que esses requisitos possam ser satisfeitos por qualquer tecnologia WEB, apenas se applets Java, mas não sei sobre os recursos de interoperabilidade de applets java. De qualquer maneira, eu pensaria em Java, miniaplicativo ou aplicativo de desktop, dependendo da capacidade de trabalhar com hardware.


Sim Alex, tivemos aqueles problemas com OCX (ActiveX) controles no passado: eles são IE única

0

Se JS não lhe interessar, eu utilizaria o Html5 + JS todo o caminho. Nenhum plug-in externo é necessário, o IE antigo pode ser usado para raciocinar com o Html5 através do JS e funcionará também em dispositivos móveis.

SL como o Flash requer um plug-in, não funciona em dispositivos móveis etc.

Se você gosta do padrão MVVM, pode se casar com o Html5 com o Knockout.js, uma biblioteca JS que usa o padrão MVVM, eu já o usei em alguns projetos e é incrível.

Portanto, para responder, fique longe do SL ou do Flash se desejar algo o mais compatível e o mais rápido possível.


1
O SilverLight funciona em alguns dispositivos móveis. Além disso, o JavaScript pode ser bastante impressionante, dependendo do cliente que o executa. Não é razoável pensar que HTML e JS sempre serão mais rápidos.
91111 Yuck

Como você diz, funciona em "alguns". Html5 + JS é muito mais compatível. Eu não sou um grande fã de JS, mas ele precisa de coisas dinâmicas do lado do cliente, é isso ou um plug-in, e os plugins dão uma compatibilidade pior.
Matteo Mosca

Como você obteria uma solução "pura" como essa sem plug-ins para trabalhar com hardware externo?
Yuck

O IMHO JS é um conjunto de habilidades de nicho que, com o tempo, pode ficar muito difícil de reter e manter. Concorde que precisaríamos de plug-ins para fazer interface com hardware externo.
Tushax
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.