【问题标题】:How to highlight the differences between two versions of a text in .NET web app?如何突出显示 .NET Web 应用程序中两个版本的文本之间的差异?
【发布时间】:2009-03-06 21:10:13
【问题描述】:

我已经为我们的呼叫中心部门工作了大约 2 年的时间来支持 Web 应用程序。该应用程序是用 ASP.NET 3.5 和 SQL server 2005 数据库编写的。我被要求扩展呼叫详细信息部分,以允许座席编辑当前呼叫记录,并能够恢复到以前的版本。现在,这一切都很酷,但现在经理希望能够单击任何特定的注释并查看所有以黄色突出显示更改的编辑(如果某些内容被删除,他希望看到已删除的文本被划掉)。实际上,我需要的与 Stackoverflow 处理问题编辑的方式非常相似。我一直在考虑如何去做这件事,当然,在做了研究和谷歌搜索之后,我仍然不确定该走哪条路。我对 .NET 开发相当陌生。关于突出 UI 变化的最佳技术的任何想法?恐怕每次他们进行更改时我都必须存储整个笔记的副本,因为经理希望能够在发送之前轻松查看笔记并恢复到任何版本(不仅仅是最新版本)每月向我们的 VIP 客户报告电话报告。由于这个部门经常改变主意,我想确保新功能具有可扩展性且易于维护。任何想法将不胜感激。我真的只是在寻找能指引我正确方向的人;也许有一些有用的工具,谷歌查找中推荐的关键字等。

【问题讨论】:

  • 查看版本控制,尝试谷歌搜索,看看你得到了什么。如果它在 linux 系统上,您可以只制作两个修订版的补丁。 (查看 Patch 的工作原理,这可能也有帮助)
  • 感谢您的提示。顺便说一句,它在 Windows 机器上,IIS7。

标签: asp.net-3.5


【解决方案1】:

这将很难做到。

  1. 您需要一个“文本编辑器”控件,它不仅可以编辑文本,还可以告诉您进行了哪些更改。
  2. 然后您不仅需要存储最终文本字符串,还需要存储更改列表
  3. 然后,您需要能够显示文本和更改、使用删除线以及插入与更改的不同颜色
  4. 您不仅需要为单个用户的更改执行此操作,还需要将每个用户的更改存储在数据库中,并且需要能够同时显示所有更改.

你的经理应该真的确定他需要这个。

【讨论】:

    【解决方案2】:

    可以在Any decent text diff/merge engine for .NET? 找到一些为您进行差异分析的工具。

    这需要像你说的那样存储每个版本。这应该允许您以类似于 SO 的方式实现它。我似乎记得读过或听过 Jeff 提到它,但没能找到它,可能是在某个 SO 播客中。

    【讨论】:

      【解决方案3】:

      最简单的方法是存储每个修订版本的文本,然后当用户想要查看差异时,使用差异工具生成突出显示的文本。

      这里是一些 Javascript 差异代码: http://ejohn.org/projects/javascript-diff-algorithm/

      如果所有计算机都安装了 Word,您可以使用 Word 控件来完成此操作。 TortoiseSVN 在其程序目录中有脚本,可以获取两个 word 文档并生成一个突出显示更改的文档。要查看这个创建 c:\aaa.doc 和 bbb.doc,然后安装 TortoiseSVN 并运行:

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

      【讨论】:

        【解决方案4】:

        【讨论】:

          猜你喜欢
          • 2015-11-12
          • 2018-01-06
          • 1970-01-01
          • 2015-01-24
          • 2015-08-08
          • 2017-06-06
          • 1970-01-01
          • 1970-01-01
          • 2019-02-19
          相关资源
          最近更新 更多