Como destacar as diferenças entre duas versões de um texto no aplicativo .NET Web?

StackOverflow https://stackoverflow.com/questions/620431

  •  05-07-2019
  •  | 
  •  

Pergunta

Estou apoiando um aplicativo da Web no trabalho para nossa unidade de call center há cerca de 2 anos. O aplicativo está escrito no ASP.NET 3.5 com o banco de dados SQL Server 2005. Fui solicitado a expandir a seção de detalhes de chamadas para permitir que os agentes editem a nota de chamada atual com a capacidade de voltar à sua versão anterior. Agora, isso é tudo legal, mas agora o gerente deseja poder clicar em qualquer nota específica e ver todas as edições com alterações destacadas em amarelo (e se algo foi excluído, ele quer ver o texto excluído cruzado). Na verdade, o que eu preciso é muito parecido com a forma como o StackOverflow lida com edições em suas perguntas. Eu tenho pensado em como fazer isso e depois de pesquisar e no Google, é claro, ainda não tenho certeza de qual caminho seguir. Sou bastante novo no desenvolvimento .NET. Alguma idéia da melhor técnica para destacar as mudanças na interface do usuário? Receio ter que guardar uma cópia de toda a nota cada vez que eles fazem uma alteração porque o gerente deseja poder revisar facilmente as notas e voltar a qualquer versão (não apenas a mais recente) antes de enviar o Ligue mensalmente Relatório para nossos clientes VIP. Como esse departamento geralmente muda de idéia sobre as coisas, quero garantir que a nova funcionalidade seja escalável e fácil de manter. Quaisquer idéias seriam muito apreciadas. Estou realmente apenas procurando alguém para me apontar na direção certa; Talvez haja algumas ferramentas por aí que possam ser úteis, palavras -chave recomendadas no Google Pesquisa, etc.

Foi útil?

Solução

Isso será difícil fazer para.

  1. Você precisará de um controle de "editor de texto" que não apenas possa editar o texto, mas o que também pode dizer quais alterações foram feitas.
  2. Você precisa armazenar não apenas a sequência de texto final, mas também a lista de mudanças
  3. Você precisará exibir o texto mais alterações, usando greves e cores diferentes para inserções vs. alterações
  4. Você precisará fazer isso não apenas para as alterações de um único usuário, mas precisará armazenar as alterações de cada usuário no banco de dados e precisará exibir todas as alterações, de uma só vez.

Seu gerente deve ser verdade Claro que ele precisa disso.

Outras dicas

Algumas ferramentas para fazer o diferencial para você pode ser encontrado em Algum mecanismo decente de texto decente/mescla para .NET?.

Isso implicaria armazenar todas as versão como você diz. Isso deve permitir que você o implemente da mesma forma. Parece que me lembro de ler ou ouvir Jeff mencionar isso, mas não foi capaz de encontrá -lo, provavelmente em um dos podcasts.

O mais fácil seria armazenar o texto para cada revisão e, quando o usuário quiser ver o diferencial, use uma ferramenta DIFF para gerar o texto destacado.

Aqui está algum código de diff JavaScript:http://ejohn.org/projects/javascript-diff-algorithm/

Se todos os computadores tiverem o Word instalado, você poderá usar um controle de palavras para fazer isso. O TortoisesVN possui scripts em seu diretório de programas, que podem levar dois documentos do Word e produzir um documento com alterações destacadas. Para ver isso, crie C: aaa.doc e bbb.doc, instale o Tortoisesvn e execute:

wscript.exe "C:\program files\tortoisesvn\Diff-Scripts\diff-doc.js" c:\aaa.doc c:\bbb.doc //E:javascript

Eu acho que você deveria ver http://en.wikipedia.org/wiki/revision_control

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top