Successfully reported this slideshow.
Your SlideShare is downloading. ×

linq.js - Linq to Objects for JavaScript

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 16 Ad
Advertisement

More Related Content

Slideshows for you (20)

Viewers also liked (13)

Advertisement

Similar to linq.js - Linq to Objects for JavaScript (20)

More from Yoshifumi Kawai (10)

Advertisement

Recently uploaded (20)

linq.js - Linq to Objects for JavaScript

  1. 1. linq.js Linq to Objects for JavaScript @neuecc - 2011/08/20
  2. 2. Profile  Twitter: @neuecc  HN : neuecc ("のいえ"と読ませています)  Microsoft MVP for C# LINQ  Blog : http://neue.cc/  LINQとかReactive Extensions(Rx)のことがメイン  CodePlexに色々ライブラリ公開しています  単体テスト用拡張メソッド : Chaining Assertion  dynamicを活用したJSONライブラリ : DynamicJson  生SQL文ベースのDB用ヘルパー : DbExecutor
  3. 3. linq.js
  4. 4. LINQ to Objects for JavaScript
  5. 5. Query Syntax Method Syntax
  6. 6. C# Enumerable.Range(1, 10) .Where(x => x % 2 == 0) .Select(x => x * x) .ToArray(); JavaScript(linq.js) Enumerable.Range(1, 10) .Where(function (x) { return x % 2 == 0 }) .Select(function (x) { return x * x }) .ToArray();
  7. 7. 完全に一致 JSなのにメソッドをUpperCamelCaseにしてまで一致させたのは後悔してますが……
  8. 8. メソッド構文、すなわち jQueryなどでお馴染みの メソッドチェーンは JavaScriptのLanguageとして INtegratedされているので VSで書けばIntelliSenseが効 いてQueryが書きやすい
  9. 9. jQueryあるし……?
  10. 10. 役割が違う jQueryはDOM操作 linq.jsはコレクション操作 RIAが叫ばれる昨今では、クライアントサイドでの処理 も少なくない。データ処理が重要だが、素の状態の JavaScriptはコレクション操作があまりにも貧弱(forルー プしかない!←ES5からfilter,map,reduce,every,some,forEachは入りました) ・冗長なDOM操作APIの苦痛を和らげるjQuery ・貧弱なコレクション処理を補完するlinq.js 互いに競合しない、むしろ協調動作する
  11. 11. Features #1  標準クエリ演算子の全てが使用可能  JoinだってDistinctだってThenByだって何でもある  挙動も完全再現してます(頑張った!)  当然、遅延評価だよ?  更に大量の謎拡張メソッドも  ForEachとかCascadeDepthFirstとか  UnfoldとかScanとかTakeExceptLastとか  現在のところ全90メソッド  DOM依存がないのでNode.jsやWSHでも動く  WSH/JScriptの腐ったEnumeratorも殺害可能
  12. 12. Features #2  jQueryプラグイン/拡張バインディング  JavaScriptといったらDOM、DOMといったjQuery  TojQueryとtoEnumerableでシームレスに連携  簡易ラムダ記法  .Where(function(x){ return x % 2 == 0 })  長くてダルい  .Where("x => x % 2 == 0")  C#風のラムダ式を文字列渡しすることが可能、短い!  .Where("$ % 2 == 0")  デフォルトイテレータ変数で更に短く書ける
  13. 13. Features #3  IntelliSense完全サポート  vs-docもちゃんと完備してます
  14. 14. Features #4  Reactive Extensions for JavaScript(RxJS)との接続  JavaScriptはEnumerableとObservableが両方そなわり 最強に見える  まあ、C#のほうがいいですけどね:)  LINQ to Everything, LINQ over the Language  RxJSはすっかり更新されてなくてアレゲだけど  更新待ってます  linq.jsも最後の更新が半年ぐらい前なのですけど  やるべきことは沢山たまっているのでやらないと……
  15. 15. 利用者の声  Linq for Javascript + JQUERY == BLISS!  It's a totally bloody loop-buster!!!  A real time saver for JS intensive apps.  Can't even imagine writing JavaScript without this library, linq.js together with jQuery makes life lot easier;)  This library is an absolute requirement when doing any JS coding - webpages, mongodb, node.js etc. I've been using it for months and I can't live without it.
  16. 16. まとめ  詳しくは@ITに記事を書いたので見てね  JavaScriptで配列をLINQにより処理できるライブラリ 「linq.js」を利用するには?  jQueryと「linq.js」を連携させてDOMをLINQにより 処理するには?  ダウンロードはCodePlexから  http://linqjs.codeplex.com/  NuGetからも入れられます  linq.js, linq.js-jQuery, linq.js-Binding

×