かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

F#

ReactiveProperty + F#で簡単なViewModel書いてみたよ

F# Rx

超簡単なやつ。入力があったら1秒後に別プロパティに全部大文字にして出すやつです。 open Codeplex.Reactive open System open System.Reactive.Linq type MainWindowViewModel() = // 入力用 let input = new ReactiveProperty<string>() // 出力用 let output = /</string>…

F#でTask<T>を待つ

F#

非同期ワークフローの中でTaskってどうやって使うんだろう?と思ってたらAsyncクラスにAwaitaTaskっていうずばりっぽいメソッドがありました。こいつを使えば非同期ワークフローの中でlet!で結果を受け取ることができる。HttpClientを使ってGoogleトップペー…

F#版のBindableBaseクラス

F#

F#でINotifyPropertyChangedを実装するとどうなるかな~というので実装してみた。 open Microsoft.FSharp.Quotations open Microsoft.FSharp.Quotations.Patterns open Microsoft.FSharp.Quotations.DerivedPatterns type BindableBase() = let propertyChng…

CLIMutable属性つけると便利らしい?

F#

F#にCLIMutableなる属性が追加さられたみたいです。こいつをつけるとデフォルトコンストラクタとか、プロパティに自動的にgetter/setterつけてくれてDTO作ったりEFで便利かもね!みたいな説明が書いてあるような気がしました。 namespace Hoge open System; …

ReactiveProperty in F#でHello world

ReactivePropertyって別にC#専用ってわけじゃないんだからねっ!! // 名前空間のopenは省略・・・ // ViewModelの定義はスッキリ type SampleViewModel() = let name = new ReactiveProperty<string>() let upper = name.Select(fun (s : string) -> s.ToUpper()) .</string>…

プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.2 紹介

F#

縁あって発売前ですがプログラミングの魔導書 〜Programmers' Grimoire〜 Vol.2の中身を拝見させて頂く機会を頂きました。Twitter凄いです。一週間ほど前から以下のページで予約が開始されています。 プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.…

MSDN マガジン 9月号(英語)にF# + MVVMの記事が!

Build MVVM Applications in F# 興味のある人はさらっとコードだけでも眺めてみるといいかもです。 F#用のViewModelを記述するためのサポートライブラリみたいなのも紹介されてたりします。あとは非同期ワークフローも!これはC# 5.0が出るまではF#の強みの…

F#でWPFの画面構築DSL

タイトル通りのものを作ってみようと思ってもんもんとしています。ただ、DataTemplateとかControlTemplateとかは、ちょっとしんどいので対象外にしようかな〜と思いつつ、ItemsControlのItemTemplateとかくらいは設定できないと使い物にならないよな〜と思っ…

添付プロパティをセットしたオブジェクトを作成するヘルパー関数

思いついたのでLINQ Padでさくっと試してみた。 open System open System.Windows open System.Windows.Controls module WPF = /// 添付プロパティと値の組を作成する let (@<<) (dp : DependencyProperty) (value : obj) = (dp, value) /// DependencyObjec…

非同期ワークフロー対応の処理の作成方法を公開しました。

F#

コードレシピにF#で自前の関数や既存の非同期処理(コールバックで続きの処理をやることを想定)を非同期ワークフローに対応させるときに使用するFromContinuations関数の使用方法についての記事を書きました。 F# 非同期ワークフロー対応の処理の作成方法

F# Somaの便利機能「式言語」を公開しました。

前回に引き続きSomaの紹介です!コードレシピに公開してみました。 F# Somaの便利機能「式言語」 軽量ORマッピングフレームワークは手軽に使えるし、小回り(最終的にいくら小回りが利くかが勝負だと思います)が利くのがいいですね!

F#の軽量ORマッピングライブラリSomaを試してみた

ということで、じーっと見つめてたらバージョン1が出たSoma!!試してみたついでにコードレシピにまとめてみました。 F# Somaを使ったDBのCRUD処理 DBにはSQL Server Compact Edition 4.0を使ってみました。

F#で思ったことを徒然なるままに書いてみた

F#

F#という言語を最近遊び感覚で使ってますが、まだまだIDEのインテリセンスもイマイチだったりするところがあって、開発環境的には不満が割とあります。でも、それ以上にLL言語を彷彿とさせる(特にPython)ライトっぷりには脱帽です。 メインパラダイム F#は…

Kinkuma Framework F# v0.2のGetting Startを書きました

CodePlexの以下のページから参照できます。 http://fskinkuma.codeplex.com/documentation 力つきたので少しお休み。

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…

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

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

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番目…

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

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

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,>…

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…