C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: デザイナのGUI部分と実装の切り分けについて


(過去ログ 76 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■44862 / inTopicNo.1)  デザイナのGUI部分と実装の切り分けについて
  
□投稿者/ simano (19回)-(2009/12/22(Tue) 12:14:19)

分類:[C#] 

こんにちは。

C#でデザイナを使ったGUI部分と実装部分のコーディング方法について、思案しています。

今までは、私はデザイナを使い、以下のようにコーディングしてきました。

1.FormのGUI部分は、基本的にデザイナを使う。
2.ただし、デザイナからの実装がしづらい箇所には、
  コード内から直接イベントを追加する。
3.また、Form内にタブコントロールがある場合などは、タブ内に
  新たにユーザコントロールを作って貼り付ける。
 (コードが長くなることを防ぐため)
4.Form, ユーザコントロールには、イベント部分の実装も含めて、処理内容を直接記述する。

しかし、同僚には上記の方法は一般的ではないため、以下のようにコーディング
すべきだと指摘されました。

1.FormのGUI部分やイベントは、基本的に全てデザイナから設定/俯瞰できるほうが良い。
2.Formでは、イベント部分で"○○Proc"という処理用のプログラムの
  関数を呼び出し、○○Procに処理を委譲する。
3.ユーザコントロールは重くなる可能性があるのであまり使うべきではない。

確かに、その方が引継ぎもしやすく、整理されていてわかりやすい実装だと思います。
ただ、今からコーディング方法を見直していると、実装に時間がかかって
しまうため、すぐに方向転換するべき問題かどうか思案しています。

皆さんは、上記のようなGUI部分と処理の実装部分について、どのように切り分けを
行っていますか?

「一般的」な方法を聞くのが最良かどうかはわかりませんが、
今後の参考のために、皆さんのコーディング手法を聞かせていただきたいと思っています。
または、参考文献などありましたら、紹介してもらえると助かります。

よろしくお願いします。
引用返信 編集キー/
■44864 / inTopicNo.2)  Re[1]: デザイナのGUI部分と実装の切り分けについて
□投稿者/ επιστημη (2332回)-(2009/12/22(Tue) 12:29:36)
επιστημη さんの Web サイト
キホンテキに、
「フォームがなくても○○Procのメソッド呼び出せばアプリケーションとして機能する」
ように○○Procを実装します。

そーしとくとテストを自動化できますから。


引用返信 編集キー/
■44865 / inTopicNo.3)  Re[2]: デザイナのGUI部分と実装の切り分けについて
□投稿者/ simano (20回)-(2009/12/22(Tue) 13:40:16)
No44864 (επιστημη さん) に返信
> キホンテキに、
> 「フォームがなくても○○Procのメソッド呼び出せばアプリケーションとして機能する」
> ように○○Procを実装します。
>
> そーしとくとテストを自動化できますから。
>
>

確かに、そのほうが優れた手法ですね。

今から処理を見直すと思うと辛いものがありますが…
努力します。

ところで、この実装の分離の方法は、どこかに載っているものなのでしょうか。
手元の参考書では、Formに直接書いていたので、
同僚から聞くまで、まったく疑いを持っていませんでした。

Procという名前まで同じということは、かなり基本的な流儀なんだと思いますが…。
引用返信 編集キー/
■44866 / inTopicNo.4)  Re[3]: デザイナのGUI部分と実装の切り分けについて
□投稿者/ επιστημη (2333回)-(2009/12/22(Tue) 14:34:18)
επιστημη さんの Web サイト
2009/12/22(Tue) 14:38:38 編集(投稿者)

> Procという名前まで同じということは、かなり基本的な流儀なんだと思いますが…。

いえ、あなたの表現:○○Procをそのまま使っただけ。

一般には Model-View あるいは Model-View-Controller とか呼ばれてます。
# MFCでは Document-View、WPFでは Model-View-ViewModel とか

アプリケーションは多かれ少なかれ 「入出力」と「処理本体」に分けられるやないですか。
そのとき 「入出力部で処理するな」を守るだけです。
そうしないとお客のワガママで見てくれを変更すると、
その変更が処理本体に及んでしまう。ヤでしょ?

引用返信 編集キー/
■44867 / inTopicNo.5)  Re[4]: デザイナのGUI部分と実装の切り分けについて
□投稿者/ simano (21回)-(2009/12/22(Tue) 14:44:33)
No44866 (επιστημη さん) に返信
> 2009/12/22(Tue) 14:38:38 編集(投稿者)
>
>>Procという名前まで同じということは、かなり基本的な流儀なんだと思いますが…。
>
> いえ、あなたの表現:○○Procをそのまま使っただけ。
>
> 一般には Model-View あるいは Model-View-Controller とか呼ばれてます。
> # MFCでは Document-View、WPFでは Model-View-ViewModel とか
>
> アプリケーションは多かれ少なかれ 「入出力」と「処理本体」に分けられるやないですか。
> そのとき 「入出力部で処理するな」を守るだけです。
> そうしないとお客のワガママで見てくれを変更すると、
> その変更が処理本体に及んでしまう。ヤでしょ?
>

Model-View-Controllerは重要ですね。
デザイナの取り扱いに四苦八苦してて発想がそこに及ばなかったです…。
今度から、そのように実装します。

ありがとうございました!
解決済み
引用返信 編集キー/
■44868 / inTopicNo.6)  Re[4]: デザイナのGUI部分と実装の切り分けについて
□投稿者/ επιστημη (2334回)-(2009/12/22(Tue) 14:49:56)
επιστημη さんの Web サイト
で、そんなこともあろうかと(?)単純なサンプルを書きました。↓
http://codezine.jp/article/detail/4650

引用返信 編集キー/
■44873 / inTopicNo.7)  Re[5]: デザイナのGUI部分と実装の切り分けについて
□投稿者/ simano (22回)-(2009/12/22(Tue) 15:43:44)
No44868 (επιστημη さん) に返信
> で、そんなこともあろうかと(?)単純なサンプルを書きました。↓
> http://codezine.jp/article/detail/4650
>

サンプルコードを確認させていただきました。
ボタンのEnableなど、GUI上の設定はMainForm中で、
マンデルブロの描画処理など、メインとなる処理は全て別クラスに委譲しているんですね。

大変参考になりました。
ありがとうございました!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -