Qual Web Framework usar para implementar a IU do tipo diff?[Fechado]
-
28-10-2019 - |
Pergunta
Qual Web Framework você usaria para realizar a interface do seguinte aplicativo de desktop que executa a comparação lado a lado de textoMais exatamente o que está na IU:
- visualizador de documentos com divisor e realce
- carregamento lento, pois os documentos podem ser muito grandes (10 MB cada)
- barra de navegação esquerda com marcas coloridas e janela de rolagem
- rolagem sincronizada
- teclas de atalho para navegação (por exemplo, Alt + ArrowDown= próxima diferença)
Por favor, um framework por resposta.Forneça prós / contras da abordagem.
Observação: esta pergunta é uma divisão de alternativa Vaadin para IU muito carregada , onde a comunidade tentou resolver meus problemas com Vaadin, mas não ouvi nenhuma análise real.
Solução
No seu caso, você não tem muita escolha.Não importa qual framework / linguagem / compilador etc. você vá usar, você estará codificando muitas coisas de baixo nível. Portanto, sua arma de escolha será JavaScript ou GWT (a escolha depende do que você prefere / tem mais experiência).Mas, em qualquer caso, você trabalhará muito com o DOM em si, o uso de alguma estrutura de componente está fora de questão, você não conseguirá obter nenhum desempenho com a estrutura de componente de alto nível.
Portanto, minha sugestão é usar JavaScript (com Google Closure para algumas partes comuns) ou algo assimmais o que compila em JS ( GWT , CoffeScript ).
Outras dicas
Acho que o Wicket pode resolver o problema, usando-o para reutilizar o componente usado para visualizar as duas versões da entrada.Você terá que escrever um componente para cada elemento que você descreve e escrever Javascript suficiente para vincular as coisas:
- Rolagem sincronizada
- Suporte para teclas de atalho
O carregamento lento pode ser tratado por um comportamento do Wicket, a parte mais complicada é a visão geral global com a coloração correta. Será necessária uma boa sessão de brainstorming para ser realmente eficiente.
Espero que possa ajudar ...
Para tal aplicativo, webapp (inclusive com estrutura) não é um bom candidato.Este é normalmente um aplicativo de desktop!