2014年5月28日水曜日

C#応用 – LINQプログラミング 1




参加して、アンケートに答えると

デモとハンズオンを収めたCDが

貰えるのだという証拠写真である。



さて、今回はLINQプログラミングである。

LINQとは
Language INtegrated Query の略である。

日本語では、統合言語クエリ

さまざまなデータソースに対して統一的なプログラミングモデルで

データソースに依存しない一貫的なモデルによりプログラミングできる

データ抽象化層があって

あらゆる種類のデータアクセスの実装を簡素化し、一元管理する方法を

提供するものである。

つまり、Visual Basic, C#などの.NET言語にクエリを導入するプログラミングモデル
 言語の機能であるので、Visual Studio / コンパイラによる支援がある

言語より統一的にクエリを行うことができる

絞り込んで列挙するという操作をより簡単に行うことができるという特徴がある。

なぜLINQ?
プログラムによって管理されるデータはさまざまである
 配列、オブジェクト、XML、DB、テキスト、レジストリ、e-mail、SOAP、Excelファイル...

また、それぞれのデータソースはそれぞれに特有のアクセスモデルを持つ
  DBにはSQL、XMLにはDOM, XPath, XQuery等...

これらに対処するため

複数のデータアクセス技術を統合的なモデルに統一しようと試みたのである。
 ODBC(Open DataBase Connectivity)
 WMIリポジトリに行うようにExcelファイルにアクセスできる
 クエリにはSQLを利用

現実には、リレーショナルモデルや階層モデルなどケースによって分かれてしまう。

データモデルが特定の言語に結びつかないとさまざまな

型システムの管理が必要になる。

それぞれに異なる部分があり、現実的にはそう容易ではない。

LINQとは

異なるデータモデル間の「操作」を共通利用し、「構造」について

平準化するものではない。

つまり、データ構造を維持し、データの物理表現とは関係なく利用でき

データ型すべてにクエリを実行する統一的構文である。


 C# / VB.NET
 LINQ Library
 LINQ to Object  LINQ to SQL  LINQ to XML  LINQ to ...



今日の名言
不可抗力に逆らうに足る十分な気力と体力を持ち合わせており、同時に新しい生活を
創造するに足るだけの余裕を残している人間など、誰一人として存在しない。どちらか
一方を選ぶしかなかろう。避けようのない人生の猛吹雪におとなしく従うのもよかろう。
さもなければ、徹底的に抵抗して墓穴を掘るしかない。
私はミズーリの農場でこのような事例を目の当たりにしている。その農場にかつて多く
の樹木を植えたことがあった。最初のうち、それらの木々は目覚ましい勢いで成長した。
やがて猛吹雪が大小の枝に雪化粧を施し、厚い氷で覆ってしまった。その樹木は
氷の重荷におとなしく頭を下げようとせず、敢然と抵抗したあげく、重みに耐えかねて
折れたり、裂けたりして - 結局は切り倒されてしまった。それらの木々は北国の森の
掟を知らなかったのだ。私はカナダの常緑樹林を何百キロも旅したことがあるが、
吹雪や氷で損傷を受けたトウヒやマツを見かけたことはない。これらの常緑樹林は
身を屈する方法を、枝の垂らし方を、避けようのないものに同調する方法を知っている。
                               デール・カーネギー