2008-09-29 3 views
1

С нашей следующей крупной версией мы стремимся глобализовать наше приложение ASP.Net, и меня попросили подумать над тем, как отслеживать, какой код уже работал в этих усилиях.Отслеживание прогресса глобализации

Моя мысль заключалась в использовании пользовательского атрибута и его размещения на всех классах, которые были «исправлены».

Как вы думаете?

У кого-нибудь есть идея?

ответ

1

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

Более традиционный процесс отслеживания проектов, вероятно, будет лучше - и не будет «загрязнять» ваш код атрибутами/другой разметкой, которые не имеют функционального значения после завершения проекта глобализации. Как насчет наличия дефекта для каждого класса, который требует работы, и отслеживания его таким образом?

+0

Если вы используете подход атрибута, вы можете использовать что-то вроде NDepend, FxCop, Gendarme и т. Д., Которые будут подсчитывать, какие классы имеют атрибут, а какие нет. Вы также можете сделать это только для определенных сборок (используя атрибуты сборки). – 2008-11-03 04:50:18

0

Как насчет того, чтобы просто подсчитывать или перечислять классы, а затем работать класс за классом? Хотя атрибут может быть интересной идеей, я бы расценил ее как слишком переработанную. Глобализация не делает ничего, кроме того, проходя через каждый класс и глобализируя код :)

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

В моем последнем проекте, я начал полную глобализацию немного поздно. Я просто просмотрел список файлов кода, сверху вниз. По алфавиту в моем случае и папке после папки. Поэтому мне всегда приходилось запоминать, в каком файле я работал. Это работало очень хорошо для меня.

Редактировать: Другое: В моем последнем проекте глобализация в основном включала перемещение жестко закодированных строк в файлы ресурсов и повторное создание всего текста при изменении языка во время выполнения. Но вам также придется думать о вещах, таких как форматы чисел и тому подобное. FxCop от Microsoft помог мне в этом, так как он отмечает все числовые преобразования и т. Д., Не указав культуру как нарушения. FxCop отслеживает это, поэтому, когда вы разрешили такое нарушение и перезапустили FxCop, оно сообщило бы о нарушении как отсутствующее (то есть решение). Это особенно полезно для этих более сложных вещей.

0

Как насчет написания единичного теста для каждой страницы в приложении? Тест блока будет загрузить страницу и выполнить

foreach (System.Web.UI.Control c in Page.Controls) 
{ 
    //Do work here 
} 

Для рабочей части, загружать различные параметры глобализации и посмотреть, если свойство .Text (или соответствующее имущество для вашего приложения) отличается.

Мое предположение заключалось в том, что ни один язык не должен выходить одинаково во всех, кроме самых простых случаев.

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

Смежные вопросы