タグ

ブックマーク / coma2n.hatenablog.jp (5)

  • MVPパターンを業務アプリに適用する − 画面遷移 - coma2n’s diary

    MVPパターンにおける画面遷移のやり方を調べていたが、具体的な情報があまりなく、これだというのが無かったので自分なりに考えてみた。 業務アプリでやるからには極力シンプルで、誰にでもわかるやり方にする必要がある*1。 とりあえず考えたのは、下図のようにプレゼンター側で遷移するビューを取り出し、必要な値を設定し表示するというやり方。 概要図 これくらい単純なのが一番いい。 ビューに値を設定する方法としては、 コントロールを参照して直接値を設定する。 プロパティを定義して、間接的に値を設定する。 が考えられるが、プロジェクト的には1.を採用したい。簡単だし、受け入れられ易い。プロパティってなに?って言われちゃうレベルだからね。 しかし、いくつか問題点がある。 コントロールを直接参照するので、コントロール名を変更されたり、削除されたりするとコンパイルエラー 型の不一致(例えばTextBoxのTex

    MVPパターンを業務アプリに適用する − 画面遷移 - coma2n’s diary
  • MVPパターンを業務アプリに適用する - coma2n’s diary

    業務アプリケーションを開発するにあたって、最低限守るべき事の一つとして「画面とロジック」の分離が挙げられると思う。 簡単そうに思えて、これが意外と難しい。 一人での開発ならば自分だけでやり方を決めてしまえばそんなに難しくはない。しかし、開発要員が増えれば、これが途端に難しくなる。 この原因としては、 どこからが「画面」の役割で、どこまでが「ロジック」の役割かの定義が個々人でばらつきがある。 定義を決めても守らない奴がいる(そもそも意味が理解できていない)。 言語自体がへぼくて「画面とロジック」の分離がそもそも(充分に)できない。 なんていうのがある。 ほとんど、「それって開発者としてどうなの?」というレベルに思えるけど、現実の開発ってそんなもんだよね。 いつの時代もこの問題は付きまとうようで、実際色んなデザインパターンが考えられてきた。 知ってるやつでは、 MVC(モデル・ビュー・コントロ

    MVPパターンを業務アプリに適用する - coma2n’s diary
  • DataGridViewにデータバインドして編集・削除するのに最適な方法は? - coma2n’s diary

    WindowsFormで業務アプリを開発する場合、DataGridViewの様にデータの表示と編集作業を実際のデータソースの種類を問わずに一括してやってくれるコントロールがあると非常に便利である。 単純な編集作業ならば、これにデータバインドしてちょこちょこっとコードを書いてやるだけで、目的の仕様を達成できるのだから、ありがたくて涙が出てくる。 .NETにはデータベースにアクセスする技術が何種類かあって、どれを選ぶかによってDataGridViewとの連携のし易さもかなり変わってくる。 その辺の違いを調べる為に以下の仕様をいくつかのデータベースアクセス技術で実装して、その違いを比べてみた。 表示するレコードは複数のテーブルをJOINしている(JOINで対応できない場合はビューを使う)。 属性を変更できる。 レコードを削除できる。 ER図 ためした技術は以下、 DataSet 型付けDataS

    DataGridViewにデータバインドして編集・削除するのに最適な方法は? - coma2n’s diary
  • WCF はじめの一歩 - coma2n’s diary

    今更ながらWCF(Windows Communication Foundation)を始めた。 長い間プログラミングから遠ざかっていた*1ので、若干書き方を忘れてきたけど思い出しつつ勉強開始 まずは基中の基からやってみる。 概要 イメージとしてはこんな感じ Server側とClient側でContract(インターフェース)を決めてあげれば、通信部分のプロトコルとかなんやらはWCFがやってくれまっせという事です。 これに従って、今回作成するプロジェクトは以下の三種類 WcfService(コンソール) WcfServiceInterface(ライブラリ) WcfClient(コンソール) また、参照設定に以下のアセンブリを追加しておく System.ServiceModel(WCFの体) System.Runtime.Serialization Contractの定義 まずはインター

    WCF はじめの一歩 - coma2n’s diary
  • VB6の関数一覧を出力する - coma2n’s diary

    ちょっとした小ネタです。 VB6のソースから関数の一覧を抜き出したいと言われたので、PowerShellでサクっと作ってみました。 Get-ChildItem -recurse -include *.bas | % {[string]::Join("`n", ((Get-Content $_) | % { $_.Trim() })).Replace("_`n", "").Split("`n") | ? { $_ -match "Public (Sub|Function)" }} これを実行するとカレントディレクトリとその配下にあるディレクトリからVB6のモジュールファイルを検索して、その中に定義されているPublicな関数とプロシージャが標準出力に出力されます。 調子に乗ってワンライナーで書いたので読みづらいですが、やっている事は、 Get-ChildItemでカレントディレクトリとその配

    VB6の関数一覧を出力する - coma2n’s diary
  • 1