2009-03-06 9 views
4

Je supporte une application web au travail pour notre centre d'appels depuis environ 2 ans maintenant. L'application est écrite dans ASP.NET 3.5 avec la base de données SQL Server 2005. Il m'a été demandé d'étendre la section Détail de l'appel pour permettre aux agents de modifier la note d'appel en cours avec la possibilité de revenir à la version précédente. Maintenant, tout est cool mais maintenant le manager veut pouvoir cliquer sur une note particulière et voir toutes les modifications avec les changements surlignés en jaune (et si quelque chose a été supprimé, il veut VOIR le texte supprimé barré). En fait, ce dont j'ai besoin est très similaire à la façon dont Stackoverflow gère les modifications sur leurs questions. J'ai réfléchi à la façon d'y parvenir et après avoir fait de la recherche et de Google, bien sûr, je ne sais toujours pas quelle route prendre. Je suis assez nouveau pour le développement .NET. Des idées sur la meilleure technique pour mettre en évidence les changements dans l'interface utilisateur? J'ai peur de devoir stocker une copie de la note entière chaque fois qu'ils font un changement parce que le gestionnaire veut être capable de revoir facilement les notes et revenir à n'importe quelle version (pas seulement la plus récente) avant d'envoyer le rapport d'appel mensuel à nos clients VIP. Depuis que ce département OFTEN change d'avis sur les choses, je veux m'assurer que la nouvelle fonctionnalité est évolutive et facile à maintenir. Toutes les idées seraient grandement appréciées. Je cherche vraiment quelqu'un pour me diriger dans la bonne direction; peut-être il ya quelques outils là-bas qui peuvent être utiles, mots-clés recommandés dans Google recherche, etcComment mettre en évidence les différences entre deux versions d'un texte dans l'application Web .NET?

+0

Regardez dans la version de contrôle, essayez googler et voir ce que vous obtenez.Si c'est sur un système Linux, vous pouvez simplement faire un patch des deux révisions. (Regardez comment Patch fonctionne, cela pourrait aider aussi) – Malfist

+0

Merci pour le conseil. BTW, c'est sur une machine Windows, IIS7. –

Répondre

2

Ce sera difficile à faire.

  1. Vous aurez besoin d'un contrôle "éditeur de texte" qui peut non seulement éditer le texte, mais qui peut également vous indiquer les modifications apportées.
  2. Vous devez ensuite stocker non seulement la chaîne de texte finale, mais également la liste des modifications
  3. Vous devrez ensuite pouvoir afficher le texte plus les modifications, en utilisant des ratures, et des couleurs différentes pour les insertions vs
  4. Vous aurez besoin de faire cela non seulement pour les changements d'un seul utilisateur, mais vous aurez besoin de stocker les changements de chaque utilisateur dans la base de données, et devrez être capable d'afficher tous les changements, tous immediatement.

Votre manager doit être vraiment qu'il en a vraiment besoin.

1

Quelques outils pour faire la diff pour vous peut être trouvé à Any decent text diff/merge engine for .NET?.

Cela impliquerait de stocker chaque version comme vous le dites. Cela devrait vous permettre de l'implémenter de la même façon que SO. Je me rappelle avoir lu ou entendu Jeff le mentionner, mais je n'ai pas réussi à le trouver, probablement dans l'un des podcasts SO.

1

Le plus simple serait de stocker le texte pour chaque révision, puis lorsque l'utilisateur veut voir le diff utiliser un outil de diff pour générer le texte en surbrillance.

Voici un code diff Javascript: http://ejohn.org/projects/javascript-diff-algorithm/

Si tous les ordinateurs ont installé Word, vous pourrez peut-être utiliser un contrôle Word pour y parvenir. TortoiseSVN a des scripts dans son répertoire de programme qui peut prendre deux documents de mot et produire un document avec des changements mis en évidence. Pour voir ce créer c: \ aaa.doc et bbb.doc, puis installez TortoiseSVN et exécutez:

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