追踪全球化进程
在我们的下一个主要版本中,我们希望全球化ASP.Net应用程序,因此有人要求我考虑一种方法来跟踪在此工作中已经处理过的代码。
我的想法是使用自定义属性,并将其放置在所有已"修复"的类上。
你怎么认为?
有谁有更好的主意吗?
解决方案
使用一个属性来确定哪些类已经被全球化,这将需要一个工具来处理代码并确定哪些类已经被"处理",这似乎变得有些复杂。
较传统的项目跟踪过程可能会更好,并且不会使用在全球化项目结束后没有任何功能含义的属性/其他标记来"污染"代码。为需要工作的每个班级提出一个缺陷并以这种方式进行跟踪怎么样?
仅计算或者列出班级,然后按班级上班呢?虽然属性可能是一个有趣的想法,但我认为它是过度设计的。全球化无非就是遍历每个类并全球化代码:)
无论如何,我们都想在下一个版本之前完成它。因此,继续做下去,一个接一个地完成,就可以取得进展。我认为每个班级提出的缺陷也太多了。
在上一个项目中,我开始全面全球化有点晚了。我只是从头到尾浏览了代码文件的列表。就我而言,按字母顺序,一个接一个的文件夹。因此,我始终只需要记住我上次处理的文件。这对我来说效果很好。
编辑:另一件事:在我的上一个项目中,全球化主要涉及将硬编码的字符串移动到资源文件,以及在语言在运行时更改时重新生成所有文本。但是,我们还必须考虑数字格式之类的问题。微软的FxCop为我提供了帮助,因为它标记了所有数字转换等,而没有将文化指定为违规。 FxCop会跟踪此情况,因此当我们解决此类违规并重新运行FxCop时,它将报告该违规为丢失(即已解决)。这对于这些难以看清的事情特别有用。
如何为应用程序中的每个页面编写单元测试?单元测试将加载页面并执行
foreach (System.Web.UI.Control c in Page.Controls) { //Do work here }
对于工作部分,请加载不同的全球化设置,并查看.Text属性(或者应用程序的相关属性)是否不同。
我的假设是,除了最简单的情况外,所有语言都不会出现相同的情况。
使用成功完成的一组单元测试来跟踪进度。