アクセスカウンタ

テーマ「LINQ」の記事 help リーダーに追加 RSS

トップへ  |  テーマランキング一覧へ


Dryad LINQ ってなに?

2008/06/29 22:52

調べ物をしていたら Microsoft Research の DryadLINQ とかいうページを見つけた。

DryadLINQ Home

 

この文書を見ると何となく並列検索用のLINQ拡張のようだけれど、並列実行といえば PLINQ って物もあるし何が違うんだろう。

どうも Expression Tree をどう扱うかが違うみたけだけれど、もうちょっと見てみよう。

 

追記

PLINQ が IEnumerable を拡張して並列処理を組み立てるのに対して Dryad LINQ は Expression Tree を元に並列処理を組み立てるってことかな。

記事へトラックバック / コメント


LINQ to CSV

2008/04/16 01:41

Code Project で LINQ to CSV なるものが公開されていました。
中身を見てみると、CSV のカラム設定がアトリビュートで行えたり、それなりに使えそうなリーダーがあるので LINQ としてではなく、CSV Read/Writer としても使えそうでいい感じ。

僕も以前似たようなものを作ったけれど、その時は ReadToEnd で丸ごと読み込んでいた。(もちろん全部読み込んでいるのででかすぎる CSV ファイルだと結構しねる。)どうせマッピング中は一件語ごとしか処理ししないんだから yield で都度読んでいってもいいんだよね。

LINQ パイプラインのいちばん最初だけ Stream から読んでその後は 単なるIEnumurable として扱えるのはいいね。 
ただ違うクエリを投げる場合は、また Stream から読みだすのでどこからデータを読み込んでいるのか理解する必要があるのは他の LINQ Provider と同じ。

こういうライブラリを見ていると VB.NET にも yield ほしいな〜と思ってしまう。

記事へトラックバック 0 / コメント 1


LINQ をちょっとまとめ中

2008/02/28 02:56
まだまとめ途中なんだけれど、SkyDrive に上げてみた。
記事へトラックバック / コメント


LINQ to SQL(v1.0) の特徴をまとめてみる

2008/02/03 16:54
一度書いたらIEが固まって全部なくなった...orz
何か忘れているような気もするけれど、思い出したら追記するか。

利点
・高機能な O/R マッピング
・コンパイル時のデータベース検証
・DataContext による自動的なデータ追跡
・遅延読み込み・遅延実行による効率的なデータアクセス
・SQLライクな構文によるデータアクセス
・CLR メソッドの T-SQL へのマッピング
・エンティティによる柔軟なマッピング
・エンティティによるインテリセンス
・楽観的ロックによる同時実行制御

欠点
・一括データ操作に不向き
 →データ取得時にロックがかからない
 →SQLのUpdate,Insert,Deleteの未採用
 →次期バージョンに期待
・遅延実行、遅延ロードによる予期しないデータアクセス
 →ToList, ToArray メソッドの使用
 →LoadOption の使用
・SQLのチューニング
 →意外と効率的なSQL吐くよ
 →クエリをコンパイルしてT-SQL変換のコストを低減
 →パーシャルにストアドプロシージャ定義

僕が一番うれしいと思うのはコンパイルのデータベース検証とコーディング時のインテリセンスかな
一件単位の更新という欠点さえどうにかすれば何とかなるかな。
あとはこれをどこに配置するか。単純なWebサイトなら LINQ DataSource 使っちゃう?

DataContext を受け渡すとかは考えられないから、エンティティを受け渡す?
LINQ to DataSet が以外と使えるかも?
プレゼンテーション部に関しては今までと同じかなー、LINQ to Object で簡単になるっていうのはあるかも知れないけれど。

Nyaruru さんにコメントで教えてもらった。
MSDNライブラリに整備されたドキュメントが大量にあります。ここからたどれるそうです。
プログラミング ガイド (LINQ to SQL)

LINQ to SQL の全体像を知りたい場合はこちらの文書が役に立つと思います。
LINQ to SQL: リレーショナル データのための .NET 統合言語クエリ

#MSDNの方の文書は大量だなー。ちょっと時間をとってしっかり読んでみよう。
記事へトラックバック 0 / コメント 4


初期化子(イニシャライザ)好き

2008/01/30 23:03
今回 VB9, C#3.0 で追加された機能で一番好きなのはこれかな。
初期化子(イニシャライザ)で初期化をすると

・フィールドの初期化のためだけにコンストラクタを作るのはいや。
・その変数を初期化したい!!ってのが読み手にわかる。
・どこからどこで初期化しているのかがよくわかる。
・宣言と同時に初期化できる。(その直後使うことも)
・初期化してそのまま使い捨てしたり返却したりできる。
・ラムダやデリゲートも割り当てることができる。

下の2つは若干反論がありそうだけれど僕は好き
ただ VB9 の場合は "."(ドット) と "_"(アンダーバー)が若干足を引っ張っている気がする。
With キーワードを使うので "." はまだ許せるけれど "_" はいい加減なくしてくれるとありがたいな。

ってなのをかいてたらこんなエントリが。
こう書くと怒られそうだけれど、なんとなくVB6のフォームファイルを思い出した。
[C#] もっとオブジェクト初期化子(当面C#と.NETな記録)
記事へトラックバック 0 / コメント 1


何で LINQ で書くのか

2008/01/30 19:28
この前のわんくま勉強会の懇親会(2次回)で えムナウさんえぴさんとっちゃん と同じテーブルだったんで、ちょっと気になっていたことをぶつけてみた。
Y Combinator ってなに?

前に Lambda で再帰をやっていた時に Nyaruru さんに助言をいただいて、Y Combinator なるものを教えてもらった。
その中でカリー化によって引数を一つにすると Y Combinator を作ることができるという話だった。
確かに Lambda でデリゲートを返せば作れるのはわかる。けれどそれを使って何が嬉しいのかわからない。
ちょうどいいところに豪華な人々がいたのでぶつけてみたわけです。

帰ってきた答えとしては、
・関数型の言語がもともとそういうものだった
とのこと。いまいち何が嬉しいのかわからないのでもう少し聞いてみる。

・遅延評価されるので、必要になった時に初めて評価される。だからパフォーマンス上有利
なるほど、これはうれしい。だけれど引数1個じゃなくてもいいんじゃないかな。

・並列化がしやすくなる
引数が1つだとほかの引数の返却を待たずに独立して実行できるので並列化が簡単

あれ?これってPLINQ?
LINQ to Object がどのように動いているかといえば、えムナウさんの一連のエントリが参考になるわけですが、将来的にLINQが賢くなればLINQで書いていれば実行時に最適なパスを見つけて検索を行ってくれる可能性があるわけです。
クエリ式で すっきりかけるのと同じぐらい魅力的なことですよね。
記事へトラックバック / コメント


マイクロソフトプレスの一部が無料観覧できるようになっています。

2008/01/01 09:38
Free Microsoft Press E-Book Offer!
マイクロソフトプレスの一部が無料で観覧できるようになっています。
中でも LINQ に関しては Appendix 以外のすべての章が観覧、ダウンロードできるようになっています。

観覧できるのは次の3つの本です。いずれも英語ですが読み応えがありそうです。
正月の暇な時間にでも読んでみてはどうでしょう。
Introducing Microsoft LINQ(1,2,3,4,5,6章)
Introducing Microsoft ASP.NET AJAX (1,5章)
Introducing Microsoft Silverlight 1.0 (1,5章)

記事へトラックバック / コメント


Parallel Extensions なビデオ3つ

2007/12/06 23:38
MSDN Nuggets で Parallel Extensions なビデオが3つほど公開されていました。
Parallel LINQ (PLINQ)
How to use the static Parallel class
Intro to Parallel Extensions to the .NET Framework

中身はまだ見てないのですがわくわく
このPCにはまだ Visual Studio 2008 や Parallel Extensions が入ってない。。。
今日はノート出してくるのもうめんどくさいなぁ
明日以降かな
記事へトラックバック / コメント


PLINQ の初めてのCTP

2007/11/30 07:37
Parallel Extensions to the .NET FX CTP(Somasegar's WebLog)より
前から少し話に出ていた PLINQ(Parallel LINQ) の初の CTP が公開になっていますね。
ダウンロードはここ Microsoft Parallel Extensions to .NET Framework 3.5, December 2007 Community Technology Preview

PLINQ の話は少し前の MSDN マガジン マルチコア プロセッサでクエリを実行するなどで取り上げられていましたが、これからのマルチコア時代に対応したLINQによる並列処理を可能にした追加機能ですね。

たぶんこれからもどんどん変わっていくのだと思いますが、これはかなり興味がありますね。
記事へトラックバック / コメント


カスタムプロバイダを作る意味

2007/11/19 11:50
少し前に ファイルベースの Provider を作ってみて思ったこと、
クライアントの資源、特にファイルベースのデータソースにアクセスする場合はすべて読み込んで メモリ内クエリ(LINQ to Object) で良いんじゃないか?
じゃぁカスタムプロバイダを作る意味って何だろう。

LINQ の思想から言うとデータソースを意識せずに透過的にデータを操作できというのは使う方からすると魅力的だしカスタムプロバイダを作る意味はある。
ただ実際に設計する場合、検索するためのインターフェイスをもともと持っていないなら、無理に Provider 作るよりは LINQ to Object で良いんじゃね?と思う。

REST 形式の WebService や SQL などクエリを投げるときは確かに有効かも。
Expression Tree を解析しながらクエリを組むのは頭が痛くなってくるけれど。

まぁ Provider なんて物はどんなものでもそうなんだけれど、よっぽどのことが無い限りは作らないよね。
動きを知るとか、構文解析してみたいとか言うなら一度は見ておいた方が良いけれど。

かなりグダグダしてますが、もう少し考えてみよっと。
記事へトラックバック 1 / コメント 0


タイトル 日 時
ファイルベースの LINQ っていつどこまで読めばいいんだろう。
LINQ の IQueryable と IQueryProvider を見ててちょっと思った。 LINQ to SQL や LINQ to Object はクエリを実行するときに式を解析して検索したり、キャッシュからどうにかしたりしているわけだけれど、 LINQ to XML などの ファイルをデータソースにした LINQ はどうしているんだろう。 ...続きを見る

トラックバック 1 / コメント 2

2007/11/08 23:28
オブジェクトと文字や数字の比較はオブジェクト
オブジェクトと文字や数字の比較はオブジェクト これの続き とりこびとさん が乗っ取られた!! [Option SortOf] ...続きを見る

トラックバック 1 / コメント 12

2007/11/03 12:39
LINQ to いろいろ
LINQ to Fliker の記事を見てから Web で検索したら結構出てきた。 Third-Party LINQ Providers (OakLeaf Systems) Community Convergence XXVII(Charlie Calvert's Community Blog) ColePlex で LINQ を検索した結果 を見てみるとこんなものが現在開発中のようですね。 ...続きを見る

トラックバック 0 / コメント 3

2007/10/31 11:49
バーチャルラボに Visual Studio 2008 のコースが登場
Visual Stusio 2008のバーチャルラボができてた!!!(ASP++)より、 バーチャルラボに Visual Studio 2008 を使用した新しいコースが加わったみたいです。 ...続きを見る

トラックバック 0 / コメント 1

2007/10/30 11:49
LINQ Provider for Flickr
New LINQ provider for Flickr(fuz's WebLog) Flickr の検索を LINQ で行える Provider が紹介されています。 ...続きを見る

トラックバック / コメント

2007/10/29 09:51
ラムダ式の遅延実行
Javascirpt で 思ったとおり実行されないと質問された。 こんなやつ ...続きを見る

トラックバック 1 / コメント 2

2007/10/16 20:58
LINQ と同時実行制御 その3
前回の予告したように多層アプリケーション時に LINQ to SQL でコンフリクトをどのように捕捉するかを考えます。 ...続きを見る

トラックバック / コメント

2007/10/12 11:10
LINQ と同時実行制御 その2
LINQ と同時実効性制御 その2 ...続きを見る

トラックバック / コメント

2007/10/11 18:03
DataShapeってどこのだれ?
LINQ to SQL: リレーショナル データのための .NET 統合言語クエリ (MSDN) を読んでいて、聞きなれないクラスが出てきた。 DataShape というクラスで、どうも LINQ to SQL でデータを即時読み込みする時 DataContext の代わりに使用するクラスのようなんだけれど、Visual Studio 2008 Beta2 日本語版ではどうにも見つからない。 ...続きを見る

トラックバック 0 / コメント 2

2007/10/09 09:52
集合に対して繰り返し処理を行うときは取得したデータに対して行う...のがいいかも
何を当たり前のことを言っているといわれそうですが。(汗 こんな場合どんな結果を期待しますか? ...続きを見る

トラックバック / コメント

2007/10/06 22:24
LoadOption と 遅延読み込み
LoadOption と 遅延読み込み 遅延ローディングの使い方(LINQ to SQL)(どっとねっとふぁん)より 以前のエントリで LINQ to SQL では遅延ロード(Lazy Load)について触れたと思います。確かに動きとしては素直な気がしますが、ラウンドトリップが多ければ多いほどパフォーマンスの面では気になってきます。 ...続きを見る

トラックバック 1 / コメント 0

2007/10/04 10:23
LINQ と同時実行制御
LINQ と同時実行制御 LINQ と同時実行制制御 ...続きを見る

トラックバック / コメント

2007/09/23 12:24
XML to Schema To for Visual Basic 2008
XML to Schema Tool for Visual Basic 2008(The Visual Basic Team)より XML to Schema To for Visual Basic 2008 というツールが紹介されています。 ...続きを見る

トラックバック 1 / コメント 2

2007/09/17 01:59
LINQ いつ更新されるの?
前回 LINQ の遅延評価について必要なときに実行されるという話をしたと思います。 検索などの場合はそれほど問題は無いと思いますが、更新系の処理を行う場合は少し注意が必要です。 ...続きを見る

トラックバック / コメント

2007/09/14 20:58
Visual Studio 2008 に含まれるサンプル
Visual Studio 2008 をインストールすると下記のディレクトリにサンプルコードをまとめた Zip ファイルが格納されています。 C:\Program Files\Microsoft Visual Studio 9.0\Samples\1041 ソリューションファイルが丸ごと入ってるので、実際動かして確認することができます。 ...続きを見る

トラックバック / コメント

2007/09/10 14:00
LINQ いつデータを持ってくるの?
たとえば次の埋め込みクエリを記述した場合、実際にデータベースに問い合わせを行うのはいつでしょうか?Dim db As ComuplusContext = New ComuplusContext() Dim query = From u In db.User _             Where u.UserName Like "*k*" _             Se... ...続きを見る

トラックバック 2 / コメント 0

2007/09/08 23:51
LINQ 始めました。その2
LINQ 始めました。その2 で、ごそごそ触っているわけですが、結構面白いです。 昨日僕の環境では SQLServerQueryVisualizer が動かないと めさいあ さんと話していたんだけれど、どうも Beta2 時点の VisualBasic では SQLServerQueryVisualizer を入れてもクエリの結果しか表示できないようです。 ...続きを見る

トラックバック / コメント

2007/09/06 13:41
LINQ 始めました
週末の AdminTech 勉強会で TechEd の振り返りということで、 30分ほどですが 尾崎さん と めさいあさん と一緒に LINQ セッションについて感想やディスカッションを交えてお話します。 今まで LINQ to SQL は触ったことがなかった、というかむしろ避けていたんですがこれを機に週末からさわり始めました。 ...続きを見る

トラックバック / コメント

2007/09/05 12:49

トップへ  |  テーマランキング一覧へ