かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

2011-06-01から1ヶ月間の記事一覧

F#用MVVMライブラリ作成日記

とりあえず、それっぽいサンプル書いたので、これをベースにドキュメントのGetting Startでも書いてみよう。 Hello.zip

F#用MVVM補助ライブラリ Kinkuma Framework F# v0.2を公開しました。

DataAnnotationsに対応したものをv0.2として公開しました。nugetでKinkumaFramework.FSharpで検索すると見つかります。ソースコード等はCodePlexで公開しています。 Kinkuma Framework F# (Prism based F# MVVM Support Library)

F#用MVVMライブラリ作成日記

今日は、DataAnnotationsによる入力値のエラー検証を追加しました。今の所以下のような変更履歴です。 ! KinkumaFramework F# v0.1 F#でViewModelを記載する際の補助ライブラリです。 !! 2011/6/26 v0.1.2 * FsValidatableViewModelBaseクラス ** DataAnnota…

F#用MVVMライブラリを作ってみました

とりあえず勢いだけで作ってCodePlex上に置きました。Prismをベースにしています。 Kinkuma Framework F# (Prism based F# MVVM Support Library) nugetからインストールできるのでKinkumaで検索するとひっかかります。nugetのページは以下になります。 Kink…

KinkumaFramework 1.2.12をリリースしました

NugetからKinkumaFrameworkで検索して入手できます。機能的にはそんなに追加していませんが、EventArgsをConverterで変換してコマンドの引数に渡す機能を追加したExtendedInvokeCommandActionを追加しました。 CodePlexのページ リリースノートを貼ってみま…

非同期ワークフローとメッセンジャーのコールバック

ちょっとした小ネタです。F#には非同期ワークフローという非同期処理を同期的に書けるという素敵な機能があります。 MSDNの非同期ワークフローのページからコードを拝借しますが、以下のようなコードが書けます。 open System.Net open Microsoft.FSharp.Con…

クラウドとマンション

何だか同期との雑談で、一軒家とマンションってオンプレミスとクラウドの関係に似てるねってなった。一軒家をクラウド化したものがマンションみたいな。 一軒家 自分で購入 好きなように間取りを決めたり、メンテナンス出来る 原則全部自分で管理しないとい…

Visual Studio 2010のXAMLデザイナだけで記述したXAML

デザイナで書いたXAMLってMarginが設定されたりごちゃごちゃして見にくいっていう印象を持ってる人が多いかなと勝手に思い込んでるのですが、デザイナだけでも気を付けて作れば以下のようなすっきりしたXAMLも作れます。

F# and MVVM Light Toolkit Sample Applicationをコードレシピに公開しました

昨日、今日あたりでもんもんと考えてたことをまとめました。 F# and MVVM Light Toolkit Sample Application F#でMVVMパターンをやるなら、この記事のようにC#でViewあたりは定義して、ViewModel以降F#で記述するのが妥当だと思います(F#だとViewのデザイナ…

MVVMのVMをF#で実装するとしたら?

こんな基本クラスを用意しておくと記述が楽かも。まぁ同じことはC#でも言えますが。 ネタ元は以下の記事です。 ObservableObject for WPF MVVM open System open System.ComponentModel /// INotifyPropertyChangedの実装 type NotifyObject() = let propert…

Seq.windoed使ってみる

F#

使い道がわからなかったwindowedですが、とりあえず、まとまった前後の要素を見ながら処理したいという用途で使えるのかな。例えば、ある配列の要素から前後の要素との平均を求めるみたいな処理で使えるとか・・・? open System // 適当な元データ作る let …

Seq.pairwiseとSeq.windowed

F#

最近まで存在を知らなかったSeq.pairwise関数とSeq.windowed関数の紹介をしたいと思います。 Seq.pairwise 引数で渡されたシーケンスを要素数が2のタプルのシーケンスにしてくれます。タプルの生成ルールは、(1番目, 2番目), (2番目, 3番目), (3番目, 4番目…

DataTableをDataGridにバインドしたときに例外をトラッキングできない?

WPF

DataGridの微妙な動き・・・?編集が出来なくなるDataGrid 上の記事で、編集ができなくなるということを書きましたが、もっと悩ましい問題がありました。 Addを押して行を追加 新規追加された行以外を編集 例外で落ちる 例外がDataGridのRowEditEndingでも捕…

ついにExcel VBAとおさらばする時がきたかもしれん

.NET系の言語をExcelで実行できるExcel-DNAをテライケメンのid:bleis-tiftの呟きから教えてもらえました。 Samplesも結構充実してるのでいいかんじ。ファイルをExcelにドロップするだけでいいので、お手軽に使えますね!! 個人的にイケてると思ったのは以下…

DataGridの微妙な動き・・・?編集が出来なくなるDataGrid

WPF

ちょっと時代遅れですがDataTableをWPFのDataGridにバインドしていじいじしてたところ、ちょっと変な動きをするのを見つけました。プログラムは以下からダウンロードできます。 DataSetDataGrid.zip 再現手順 プログラムを起動 表示されてるデータの編集が可…

F# 2.0でEntity Framework 4.1 CodeFirst その2「関連」

前回の例が単一テーブルだったので複数テーブル間の関連があるケースもやってみました。ちょっとはまったのは、F#って前方参照できないのでEmployee Department間の相互参照させることでした。andで繋げてクラス定義すると前方参照もできるようになるみたい…

F# 2.0でEntity Framework 4.1 CodeFirst

とりあえず備忘録です。さくっとやって動かなかったので、ぐぐって以下のページを見つけてその通りにやったら動きました。今の所CodeFirstでやるなら大人しくC#使っておいた方がいいのかな・・・?といった所感です。 F# Code-First Development with Entity…

stringの配列からDictionaryへの変換 まとめ

C# F#

4回にわたって小ネタを書いてきました!!! stringの配列からDictionary<string, string>への変換 stringの配列からDictionary<string, string>への変換 その2 stringの配列からDictionary<string, string>への変換 その3 stringの配列からDictionary<string, string>への変換 その4 id:masa-kさんのブログでも取り上げて</string,></string,></string,></string,>…

stringの配列からDictionaryへの変換 その4

C#

一応、最後に古き良き?やり方。forループですね。 var array = new[] { "1", "one", "2", "two" }; var dict = new Dictionary<string, string>(); for (int i = 0; i < array.Length; i += 2) { dict[array[i]] = array[i + 1]; }</string,>

stringの配列からDictionaryへの変換 その3

C#

id:neueccさんが、もう1つやり方を教えてくれました。自分では思いつきませんでしたが、以下のコードになります。 var array = new[] { "1", "one", "2", "two" }; var dict = array .Zip(array.Skip(1), Tuple.Create) .Where((_, i) => i % 2 == 0) .ToDi…

stringの配列からDictionaryへの変換 その2

C#

もう1つ思いついた。気になるのはGroupByの後の要素の順番って保障されるのかな・・・。 var array = new[] { "1", "one", "2", "two" }; var dict = array.Select((v, i) => new { Index = i, Value = v }) .GroupBy(i => i.Index / 2) .ToDictionary( v =…

stringの配列からDictionaryへの変換

C#

{"key", "value", "key", "value", "key", "value"}という感じで値の格納されたstringの配列からDictionaryに変換するというお題。自分の頭では、これが限界でした。何か気持ち悪い・・・。 var arr = new[] {"1", "one", "2", "two"}; var dict = arr.Aggre…

F#でリアクティブプログラミング その2

F#

F#でReactive Extensionsみたいなことが出来るということでじゃっかんハッスルしてたのですが、まだまだ提供されている便利メソッドは少ないというのが実情みたいです。(id:neueccさん情報)確かにObservableモジュールを眺めてみてもメソッドが数えるほど…

F#でリアクティブプログラミング

F#

F#のIEventインターフェースを見てみたらIObservable実装してることに気づきました。そして、Observableモジュールというものも定義されている・・・。 これは出来る!!!ということで、ちょろっと試してみました。 // int型を発行するIEventを作る let e =…

F#でMVVM Light Toolkit

フルF#(XAML無し)で組んでみました。後悔しています。とりあえずやるもんじゃないですね!でも、せっかく書いたのでメモメモ。 #if INTERACTIVE #r "PresentationCore.dll" #r "PresentationFramework.dll" #r "WindowsBase.dll" #r "GalaSoft.MvvmLight.E…

MVVM入門 その6に何を書こうか

悩んでます。以下のようなプログラムを題材にしようとは思っています。 Gridにデータを表示してCRUD出来るタイプのアプリを作ってみる 複数ウィンドウを使ったアプリ ウィンドウ間でのデータの受け渡し Entity Framework Code First + SQL CE 4.0でDBを使う …

MVVM入門 その5「ライブラリを使おう2」を書きました

コードレシピに書きました。 MVVM入門 その5「ライブラリを使おう2」 自分で作って最近放置してるKinkumaFrameworkは書こうか書くまいか悩んだのですが、コード書いたので載せました。入門用にはそぐわないですな。

F#でのMVVMパターン

Simple F# ViewModel for Silverlight MVVMという記事があったのでメモです。 基本的に、私が前に書いたのと同じようなコードになってるっぽいので少し安心です。括弧とかが無いぶんC#に比べてスリムになってるように感じますね。

MVVM入門 その4「ライブラリを使おう」を書きました

コードレシピにMVVM入門 その4「ライブラリを使おう」を書きました。 MVVM入門 その4「ライブラリを使おう」 今回は、今まで頑張って自前実装していた部分を既存のMVVMライブラリで置き換えて実装しています。とりあげているライブラリは今回はPrismとMVVM…

クラウド時代のインフラ設計

なんとなく思っただけの殴り書きです。これまでは、お客様の要求があって、それを実現するためのインフラを設計し構築してきた。ネットワークの回線がこれだけ欲しい!と言われれば、それに合わせた設備を用意して、CPUはこれだけ欲しい!となれば、そのスペ…