Acompanhamento do progresso Globalização
-
02-07-2019 - |
Pergunta
Com o nosso próximo grande lançamento nós estamos olhando para globalizar nossa aplicação ASP.Net e me pediram para pensar em uma maneira de acompanhar o que o código já foi trabalhado neste esforço.
O meu pensamento era usar um atributo personalizado e colocá-lo em todas as classes que foram "fixos".
O que você acha?
Alguém tem uma idéia melhor?
Solução
Usando um atributo para determinar quais classes têm sido globalizado, então, necessitam de uma ferramenta para processar o código e determinar quais classes têm e não foram "processados", parece que está ficando um pouco complicado.
Um processo de acompanhamento de projeto mais tradicional provavelmente seria melhor - e não "poluir" o seu código com atributos / outra marcação que não têm significado funcional para além do final do projeto de globalização. Que tal ter um defeito gerado para cada classe que requer trabalho, e segui-lo dessa forma?
Outras dicas
O que sobre apenas contar ou listando as classes e então a classe trabalho de classe? Enquanto um atributo pode ser uma ideia interessante, eu considerá-lo como mais de engenharia. Globalizante não faz nada mais do que, bem, passando por cada classe e globalizar o código:)
Você quer terminar isso de qualquer maneira antes do próximo lançamento. Então vá em frente e apenas fazê-lo um por um, e lá você tem o seu progresso. Eu considero um defeito gerado para cada classe como muito também.
No meu último projeto, comecei a globalização completa um pouco tarde. Eu só fui através da lista de arquivos de código, de cima para baixo. Alfabeticamente no meu caso, e pasta após pasta. Então, eu sempre só tinha que lembrar qual arquivo I trabalhou por último. Isso funcionou muito bem para mim.
Edit: Outra coisa: No meu último projeto, globalizando principalmente envolvidos em movimento cordas codificado para arquivos de recursos, e re-geração de todo o texto quando o idioma muda em tempo de execução. Mas você também tem que pensar em coisas como formatos de número e afins. FxCop da Microsoft me ajudou com isso, já que assinala todas as conversões de número, etc., sem especificar uma cultura como violações. FxCop mantém o controle deste, então quando você resolveu tal violação a e re-ran FxCop, seria denunciar a violação como falta (ou seja resolvido). Isso é especialmente útil para estes mais difícil de ver as coisas.
Como sobre a escrita de um teste de unidade para cada página no aplicativo? O teste de unidade iria carregar a página e executar uma
foreach (System.Web.UI.Control c in Page.Controls)
{
//Do work here
}
Para a parte de trabalho, carregar diferentes configurações de globalização e ver se a propriedade .Text (ou propriedade relevante para o seu app) é diferente.
A minha suposição seria que nenhuma língua deve sair o mesmo em todos, mas os casos mais simples.
Use o conjunto de testes de unidade que com sucesso completo para acompanhar o seu progresso.