2011-08-31 20 views
2

在我的公司中,在所有現有項目中,他們將頁面內容和控件放在用戶控件(Asp.NET)中,然後將用戶控件放在頁面上。把所有的頁面內容放到網頁用戶控件中是一個好習慣嗎?

除了用戶控件可以使用放在其他頁面上的事實嗎?還有什麼好的理由嗎?他們還從實際頁面中獲得用戶控件的一些屬性和方法。

  • 控制
    • Login.ascx
  • 的Login.aspx

感謝。

+0

你能告訴我們一些代碼嗎? –

+0

你有沒有問過你公司的人爲什麼要這樣做? – patmortech

+0

只要我不能提出更好的解決方案,或者至少我不知道有關於他們爲什麼可以沿着這條路徑的任何基本知識,我不想要。 – Tarik

回答

2

我已經看到,該技術用於替代1.1版本(母版頁面)之前的系統的母版頁,但總的來說,我不認爲這是一個非常明智的設計。看起來它會使系統比需要變得更復雜,而且幾乎沒有任何理由去證明它的正確性。

此設計的另一個問題是,它使得用戶控件在傳統意義上使用起來更加困難,因爲您不能將相同程序集的控件嵌套到彼此中,至少在用戶控件註冊在web.config中。任何嵌套的cotnrols都必須以編程方式在後面的代碼中創建,或者在使用該控件的每個頁面的指令中註冊,從而創建更多的冗餘和更多的卷積。

最大的問題是爲什麼?你從這種方法中獲得了什麼?

  • 設計更靈活嗎?
  • 系統更快嗎?
  • 設計更容易理解嗎?
  • 設計更容易維護嗎?
  • 是否需要更少的代碼?

所有這些問題的答案是否定的,這對我來說清楚地表明設計缺乏。這種技術不利於設計,但阻礙了它。爲什麼?我想不出一個實質性的好處。

希望這會有所幫助。只是我的兩分錢。

1

是的,這裏有一個翻頁,其中一個帶有多個用戶控件的頁面在一個單獨的文件中具有每個控件的邏輯,而不是在文件後面的一個代碼中混雜起來,例如。想象一下幾個控件中的代碼一起壓縮在一個文件中。如果你還沒有看到意大利麪代碼是一個重載的代碼,那麼在一個文件中做太多的事情應該感激不盡。我見過很多。

+0

這很有道理。但實際上,他們似乎甚至沒有在同一頁面中使用兩個用戶控件,這就是爲什麼它對我來說看起來沒有必要,但也許爲了進一步發展,他們敞開了大門。 – Tarik

相關問題