Windowsフォーム開発で思ったこと - Life is Really Short, Have Your Life!!の続きのようなモノ。開発環境はVisualStudio Express 2010 C#で、.NET Frameworkは4.0です。
メソッドやプロパティの一覧が見たい
Visual Studioって当該クラスのプロパティやメソッド一覧を表示するウインドウってないのかな?Eclipseみたいに。自動生成するDesinger.csとかの一覧が見たい時もあったりするし。これ、できないのかなぁ。
連想配列でキーに対するアクセスはないわ
DataRowの中身をHashのようなキーによるアクセスからBean(DTOだっけ?)に変更できるのだろうか。キーがないから落ちるみたいなつまらない例外を防ぎたいんだよなぁ・・・。PHPのような連想配列が全ての世界ならまだしも、静的言語のメリットである型付けは活かさないと。
BindingListなるものを活用するとDataTableの中身にカスタムオブジェクトにぶち込めるという所までは分かったんだけど、1人で開発してるから段々どうでもよくなっちゃった>< 複数人で開発するならBeanを作ってアクセサを経由しないとダメかもしんないわ・・・。
と、ここまで書いてみたら、BeanUtilsっぽいコードをc#で書いてあるサンプルみつけた。
http://kb.cnblogs.com/a/1506473/
やっぱ必要だよね、こーゆーの。
1行2列グリッド
1つの行に2つのセルをぶっ込む、というヤツ。自分で頑張ってPaintしろみたいなソースが多かったんですが、表示するだけならそれでOKなんですが入力するとなるとかなり辛い。圧倒的破綻。結局諦めた。データバインドするのも辛そう・・・。データバインドできないグリッドはないわ。
どうでもいいけど、グレープシティさんのコンポーネントすげぇよなー。ネ申。
概要 - MultiRow for Windows Forms 7.0J | GrapeCity Developer Tools
Selenuimみたいヤツ、ない?
Winformの自動テストが出来ればナイスだよなーと思ってぐぐったら、こういうのが出てきた。StackOverFlowはワールドワイド版はてな人力検索やで。
winforms - Windows Forms Test Automation - Stack Overflow
何か色々ツールが出てきたけど、もっとよさそうなのがあった!
ほう、UIAutomationなる技術があるのか。標準技術なのがいいな。iOS SDKにも搭載されましたな。GUI操作を外部のプログラムから操作できれば、シナリオ書いた後は楽だよなー。子画面ハンドリングとかも出来るのだろうか。Expressの場合は、NUnitとの併用が必要か。そもそもこれできるのかw あー、やっぱProfessional欲しいー。今作ってるのが売れたら買うわー。松崎さんとか長沢さん、安く卸してー。
振る舞いに対して実装する
GUIプログラミングって「振る舞い」は同じだけど「INとOUTが微妙に違う」ということにかなり出くわす。業務アプリってそーゆーもんかも。iPadアプリ作ったときもそれは感じた。GUIの開発環境でぽんぽーんとドラッグして放り込むことが出来るのは、少ない画面だから出来ること。で、振る舞いってのは、プログラム言語に変換すればインターフェイスのこと。そのインターフェイスを如何にスーパクラスに集約させて、各画面が求める結果を動的に戻してあげるのかが大切だと。そうすると実装量も減るし修正も楽だと。
オブジェクト指向については何も語れることもないしサッパリ分からないと言っても良いんだけど、重要なのはインターフェイスと実装コードの疎結合じゃないかな。結局、そこに帰結すると思う。ユーザーはボタンを押すところだけ覚えればいい。中身のコードはそのボタンのインスタンスによって変動する。そーゆーこっちゃ。