Domanda

Con la nostra prossima versione principale stiamo cercando di globalizzare la nostra applicazione ASP.Net e mi è stato chiesto di pensare a un modo per tenere traccia di quale codice è già stato lavorato in questo sforzo.

Il mio pensiero era di usare un attributo personalizzato e posizionarlo su tutte le classi che sono state "fissate".

Cosa ne pensi?

Qualcuno ha un'idea migliore?

È stato utile?

Soluzione

L'uso di un attributo per determinare quali classi sono state globalizzate richiederebbe quindi uno strumento per elaborare il codice e determinare quali classi sono state e non sono state " elaborate " ;, sembra che stia diventando un po 'complicato.

Un processo di tracciamento del progetto più tradizionale sarebbe probabilmente migliore e non "inquinerebbe" il tuo codice con attributi / altri markup che non hanno alcun significato funzionale oltre la fine del progetto di globalizzazione. Che ne dici di avere un difetto sollevato per ogni classe che richiede lavoro e di rintracciarlo in quel modo?

Altri suggerimenti

Che ne dici di contare o elencare le classi e quindi lavorare classe per classe? Mentre un attributo può essere un'idea interessante, lo considero troppo ingegnerizzato. La globalizzazione non fa altro che, beh, passare attraverso ogni classe e globalizzare il codice :)

Lo vuoi finire comunque prima della prossima versione. Quindi vai avanti e fallo uno per uno, e lì hai i tuoi progressi. Considererei anche un difetto sollevato per ogni classe.

Nel mio ultimo progetto, ho iniziato la piena globalizzazione un po 'tardi. Ho appena esaminato l'elenco dei file di codice, dall'alto verso il basso. In ordine alfabetico nel mio caso, e cartella dopo cartella. Quindi ho sempre dovuto solo ricordare su quale file ho lavorato l'ultima volta. Ha funzionato abbastanza bene per me.

Modifica: Un'altra cosa: nel mio ultimo progetto, la globalizzazione prevedeva principalmente lo spostamento di stringhe codificate in file di risorse e la rigenerazione di tutto il testo quando la lingua cambia in fase di esecuzione. Ma dovrai anche pensare a cose come i formati numerici e simili. FxCop di Microsoft mi ha aiutato in questo, poiché segna tutte le conversioni numeriche ecc. Senza specificare una cultura come violazioni. FxCop tiene traccia di ciò, quindi quando si risolve una violazione del genere e si esegue nuovamente FxCop, la violazione viene segnalata come mancante (ovvero risolta). Ciò è particolarmente utile per queste cose più difficili da vedere.

Che ne dici di scrivere un test unitario per ogni pagina nell'app? Il test unitario carica la pagina ed esegue un

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

Per la parte di lavoro, carica impostazioni di globalizzazione diverse e verifica se la proprietà .Text (o la proprietà pertinente per la tua app) è diversa.

La mia ipotesi sarebbe che nessuna lingua dovrebbe uscire allo stesso modo in tutti, tranne nei casi più semplici.

Usa il set di unit test completati con successo per tenere traccia dei tuoi progressi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top