【问题标题】:Tracking Globalization progress追踪全球化进程
【发布时间】:2008-09-29 20:07:32
【问题描述】:

在我们的下一个主要版本中,我们正在寻求全球化我们的 ASP.Net 应用程序,我被要求想出一种方法来跟踪在这项工作中已经完成了哪些代码。

我的想法是使用自定义属性并将其放置在所有已“修复”的类上。

你怎么看?

有人有更好的主意吗?

【问题讨论】:

    标签: c# globalization


    【解决方案1】:

    使用属性来确定哪些类已经被全球化,然后需要一个工具来处理代码并确定哪些类已经“处理”了和没有被“处理”,看起来有点复杂。

    更传统的项目跟踪流程可能会更好 - 并且不会使用在全球化项目结束后没有功能意义的属性/其他标记“污染”您的代码。为每个需要工作的类提出一个缺陷并以这种方式跟踪它怎么样?

    【讨论】:

    • 如果你使用属性方法,你可能会使用 NDepend、FxCop、Gendarme 等来计算哪些类有属性,哪些没有。您也可以仅对某些程序集执行此操作(使用程序集属性)。
    【解决方案2】:

    只计算或列出班级然后​​按班级工作呢?虽然属性可能是一个有趣的想法,但我认为它是过度设计的。全球化只不过是遍历每个类并全球化代码:)

    无论如何,您都想在下一个版本之前完成它。因此,继续进行,一件一件地做,您就有了进步。我也认为为每个班级提出的缺陷太多了。

    在我的上一个项目中,我开始全面全球化的时间有点晚。我只是从上到下浏览了代码文件列表。在我的情况下按字母顺序排列,一个文件夹接一个文件夹。所以我总是只需要记住我上次处理的文件。这对我来说效果很好。

    编辑:另一件事:在我的上一个项目中,全球化主要涉及将硬编码的字符串移动到资源文件,并在运行时语言更改时重新生成所有文本。但是您还必须考虑数字格式等问题。微软的 FxCop 帮我解决了这个问题,因为它标记了所有数字转换等,而没有将文化指定为违规。 FxCop 会对此进行跟踪,因此当您解决此类违规并重新运行 FxCop 时,它会将违规报告为缺失(即已解决)。这对于这些难以看到的东西特别有用。

    【讨论】:

      【解决方案3】:

      为应用中的每个页面编写一个单元测试怎么样?单元测试将加载页面并执行

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

      对于工作部分,加载不同的全球化设置并查看 .Text 属性(或您的应用的相关属性)是否不同。

      我的假设是,除了最简单的情况外,任何语言都不应出现相同的情况。

      使用成功完成的单元测试集来跟踪您的进度。

      【讨论】:

        猜你喜欢
        • 2019-11-29
        • 1970-01-01
        • 1970-01-01
        • 2012-06-03
        • 1970-01-01
        • 2011-05-27
        • 2018-05-31
        • 2017-03-26
        • 1970-01-01
        相关资源
        最近更新 更多