Я хотел бы показать различия между версиями одного и того же контента. Изначально я развернул свой собственный WebControl, однако алгоритм дифференцирования, который я придумал, был немного наивен.
Кто-нибудь знает какой-либо код .Net или WebControl в Интернете, который может быть полезен? Реализация, которую использует stackoverflow, - это именно то, что я ищу, например:

Обновление: 12.12.2008 Я заключил реализацию jsdiff в автономную сборку веб-элементов управления и загрузил ее в галерею кода MSDN Различие текста и подсветка синтаксиса ASP.Net WebControls.
Обновление: 12.11.2008 Наткнулся на следующий библиотека различий javascript. Будем экспериментировать, оборачивая его в настраиваемый WebControl. Вывод похож на тот, который используется stackoverflow:






Я использую указанную вами js lib.
Включите файл .js в тег скрипта, добавьте на страницу именованный asp: Literal
<asp:Literal ID = "litCompare" runat = "server">
</asp:Literal>
и добавьте в код программной части:
litComparison.Text = "<pre id=\"lbDiffPre\" class=\"code\"> </pre>";
ClientScript.RegisterStartupScript(GetType(), "calccompare",
@"document.getElementById('lbDiffPre').innerHTML =
diffString(document.getElementById('" + edit1.ClientID + "').value,
document.getElementById('" + edit2.ClientID + "').value).
replace(/\r\n/g, '<br>';", true);
В моем случае у меня было 2 элемента управления, которые также отображают исходные значения, вы можете захотеть включить строки буквально в функцию diffString (). Дополнительная функция replace () преобразует \ r \ n разрывы строк в разрывы строк HTML.
Полагаю, это делается полностью на стороне клиента? Мне было бы интересно провести различную работу на сервере. Дифференциал, который может отображать ограниченный «контекст» (а не весь файл), может различать большие файлы, не передавая слишком много клиенту.