2011-06-27 5 views
1

私はVisual C#Windowsフォームデザイナを使用してUIを設計し、プログラムの機能とロジックに専念させようと考えていました。 (以前はUIを手作業で作っていました)。 UIをコーディングするのではなくデザイナを使用すると、余分なオーバーヘッドが発生しますか? (これにより私のコードはMONOと互換性がなくなります)Windows Formsデザイナを使用してプログラムのUIを開発するとオーバーヘッドが発生しますか?

オーバーヘッド:余分なメモリ、起動時間が余分にかかり、効率とパフォーマンスが低下します。

+1

"オーバーヘッド"を定義します。一般的に、デザイナーによるカスタマイズは限られています。私はあなたがそれらに変更することができればWPFとXAMLをお勧めします。 – Raynos

+0

MONOのサポートを受けていればいいと思います。残念ながら、MONOは.NET 2.0以前しかサポートしていません。私はWin XP SP2を使用しているので、.NET 2.0以降は何も実行されません。 (ただし、.NET 4.0は例外ですが、まだIDEは作成されていません)。 – ApprenticeHacker

+1

また、UIからロジックをできるだけ分離することは非常に良い方法です。手でプログラミングしても、別の機能(デザイナーと同じように)で別ファイルに分割するのは良いでしょう部分クラス)。レイノスはWPF/XAMLを提案していました。 –

答えて

3

デザイナを使用しているときに発生する唯一の事柄は、.designer.csファイルのフォームのアイテムの初期化(InitializeComponentメソッド)が生成されることです。これはどんな方法でもパフォーマンスに影響を与えるべきではなく、フォームが構築されたときにのみ発生します。

だから、あなたには、いくつかの特定のニーズやレイアウトの計算を持っていない限り、私は手でそれをしないだろうが、私はデザイナーを使用します。それは素早く、視覚的です。また、アプリケーションをコンパイルして実行することなく、フォームレイアウトを表示できます。

レイアウトロジックを手作業で作成した経験はありましたが、動的に作成されたコントロール(設計時には未知のコントロールの量)が必要でした。それ以外デザイナーを使用しない理由はわかりません。

MONO部分については、互換性がないとは思わない。デザイナーは単にコードを生成するだけです。私はMONO機能の完全なリストを認識していませんが、コード生成siplyはレイアウトロジックと他のいくつかのコントロールのプロパティを使用しているため、MONOがどうやって同じことをするのか分かりません。しかし、私はモノとの実際の経験がないので、誰かが確認する必要があります。

編集:

特定のコントロール(特にカスタムコントロールの場合)の初期化は、特定の順序で初期化されなければならないシナリオもあります。その後、デザイナーによるこれらのコントロールの初期化に頼ることはできません。ただし、順序は関係ありません他のすべてのコントロールのデザイナを使用することはできます。

2

私は手でUIを作成することで、より多くのオーバーヘッドが発生すると思う:Winformsのデザイナーのように、良いツールを使用することにより、より効率的に行うことができる何かに多くの時間を費やして...

1

を私の知る限りリコールとしてWindowsフォームデザイナーを使用すると、通常は手動でコード化する正確なコードが生成されます。この問題を解決するには、追加のコードを追加するか、生成されたコードを変更する必要があります(コードを「ロック」してから、Visual Studio以外でのみ変更することができます)。

関連する問題