すいません、VB4しかやってないんです、VBAはやったけど(ぼそ)

なのに.NETですか? くるみサイズの脳みそしかないあやしいジャンガリアンベムスターがさすらうゴシックペナルティ

目次

Blog 利用状況

ニュース


片桐 継 は  
こんなやつ

かたぎり つぐ ってよむの

大阪生まれ河内育ちなんだけど
東京に住んでたりするの
和装着付師だったりするの
エセモノカキやってたりするの
VB系言語が得意だったりするの
SQL文が大好きだったりするの

正体は会った人だけ知ってるの

空気読まなくてごめんなさいなの


わんくまリンク

C#, VB.NET 掲示板
C# VB.NET掲示板
わんくま同盟
わんくま同盟Blog



ネット活動

日々の雑記は ココ

着物関係こっち 着物関連Blog
mixiの鍵はこれだっ! in mixi
ぴくま同盟:理事 in ぴんくま
いやー、もうね、il||li _| ̄|○ il||li

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

イベント活動

プログラムの活動

2010年2月6日 #

MVVMやってて行きついた一つの答えをメモしてみた

Under17の「こたえ」もAngelaの「未来という名の答え」も好きな曲。

MVVMってものを色々と、作りながらあーでもないこーでもないと悩んでいたのだけれど、結局は「これでいいんじゃね?」と行きついた一つの答えというか、そんな結論をまとめてみたのでメモしておく。

image

図にまとめるとこんな感じ。上から行くと、

View部分

Viewクラスが一つ。ここが画面。ユーザーにみえる所。モノはFormだったり、aspxページだったり、Silverlightコンテンツだったりするけど、もちろん、ルックス重視で外面の良いタイプが適任。コントロールが配置されたり、表示されたりでイベントも発生させるし、イベントドリブンの簡単なコードはあるけれど、それ以外のことは全部ViewModelに丸投げw。

ViewModel部分

ViewModelクラス

外面だけ良い八方美人のViewを支える縁の下の力持ち、というか、パートナー、というか、執事。Viewとは1:1の関係で、Viewで発する色々なイベント処理やデータ処理の実体実働はここ。場合によっては複数のModelをコントロールしなくちゃだから、やることはたくさん。といっても、細かな処理についてはModelにさせてしまうので「あれしろ」「これしろ」とメソッド呼び出しするのがお仕事。何も考えていないViewModelのために「何を表示するのか」を定義したViewRecordも管理してくれていたりと、致せり尽くせり。

ViewRecordクラス

View部分に配置されるGridViewやDetailView用に作成する自己完結したクラス。各要素をプロパティで公開して、必要であればチェックメソッド何かを持っていたりする。ViewModelに属しているようでいてViewにも媚びている板挟みの立場w

Model部分

ここはModelクラス-DataControlクラス-DataSourceクラスのトリオ。3兄弟か姉妹かグループなのかは判んないけどね。ModelとDataControlは、List (of DataRecord)というクラスを共有してうまく仕事を連携できるようにしてる。DataSourceはデータの内容そのものには何も関係してないから、気にしてないけどw

Modelクラス

ViewModelクラスとのやりとりを一気に引き受ける窓口で交渉人。実質のリーダーというか一番上。正体はDataControlのラッパークラスで、メソッドを公開して命令を受けて、連番処理とかキー付与とかそういう小細工が必要ならしてくれるけど、大体においてはその命令をそのまますぐ下のDataControlに丸投げw

DataControlクラス

Modelクラスから受けたメソッドを真面目にこつこつと処理する。List (of DataRecord)を持ち、データ処理の中心部分。真ん中はつらいよね。

DataSourceクラス

データ接続やロード処理だけを引き受けるクラス。データベースであれば接続切断やSQLの実行、ファイルであれば読み込みや書き込みをする。ModelクラスとDataControlクラスが「どこの」データを処理しているのか全く意識しなくて済んでいるのは実はこのクラスのおかげ。無関心を装って実は要?

DataRecordクラス

データベースであればテーブルと、ファイルであればファイルレコードと、それぞれ一致したデータ要素を持つクラス。要素はプロパティで公開。Modelが一緒に外部に公開しているけれども、実体はDataControlと密接な関係に……ってそれなんてトライアングラーw Modelクラスとのやり取りがある、さらにその上のViewModelクラスからも見守られていたりするヒロイン属性w


いじょ。

時間とパワーがあれば、サンプルコードも書いてみたいんだけどな。

つか、擬人化してるのは、きっと気のせいw

posted @ 11:33 | Feedback (0)

2010年1月11日 #

やらせない!

ってわけじゃないだろうけど、

ASP.NETで、My.Settings.Save がなぜか反映されないorz

値の取得はできるんだけどなぁorz

自分でXmlDocument使って、ごりごり書いたらうまくいくので、そうすることにした。

<<以下、戯言>>

時々、.NET Framework って便利なのか不便なのか、よく判らなくなってくるよねぇ。

色んなロジックや操作をカプセル化してくれてるのはすごいんだけど、一方で、
自分のほしいと思う操作や関数処理にはどこか足りなかったり、
種類も用途も豊富すぎて適切なクラスを探し出せなかったり。

開発工数、本当に短縮できてるんかなぁと思う時もあるw

初めっから無いものとして、ごりごり書く方が結果早くて確実だったりするかもだし。

そうだ、固定長ファイルのI/O用クラスを作らなくちゃw VisualBasicじゃ、どうも、やりづらいwwww<おい

 

 

posted @ 21:56 | Feedback (3)

2010年1月10日 #

そのアドレス、大丈夫?

というのをVB.Netでチェックするロジック。すっごくベタw

    Private Function CheckURL(ByVal cURL As String) As Boolean

        '入力が無いならFalse
        If cURL = "" Then
            Return False
        End If

        'チェック開始
        Try
            Dim chp = Net.WebRequest.Create(cURL)

            Dim resultSet = chp.GetResponse

        Catch ex As Exception

            Return False

        End Try

        Return True

    End Function

恐ろしく単純明快、危険極まりないのは確か。

本来なら、404かどうかとか、Responseコードをちゃんとチェックした方がいいと思うの。

posted @ 16:59 | Feedback (7)

2010年1月9日 #

読楽、書苦

VB.Netで固定長ファイルを読むのはとても簡単

My.Computer.FileSystem.OpenTextFieldParser メソッド

使うと、1レコードを配列にして受け取れるから

じゃぁさ、1レコード分のデータ配列から、固定長に書き込むにはどうするん?

 

 

ゴリゴリ書くしか、ないっぽいorz

ちょっと頑張ってみるかorz

posted @ 11:28 | Feedback (2)

2009年12月31日 #

Could you remember me?

年末のご挨拶

というわけで、怒涛の一年が終わり、新たな年が始まろうとしています。

諸事情により、ITという業界を離れ、全く別の職種で働く昨今ですが

これからもほそぼそと、この面白くも厳しく楽しい世界にかかわっていきたいなと思っています。

 

業界の皆様には、永らくのご愛顧ありがとうございました。

良いお年をお迎えくださいませ

来年はかたぎりさんの次回作にご期待ください<違っ

posted @ 11:52 | Feedback (0)