我曾考虑使用Visual C#Windows窗体设计器来设计UI,让我专注于程序功能和逻辑。(我以前用手工制作UI)。那么,使用Designer而不是手工编码UI会导致额外的开销吗?(这也会使我的代码与MONO不兼容吗?)
开销:任何额外的内存,额外的启动时间,效率和性能的降低。
使用设计器时唯一会发生的事情是,表单上项的初始化将在.designer.cs文件中为您生成(InitializeComponent方法)。这不应该以任何方式影响性能,并且只有在构造表单时才会发生。
因此,除非您有一些特定的需求或布局计算,否则我不会手动完成,但我会使用设计器。它既快速又直观。您可以在不需要编译和运行应用程序的情况下查看表单布局。
我在手工创建一些布局逻辑方面有一些经验,但我需要动态创建的控件(设计时未知的控件数量)。除此之外,我不明白你为什么不使用设计器。
至于MONO部分,我不认为它是不兼容的。设计者只是简单地生成代码,而不生成其他代码。我不知道MONO功能的完整列表,但由于代码生成基本上使用布局逻辑和控件的一些其他属性,我不知道为什么MONO不能做到这一点。但我没有使用Mono的实际经验,所以应该有人来证实。
编辑:
还有一种情况是,某些控件(尤其是自定义控件)的初始化必须按特定顺序初始化。这样就不能依赖于设计器对这些控件的初始化。但是,对于顺序无关紧要的所有其他控件,仍然可以使用设计器。
我认为手工创建UI会导致更多的开销,比如:花更多的时间在使用好的工具(比如Winforms设计器)可以更高效地完成的事情上。。。
据我所知,使用Windows窗体设计器只需生成通常手动编码的确切代码。唯一令人恼火的问题是,当您想要添加任何额外的代码或更改任何生成的代码时(因为它"锁定"了代码,然后您只能在Visual Studio之外更改它)。