.NET Framework 4.5 におけるデータ アクセスの概要 その1

新しい.NETのデータアクセスに関してまとまった日本語ドキュメントがあまりないかったので、このブログでシリーズ化してみようと思います。

 

内容はこんな感じで考えています。(変更する可能性はおおいにあり)

 

概要編:全体像

はじめに

.NET ではアプリケーションからデータベースへアクセスするために、様々なテクノロジーを提供しています。.NET Frameworkを提供する以前は、DB-Libraryに代表される高速かつデータベースサイドに近い低レベルAPIを提供しました。その後、RDBを抽象化するODBC(Open DataBase Connectivity)、Visual BasicからのアクセスをサポートしたDAO(Data Access Objects)、ユニバーサルデータアクセスを実現したADO(Active Data Objects)など、言語や環境、あるいはその時代背景に合わせて、新たなテクノロジーを常に提供しています。当然、アプリケーションを開発する際は、こうして用意された様々なテクノロジーから適切なものを選択して実装する必要があります。そして、この状況は.NET Frameworkを使用してアプリケーションを開発する場合においても同様です。現時点で.NET Framework環境においてC#、VB.NETでデータアクセスをする場合に、検討すべき技術は以下の3つに集約できます。

 

ADO.NET

OLE DB や ODBC 経由で公開されるデータソースだけでなく、SQL Server や XML などのデータ ソースに対する一貫性を持ったアクセス機能を提供します。.NET Framework初期から導入されたテクノロジーであり、最も低レベルのAPIを提供します。

 

ADO.NET Entity Framework

.NET Framework 3.5 SP1で追加されたデータベースアクセステクノロジーです。開発者はリレーショナルスキーマに対して直接プログラミングする代わりに、概念モデルに対してプログラミングすることで、データ アクセス アプリケーションを作成できます。その目的は、アプリケーションに必要なコードの量と保守作業の量を減らすことです。.NET 3.5 SP1以降で最も進化しているデータアクセステクノロジーです。ここではADO.NET Entity Frameworkを中心にご紹介します。

  

LINQ(Language Integrated Query : 統合言語クエリ)

.NET Framework 3.5で追加されたデータアクセステクノロジーです。上記3つのテクノロジーで作成されたオブジェクトをはじめ、リレーショナル データや XML データなど、あらゆる情報リソースに対して一貫したプログラミングモデルでデータアクセスを実現できる技術です。SQL ServerへのアクセスするためのLINQ to SQLという技術が提供されていますが将来的な機能強化は予定していません。SQL Serverへのアクセスに関してはADO.NET、もしくはADO.NET Entity Frameworkを利用する方が良いでしょう。