2012-02-02 91 views
3

這是一個性能問題,也是一個重構問題。用戶控制重構

我有一個.NET用戶控件(UCA.ascx)...它反過來在內部使用5個其他用戶控件。 這些用戶控件中的每一個都運行超過2000行代碼。

網頁首先加載UCA.ascx ...然後根據UCA.ascx中的操作動態加載其他5個用戶控件。 這些用戶控件的代碼隱藏使用DTO並在其中包含業務邏輯。

主要問題是解決長時間加載和延遲操作時間(由於回發)。要解決這個問題,我需要首先理解代碼。

  • 那麼,有沒有什麼應該,什麼不應該在 用戶控件代碼隱藏代碼庫的指導?

  • 是否有工具驅動或更簡單的方法來重構大型笨重的用戶控件?

+3

特別是如此大量的代碼,你不應該只是環顧四周尋找不好的東西並修復它們。在開始解決真正的問題之前,這可能會佔用你相當長的一段時間。您需要對代碼進行概要分析,以查看其花費的時間並專注於優化*那*。 – Servy 2012-02-02 17:25:28

回答

1
  • 理想情況下,應該有沒有在表示層業務邏輯或數據訪問邏輯可言。表示層中的代碼應僅由檢索業務對象的代碼組成,並將它們綁定到頁面上的相應控件。

  • ReSharper擁有一些內置的重構工具,您可以從代碼庫中提取方法,但一般來說,像這樣重構是非常微妙的,應該仔細研究,仔細考慮如何接近重新設計。

正如你重構,儘量保持SOLID原則記下,並添加單元測試,無論它是可行的。