最近、C#を使ったWindowsアプリケーションの保守をしているのだが、作られたアプリのソースがとかく読みにくい・・・・。
それは
「イベントハンドラに入力チェックと業務ロジックとGUIの操作が混在していて、何をやっているのかわからない」
言い換えると、
「・入力チェックを行うクラス、業務ロジックを行うクラス、GUIを操作するクラスがお互い参照しあってがゆえにアプリケーションが密結合になっている、所謂、参照がスパゲイティになっている」
からではないだろうかと、自分の中では、そう想定しています。
自分ではロジックの複雑さを軽減するため、業務でGUIを作成する時、イベントハンドラは
1.View層→Model層のデータバインド
2.入力チェック
3.業務ロジックの実行
4.Model層→View層のデータバインド
5.GUI部品の操作
というように、処理の流れを表すメソッド(サブルーチン)記述するにとどめ、具体的な処理はメソッド(サブルーチン)に書いたほうがソースの可読性が上がると考えいますが、一方で、そのように実装されたアプリを現場レベルでは見たことがありません。
それはなぜなのか、自分の想定は間違っているのか?ということを検証するために
http://qiita.com/triple4649/items/d111ef04f8d7a8efbfb0
という記事をか書きました。
記事を通して具体的なコードを書きながら、C#におけるGUIアプリのあるべき姿を模索している最中です。