F#

Soma 0.18.0.0 リリース

F#で作ったO/Rマッパー Soma 0.18.0.0をリリースしました(F#はもちろんC#やVB.NETでも使えます)。ダウンロードはこちら。 http://soma.codeplex.com/releases/view/68540 NuGetを使ったダウンロードもできます。 http://nuget.org/List/Packages/Soma Rele…

Task Parallel Libraryで並列処理とか待ち合わせとか

ジョブを並列処理するプログラムを書こうかなと思って.NET4のTPL(とTask Parallel Library)を調査中。TaskCreationOptions.AttachedToParentとTaskContinuationOptions.AttachedToParentを使うと結構簡単に書ける気がして試してみました。次のプログラムは…

Soma 0.17.0.0 リリース

F#で作ったO/Rマッパー Soma 0.17.0.0をリリースしました(F#はもちろんC#やVB.NETでも使えます)。ダウンロードはこちら(下に書いているようにNuGetでインストールもできます)。 http://soma.codeplex.com/releases/view/68540 Release Notes New Feature…

stringの配列からDictionaryへの変換をやってみた

C# F#

なんとなくやってみました。元ネタ http://d.hatena.ne.jp/okazuki/20110611/1307759414 http://gushwell.ldblog.jp/archives/52163460.html C# LINQはワンライナーで書くより変数で受けるのが好みです。 var arr = new[] {"1", "one", "2", "two"}; var key…

Soma 0.15.0.0 リリース

F#で作ったO/Rマッパー Soma 0.15.0.0をリリースしました(F#はもちろんC#やVB.NETでも使えます)。ぜひお試しください。 http://soma.codeplex.com/releases/view/67627 Release Notes Change - SQLパラメータを表現するために, コードクォテーションの利用…

IronJSとSomaを使ってJavaScriptからDBアクセスしてみる

JavaScriptからSomaを動かしてみようと思って試行錯誤。呼び出すには呼び出せたけどIronJSドキュメントがまだ少ないしAPIがよくわからないしでとても限定的。もう少しさくっとJSからCLRのオブジェクトが呼び出せるといいなぁ。 F# open System open System.C…

Soma 0.14.0.0 リリース

F#で作ったO/Rマッパー Soma 0.14.0.0をリリースしました(F#はもちろんC#やVB.NETでも使えます)。ぜひお試しください。 http://soma.codeplex.com/releases/view/67247 Release Notes New Feature - PowerShellをサポートしました。 Fix - コード生成のPow…

F#のレコードをJSONにシリアライズ

F#

F#のスクリプト(fsx)で次の3つの方法を試してみました。 Json.NET JavaScriptSerializer DataContractJsonSerializer #r "Newtonsoft.Json.dll"#r "System.Runtime.Serialization" open Newtonsoft.Json open System.IO open System.Runtime.Serialization…

Soma 0.13.0.0 リリース

F#で作ったO/Rマッパー Soma 0.13.0.0をリリースしました(F#はもちろんC#やVB.NETでも使えます)。ぜひお試しください。 http://soma.codeplex.com/releases/view/66786 今回のリリースは、Release Candidateの位置づけです。 7月までにはStableな1.0.0.0と…

Soma 0.12.0.0 リリース

F#で作ったO/Rマッパー Soma 0.12.0.0をリリースしました(F#はもちろんC#やVB.NETでも使えます)。ぜひお試しください。 http://soma.codeplex.com/releases/view/66304 Release Notes Change - IDbConfig.Parse メソッドが IDbConfig.Parser プロパティに…

SomaとF#スクリプトを使ったお手軽DBアクセス

Somaは大きなプロジェクトでも使えますし、小さなツール作成の用途にも使えます。 今回は後者をターゲットとして、Somaを使って手軽にDBアクセスを行うサンプルを紹介します。 環境準備 まず環境を整えます。 DBにはSQL Server 2008を使います。tempdbにアク…

Soma 0.11.0.0 リリース

F#で作ったO/Rマッパー Soma 0.11.0.0をリリースしました(F#はもちろんC#やVB.NETでも使えます)。ぜひお試しください。 http://soma.codeplex.com/releases/view/65812 Release Notes New Feature - SQLの解析結果のオブジェクトをキャッシュするようにし…

Soma 0.10.1.0 リリース

F#で作ったO/Rマッパー Soma 0.10.1.0をリリースしました(F#はもちろんC#やVB.NETでも使えます)。ぜひお試しください。 http://soma.codeplex.com/releases/view/65601 Release Notes New Feature - プロパティが大文字小文字を区別しない動的オブジェクト…

Soma 0.9.0.0 の新機能

新機能は大きく言って2つあります。 Microsoft SQL Server Compact 4.0 と SQLite といった軽量RDBMSのサポート 動的オブジェクトへのマッピングのサポート Microsoft SQL Server Compact 4.0 と SQLite のサポート 設定方法やデータ型のマッピングなどはド…

Soma 0.9.0.0 リリース

F#で作ったO/Rマッパー Soma 0.9.0.0をリリースしました(F#はもちろんC#やVB.NETでも使えます)。ぜひお試しください。 http://soma.codeplex.com/releases/view/65484 Release Notes New Feature - Microsoft SQL Server Compact 4.0 をサポートしました. …

Soma 0.8.0.0 をリリースしました。

F#で作ったO/Rマッパー Soma 0.8.0.0 をリリースしました。 http://soma.codeplex.com/releases/view/65079 F#にはもちろん、C#やVB.NETに最適化したAPIもあります。 F#用サンプルコード C#用サンプルコード VB.NET用サンプルコード 前回からの変更点は次の…

Soma 0.7.0.0 リリース

.NETのO/Rマッパー Soma 0.7.0.0 をリリースしました。F#、C#、VB.NETをサポートします。 http://soma.codeplex.com/releases/view/64498 今回のリリースでは、C#やVB.NETから使いやすいように、クラスの名前を調整しました。それと、C#を意識したドキュメン…

Soma 0.6.0.0 リリース

.NETのO/Rマッパー Soma 0.6.0.0 をリリースしました。 http://soma.codeplex.com/releases/view/64164 F#、C#、VB.NETで動作します。それぞれの言語ごとにサンプルプロジェクトを作ったので、それらを見ると使い方のイメージが湧くと思います。.NETのバージ…

F#でSomaを使うメリット その2 : 単位の利用

F#には単位という非常にクールな機能があります。F#でSomaを使えばこの機能が利用でき、わかりやすいプログラムを安全に(コンパイル時にチェックされるので)記述できます。サンプルを見てみましょう。まず、センチメートル、メートル、キログラム、そして…

F#でSomaを使うメリット

かんたんにいうとF#の次の特長を活かせます。 nullを排除できる 値をimmutableにできる それってF#なんだから当然でしょ、と思うかもしれません。しかし、既存のO/Rマッパーを使おうとすると上の2つの特徴はたやすく犠牲になってしまうのです。既存のO/Rマッ…

Soma 0.5.0.0 リリース

F#で作ったO/RマッパーSoma 0.5.0.0をリリースしました(C#やVB.NETでも使えます)。 http://soma.codeplex.com/releases/view/63671 今回リリースのメインの機能は2つです。 Enumのサポート ストアドプロシージャ呼び出しのサポート Enumサポートの機能は以…

breakとcontinue

F#

F#で楽々breakとcontinue。継続モナドまじパネぇっす!モナドわかっていないんですが、なんかかっこいい感じがビジバシ伝わってきます!自分も使いこなせるようになりたい。ところで、ふと疑問が。普通の?F#でbreakとcontinue相当したかったらどうなるんで…

Soma 0.4.0.0 リリース

F#で開発したO/Rマッパー Soma 0.4.0.0 をリリースしました。 http://soma.codeplex.com/ 今回のリリースの目玉は、C#とVB.NETのサポートです。実行させるにはもちろんF#のライブラリが必要ですが、API的にはF#のことを気にすることなく扱えるようにしました…

Soma 0.4.0.0 で F# と C# の一番の違い

一番異なるのはバインドする値の渡し方です。F#はコード引用符で渡しますが、C#(VB.NET)は匿名型で渡します。見た目は似ているのでそんなに気にならないかも。 F# let empList = MyDb.query<Employee> "select * from Employee where DepartmentId = /* deptId */0 a</employee>…

Enumとのマッピング

次のリリースからサポート予定です。 使用例ですが、テーブルの定義とレコードの定義は次のようになります。PersonテーブルのJobKindカラムにJobKind列挙型をマッピングします。 DDL create table Person ( PersonId int identity primary key, PersonName v…

Soma 0.3.0.0 リリース

F#のO/Rマッパー Soma 0.3.0.0 をリリースしました。 http://soma.codeplex.com/ SQL Server 2008 に加えて MySQL 5.x をサポートしてます。

Soma 0.1.0.1 の属性(アトリビュート)の紹介

Somaが提供する属性はたった4つです。いずれもレコード型(またはそのフィールド)にのみ指定できます。 Id 主キーに対応するフィールドに指定。採番方法を設定できる Version 楽観的排他制御のためのバージョン番号に対応するフィールドに指定。現状は数値…

Soma 0.1.0.1 リリース

F#に特化したO/Rマッパー Soma 0.1.0.1をリリースしました。 http://soma.codeplex.com/ ドキュメントはまだほとんどないのですが、codeplexのHomeにはCRUDのサンプルを載せました。とりあえずはイメージをつかんで貰えればなぁと思います。機能的には、当初…

Soma 0.1.0.1 のクエリ機能の紹介

Somaは「Sql Oriented MApping framework」のアクロニムです。というわけでSQLを柔軟に発行できるのがアピールポイントです。今日はSomaの中心機能であるクエリ機能を紹介したいと思います。SQLはS2Daoに由来する2 Way SQL(SQL文字列をそのままツールで実行…

Somaの適用レイヤについて

SomaのDbモジュールはService層とかBusinessLogic層とか呼ばれるレイヤでは呼び出さず、DAOとかRepositoryに相当するレイヤから利用するのがいいと思います。たとえば、次のような関数の実装として利用するのがいいのではと思います。 パラメータを個別に渡…