2012-02-02 37 views
3

这是一个性能问题,也是一个重构问题。用户控制重构

我有一个.NET用户控件(UCA.ascx)...它反过来在内部使用5个其他用户控件。 这些用户控件中的每一个都运行超过2000行代码。

网页首先加载UCA.ascx ...然后根据UCA.ascx中的操作动态加载其他5个用户控件。 这些用户控件的代码隐藏使用DTO并在其中包含业务逻辑。

主要问题是解决长时间加载和延迟操作时间(由于回发)。要解决这个问题,我需要首先理解代码。

  • 那么,有没有什么应该,什么不应该在 用户控件代码隐藏代码库的指导?

  • 是否有工具驱动或更简单的方法来重构大型笨重的用户控件?

+3

特别是如此大量的代码,你不应该只是环顾四周寻找不好的东西并修复它们。在开始解决真正的问题之前,这可能会占用你相当长的一段时间。您需要对代码进行概要分析,以查看其花费的时间并专注于优化*那*。 – Servy 2012-02-02 17:25:28

回答

1
  • 理想情况下,应该有没有在表示层业务逻辑或数据访问逻辑可言。表示层中的代码应仅由检索业务对象的代码组成,并将它们绑定到页面上的相应控件。

  • ReSharper拥有一些内置的重构工具,您可以从代码库中提取方法,但一般来说,像这样重构是非常微妙的,应该仔细研究,仔细考虑如何接近重新设计。

正如你重构,尽量保持SOLID原则记下,并添加单元测试,无论它是可行的。