2011-06-27 35 views
1

我想使用Visual C#Windows窗體設計器來設計UI,讓我專注於程序功能和邏輯。 (我之前用手工製作UI)。那麼,使用設計器而不是編碼UI手工造成額外的開銷? (這也會使我的代碼與MONO不兼容嗎?)使用Windows窗體設計器開發程序的UI是否會導致任何開銷?

OVERHEAD:任何額外的內存,額外的啓動時間,效率和性能下降。

+1

定義「開銷」。通常通過設計人員定製是有限的。作爲一個側面說明,我會推薦WPF和XAML,如果你可以改變這些。 – Raynos

+0

我會,如果他們被MONO支持。不幸的是MONO只支持.NET 2.0或更早的版本。而且由於我使用Win XP SP2,所以.NET 2.0以後的版本都不會運行。 (除了.NET 4.0,但還沒有任何IDE)。 – ApprenticeHacker

+1

此外,儘可能地將邏輯與UI分離是一種非常好的做法,因此即使手動編程,也可以將其在另一個功能(可能與設計人員一樣)中分離爲單獨的文件(部分類)。我猜想這種分離確實是Raynos建議的WPF/XAML。 –

回答

3

使用設計器時發生的唯一情況是,將在.designer.cs文件中爲您(InitializeComponent方法)生成表單上項目的初始化。這不應以任何方式影響性能,只有在構建表單時纔會發生。

所以,除非你有一些特定需求或佈局計算,我也不會用手工做,但我會使用設計。它快速,直觀。你可以看到表單佈局,而不需要編譯和運行應用程序。

我在手動創建佈局邏輯方面有一些經驗,但我需要動態創建的控件(設計時未知的控件數量)。除此之外我不明白你爲什麼不使用設計師

至於MONO部分,我不認爲它會不兼容。設計師只需簡單地生成代碼,沒有別的。我不知道MONO功能的完整列表,但是由於代碼生成siply使用佈局邏輯和控件的一些其他屬性 - 我不明白MONO如何不能做到這一點。但是我對Mono沒有真正的經驗,所以有人應該證實。

編輯:

也有其一定的管制(特別是如果自定義控件)的初始化必須在一定的順序進行初始化的情況。那麼你不能依賴設計者對這些控件的初始化。但是,您仍然可以將Designer用於訂單無關緊要的所有其他控件。

2

我認爲手工創建的UI導致更多的開銷,因爲:對的東西,可以通過使用一個很好的工具,喜歡的WinForms設計師更有效地完成花更多的時間......

1

至於我記得,使用Windows窗體設計器只需生成您通常手動編寫的確切代碼即可。唯一令人煩惱的問題是,當你想添加任何附加代碼或改變任何這些生成的代碼(因爲它「鎖定」了代碼,並且只能在Visual Studio之外進行更改)。

相關問題