Инструмент для преобразования встроенного C # в код за файлом - PullRequest
4 голосов
/ 11 марта 2010

У меня есть несколько устаревших веб-элементов управления (ascx), которые содержат огромное количество встроенного C #. Формы содержат ряд повторяющихся и повторяющихся кодов. Наш первый план состоит в том, чтобы переместить код в код для каждого файла, а затем выполнить рефакторинг и т. Д.… Мы делали это для обновления клиента до последней версии его cms

В настоящий момент нам нужно будет вручную скопировать и вставить сотни файлов, создать код, скопировать код, добавить пространства имен на основе импорта на стороне клиента, а затем выполнить любую операцию

Кто-нибудь, ПОЖАЛУЙСТА, знает об инструменте, который может сделать большую часть этой работы за нас?

Спасибо

Ответы [ 5 ]

1 голос
/ 14 марта 2010

Инструментарий для реинжиниринга программного обеспечения DMS разработан для поддержки создания инструментов автоматического изменения массы.

Он может анализировать HTML и C # (и создавать соответствующие AST) и может быть настроен для анализа файлов .ascx. С деревьями разбора, вероятно, можно получить желаемые результаты. Это просто ? Нет, это практично? Да , если объем кода, который вы реинжинирируете, значителен, как кажется в вашем случае.

0 голосов
/ 14 июня 2010

Я думаю, что вам лучше всего взглянуть на инструменты Codesmith или просто шаблоны T4 в целом ... вам не нужно писать специальное приложение ... хотя похоже, что кто-то из CodeProject сделал именно это: http://www.codeproject.com/KB/aspnet/InlineCodeVSCodeBehind.aspx?msg=997793

0 голосов
/ 11 марта 2010

Используйте такой язык, как Perl или Rebol, который может выполнять синтаксический анализ. Ребол самый простой.

0 голосов
/ 11 марта 2010

Resharper имеет множество функций для перемещения и определения местоположения кода для различных рефакторингов. Я не установил его на компьютере, на котором я сейчас нахожусь, поэтому не могу проверить, но он может хотя бы ускорить процесс и сделать его более полным доказательством, даже если он не может быть полностью автоматизированы.

0 голосов
/ 11 марта 2010

Я думаю, что ваша лучшая надежда здесь - создать собственную утилиту конвертации. Я не знаю ни одного инструмента, который бы делал это из коробки.

...