TOPシステム開発> 第1回:LINQとADO.NET Entity Framework (1/3)




次世代データアクセステクノロジー」

次世代データアクセステクノロジー

第1回:LINQとADO.NET Entity Framework

著者:マイクロソフト  小高 太郎

公開日:2008/1/8(火)

LINQとADO.NET Entity Framework

マイクロソフトはVisual Studioの次期メジャーリリースVisual Studio 2008をリリースした。Visual Studio 2008が登場することで、ようやく、NET Framework 3.0に完全に対応した開発ツールが入手できるようになる。

Visual Studio 2008で、追加される機能の中で注目度が大きいのがLINQである。LINQとは、.NET Frameworkで使用する言語を拡張する形で実装される、言語埋め込みクエリー技術である。LINQを使用するとこのようにプログラム言語として、SQLライクにコーディングできるという特徴がある。

まずはリスト1のプログラムをご覧いただきたい。これはデータベースに対してクエリーしている例であるが、LINQを使用するとプログラム言語として、SQLライクにコーディングできるという特徴がある。

また、データアクセスのテクノロジーとして、もう1つ加わるのがADO.NET Entity Frameworkだ(Visual Studio 2008のアップデートとして、2008年の前半に予定)。ADO.NET Entity Frameworkは、データスキーマを抽象化、概念モデルとし、その概念モデルに対するクエリーを可能にする技術である。本記事ではこれらの技術の背景や住み分けについて解説していく。

リスト1:LINQの例
using (pubsDataContext pubs = new pubsDataContext())
{
    var titles = from t in pubs.titles
              where t.type == "business"
              select t;
    foreach (var t in titles)
Console.WriteLine(t.title_id);
}

論理階層
図1:論理階層
(出典:エンタープライズ パターン & プラクティス
http://www.microsoft.com/japan/msdn/practices/
type/Patterns/enterprise/ArcThreeLayeredSvcsApp.aspx)
(画像をクリックすると別ウィンドウに拡大図を表示します)

階層化アーキテクチャー

本記事では技術を整理する切り口として、階層化アーキテクチャーの視点で説明する。各階層は図1のような形に分類される。

プレゼンテーション層は、アプリケーションのユーザインターフェイスを提供する。ビジネス層はアプリケーションのビジネス機能を実装する。そしてデータ層では、データベースやその他の外部システムへのアクセスが提供される。

ドメイン層

データアクセスを考える場合、ビジネス層の設計次第でデータ層の実装が大きく変わってくる。

ビジネス層の中では、図1が示すように業務のモデルの管理、これらに対する操作、サービスの公開など、内部でさまざまな処理が行われる必要がある。対象となる業務の、いわゆるビジネスロジックそのものが実装された部分を強調して「ドメイン層」と呼ぶことがある。

本記事ではドメイン層についてMartin Fowler氏が執筆した「Patterns of Enterprise Application Architecture(以下、PoEAA)」の中で紹介されているアーキテクチャパターンをベースに解説を行っていく。

PoEAA内では、ドメインロジックの構築について「トランザクションスクリプト」「テーブルモジュール」「ドメインモデル」の3つのパターンに分類している。では冒頭で述べたテクノロジーと対比してみていこう。 次のページ


1   2  3  次のページ


マイクロソフト株式会社 小高 太郎
著者プロフィール
マイクロソフト株式会社  小高 太郎
ERP パッケージ開発に携わり、プログラマーからスタート。Microsoft Universityの講師を兼務、その後、SE、PM、管理職の道に進むも、縁あって2007年3月よりデベロッパー エバンジェリストに転身、現在は開発者向けに様々な技術訴求を行うべく活動中。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。
ご意見、ご要望にお応えします! インプレスIT INSIDE

INDEX
第1回:LINQとADO.NET Entity Framework
LINQとADO.NET Entity Framework
  トランザクションスクリプト
  ドメイン層の各パターンを補完するLINQとは?
次世代データアクセステクノロジー
第1回 LINQとADO.NET Entity Framework
第2回 LINQによるデータアクセス実装
第3回 さまざまなデータソースへのアクセス
第4回 ADO.NET Entity Frameworkによるデータアクセス実装方法
第5回 ADO.NET Entity FrameworkにおけるObjectServicesの使用

Think IT 過去人気記事

注目おすすめ情報
cript type='text/javascript'>

Think IT人気ライター BEST 5

IT製品/サービス資料ダウンロード
    おすすめのホワイトペーパー情報を準備中です