动态创建控件与拖放

| 通过拖放到窗体中创建控件(图片框,按钮,文本框等)与在C#或C ++中为ASP.NET代码动态创建控件之间,在性能,内存使用等方面是否存在差异?专业人士首选哪种方法?
已邀请:
通常,专业人员通过编写代码来设计表单。 但是在运行时或编译时所需的控件实际上取决于情况或需求,因此这两种方法之间没有任何性能方面的关系。 通常,初学者应通过在表单上拖放控件来设计表单,并应遵守生成的代码。
拖放时,Visual Studio中的Designer实际上会为您生成代码,因此性能是相同的。我不建议动态地执行此操作,除非您需要执行此操作。
Visual Studio中的“拖放”只是为您创建代码。生成的可执行文件是根据代码构建的,并且编译器并不关心代码是由您本人,由Visual Studio还是由受过训练的猴子编写的。 是的,Visual Studio中的图形设计器可能会向您本来不会自己添加的HTML / ASP元素添加其他属性,但是我怀疑这样做是否可以带来可观的变化。性能。 经验丰富的开发人员通常喜欢 手工制作他们的代码或 使用图形设计器并仔细检查创建的代码(“ split screen”视图非常有用) 因为不必要的属性使代码难以维护。
动态定义。 如果“动态地”是指手动编写标记并手动声明控件并连接事件,则运行时性能没有差异。假设您正确手动创建了事物,则编译结果是相同的。 (通过手动创建尽可能少的功能来完成工作,甚至可能会稍微提高性能,但这很少见,因为编译器非常擅长优化事情。我什至无法真正想到一个示例但是,本质上,手动创建代码并让Visual Studio创建代码都可以产生相同的输出。 如果“动态地”是指在运行时实例化控件并在运行时进行连接等,则可能会导致性能下降。同样,该框架非常擅长保持高效。如果您完全陷入反思,那么您可能会放慢脚步。但是总的来说,除非您尝试使自己的对象创建变得非常聪明,或者谈论的是活动频繁的站点(毫秒数很快就增加了),否则并不会带来很大的成功。
据我所知,就内存或性能而言,没有什么区别,但是有区别。例如,非动态控件(您引用的拖放)在Page.Init中实例化,而动态添加的控件可能来自单击按钮,Page.Load等。 只需了解初始化差异以及动态控件的ViewState处理方式即可。

要回复问题请先登录注册