如何识别Visual Studio GUI设计器生成的代码?

时间:2009-09-23 09:21:43

标签: c# visual-studio code-generation windows-forms-designer

当我们创建和设计Windows.Forms控件时,Visual Studio足以为我们生成大量代码。它还包含#region语句的大部分内容。 在较新的版本中,它还使用部分类将生成的代码与手动创建的代码分开。 开发人员应该只在某些区域编辑代码。

但是没有什么可以阻止我们以任何方式违反这一点。 我可以使用手工编辑,也可以是设计师制作的,或者在设计师不接触的区域进行手动编辑。但我想标记任何其他类型的编辑。

有谁知道可以做到这一点的实用工具? StyleCop规则也许? 我主要需要将它用于C#,Windows.Forms和Visual Studio 2003,2005和2008的组合。

2 个答案:

答案 0 :(得分:2)

现在,设计人员代码应该以{{1​​}}文件结尾。开发人员需要触摸它是非常罕见的。不幸的是,我不知道如何验证代码是由设计师真正生成的。如果它包含某种哈希值会很方便,但它并不是我所知道的......

鉴于现在说“不编辑设计器文件”是多么容易,你真的需要另一个系统吗?这不像你需要远离特定区域 - 它是整个文件超出界限。

答案 1 :(得分:1)

为什么不允许开发人员更改此代码?如果他们能够编写有效的代码,他们应该被允许这样做。如果他们无法编写有效的代码,可以说他们应该接受培训或解雇。

您只需将“it works”的含义扩展为“它在运行时以及在设计器中工作”。那有什么不对呢?

今天的gui设计师并没有很严格的限制,并且在“理解”由人类编写的代码方面做得很好。


还有真正的生成的代码,例如由某些xml规范,资源等生成的代码。这个代码是在构建时生成的,所以当它被更改时,这些更改在任何时候都会被撤消应用程序已建成。

设计人员不是真正的这种代码生成器。它们是一种“编码助手”,帮助开发人员更快地编写代码然后输入。但实际上应该可以手动编写相同类型的代码,尽管将自己限制在设计人员的能力范围内是一个合理的可维护性决策