Отслеживание прогресса глобализации - PullRequest
1 голос
/ 30 сентября 2008

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

Я думал использовать собственный атрибут и размещать его на всех классах, которые были «исправлены».

Что ты думаешь?

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

Ответы [ 3 ]

1 голос
/ 30 сентября 2008

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

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

0 голосов
/ 09 октября 2008

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

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

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

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

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

0 голосов
/ 30 сентября 2008

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

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

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

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

...