月別アーカイブ: 2016年2月

ViewModel をテスト可能にするためにファイルストリームを活用するパターンを考察

一般的に(?)MVVM パターンを使うと xUnit が作りやすい。主に Model やロジックに対して xUnit を適用すると TDD 的にあとあと楽なのですが、もう一歩進んで ViewModel にも xUnit を適用してみましょう、という話の続きです。 まぁ、普通にオブジェクト指向のクラスを作っている中で、ある程度隠蔽化されていれば xUnit を使うのもそう難しくはないんですけどね。ただ、実務的にやってみると GoF の組み合わせパターンを使ったときに xUnit の適用どころが難しかったり、最初の簡単なロジックは xUnit を使っていたけど、だんだん拡張していくうちに xUnit が使えなくなってしまったという場合もよくあります。そうそう。プロジェクトが進む中で結合テストをしていて、あまりにも設定がややこしくなってしまった xUnit のコードはばっさり捨ててしまっても構い … 続きを読む

カテゴリー: 開発, C#, TDD | コメントする

UWPでファイルのドロップして画像表示させる

UWPでファイルのドロップをしたい – かずきのBlog@hatena http://blog.okazuki.jp/entry/2016/02/21/162757 を見て、ああ「AllowDropプロパティをTrue」にするだけでよかったんだ、と思って画像の表示まで試してみました。 コツは、ドラッグしたファイルが IStorageItem なので StorageFile にキャストしてしまえば ok です。これでストアアプリの Storage として扱えるので定番処理で BitmapImage に突っ込みます。 と、さっくりと書いているように見えますが、最初は it.Path のようにパスを取ってきてメモリ上に変換してとあれこれやっていたんですよね。結構苦労しましたが、StorageFile にキャストができることが分かって、すっきりした状態になります。 ちなみに、ボタンのほ … 続きを読む

カテゴリー: 開発 | コメントする

パタンランゲージとアジャイルの関係を再考する

「パタン・ランゲージによる住宅の生産」の序文に「1. 建築と施工は分離されていてはならない。(アーキテクトビルダー)」とある。何処かで聞いたようなことがあると思う。アジャイルソフトウェア開発宣言 に「プロセスやツールよりも個人と対話を…」とあるのと非常に似ている。 引用として、生産プロセスの基本条件を抜き出すと、 建築家と施工は分離されてはならない。(アーキテクトビルダー) 生産システムは、地域の高度に分散化された職人群(拠点)を利用する。(ビルダーズヤード) 共有地はユーザーによって最も大切な場所であり、彼らの管理下にあるべきである。(共有地の共同設計) ユーザーは、自分自身の住まいの間取りについて、現代建築のような受け身の姿勢ではなく、核家族によってそれぞれ異なる間取りができるような積極的な姿勢で参加しなければならない。(個々の住宅のレイアウト) 施工のシステムや技術やディテールは、プ … 続きを読む

カテゴリー: プロジェクト管理 | コメントする

後置型プログラム言語と記号論と生成文法の思考実験

ふと、ノーム・チョムスキーの生成文法とウンベルト・エーコの記号論を思い出したので、後置型プログラム言語を再考してみる。 たいていのプログラム言語は前置定義型だ 「全ての」と書きたいところなのだが、C# の拡張メソッドや Ruby の後付けメソッド、Javascript のオブジェクトへのメソッドの追加を考えると、後置型とも言えなくもないので「たいていの」にしておく。要は、あらかじめ定義したものを使う、というスタイルでプログラムコードを書いていくのが「前置定義型」だ。 class class A { public: void method() { … } }; void main() { A a ; a.method(); } な感じでクラスやメソッドを定義する。 記述場所は、main 関数の後からもしれないし、別ファイルかもしれない。ただし「A」として使う時点で、A クラスは定義してあ … 続きを読む

カテゴリー: 雑談 | コメントする

ASP.NET MVC 6 でデータベースに接続(データベースファースト編)

前回の続きで、今度はデータベースから構築するパターン。基本的なところは、ASP.NET5 MVC6 Entity Framework 7 を使って Database First する と同じで、あらかじめ SQL Server で作ったテーブルをもとに ASP.NET MVC の Model クラスを作る。 ASP.NET MVC 6 の Web Application テンプレートを使う こちらも、Web Application のテンプレートを使う。無駄なページができるのは仕方がないのだが、project.json などの設定がそのまま使えるので活用する。 SSMS(SQL Server Mangement Studio)でテーブルを作成する ここではローカルPCに SQL Server を入れて testdb に「Movie」というテーブルを作っている。前回のとテーブル名を合わせると … 続きを読む

カテゴリー: ASP.NET | 2件のコメント

ASP.NET MVC 6 でデータベースに接続(コードファースト編)

コードファースト自体は結構前に話題になったハズなのですが、ASP.NET MVC 6 でデータベースに接続する場合にはなんだかよくわからなかったので再調査。いやいや、データベースから POCO を作ることはあまり重要ではなくて、ASP.NET MVC 6 自体なんだけど…まあ、EF(Entity Framework)が扱えたほうがいいので、ちょっときちんと手順を追ってみる。 チュートリアル的にはいろいろあって、 Building ASP.NET MVC 6 & Entity Framework 7 application using ASP.NET 5 RC ASP.NET5 MVC6 Entity Framework 7 を使って Database First する – BEACHSIDE BLOG を使って手早く済ますのもよいし、Getting started wi … 続きを読む

カテゴリー: ASP.NET | 2件のコメント

Xamarin.Froms を使ってパズドラのように駒を動かす

Xamrin.Forms のドラッグシリーズの続き ひと駒だけドラッグができたので、今度は複数の駒を移動させてみます。いわゆるパズドラのように隣の駒を入れ替えながら動かすというやつですね。 やっていることは前の BoxView のドラッグと同じで移動時のイベントを ManipulationDelta に変換して PCL にコールバックします。 AbsoluteLayoutに配置する 位置がわかりやすくなるように、AbsoluteLayout を使っています。UWP の Canvas に似た動きをしますね。iOS/Android/UWP の3種類でどういう作り方をしているかは知らなくても大丈夫です。Xamarin.Froms の AbsoluteLayout タグに則って配置させます。 BoxView のタップイベントは、BoxView 自身につけています。自前の ManipulationD … 続きを読む

カテゴリー: C#, Xamarin | コメントする