マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

ADO.NETEntity FrameworkDapper、その他の選択肢のどれを選ぶべきか?
トレードオフがあるので、新しい技術を使っておけばイイという訳には行かない模様。

生のデータプロバイダ系(ADO.NET)

SQLを使用して、二次元表形式の論理データを自由に取得できる。

DataReader?, DataSet?

特徴

Bean(POCO)にORMではなく、論理データ独立な二次元表(DataSet?DataTable?)を使用できる。

DataSet
├DataRelationCollection
├ExtendedProperties
└DataTableCollection
 └DataTable
  ├DataColumnCollection─DataColumn─ExtendedProperties
  ├PrimaryKey
  ├Constraints
  ├ChildRelations
  ├ParentRelations
  ├ExtendedProperties
  ├DataView
  ├DataRowCollection─DataRow

Bean(POCO)変換

実装は、それ程、難しくない。

適合するシステム・アプリケーション

DataAdapter, TableAdapter

ORM的なソリューションだが、
今となっては、中途半場で、あまり利用されていない。

特徴

適合するシステム・アプリケーション

JIONなどもサポートしているもよう(下記参照)なので、
頑張れば、情報系システム、基幹系システムへの応用も可能と思われる。

Open棟梁の動的パラメタライズド・クエリ

特徴

適合するシステム・アプリケーション

ORM系

Entity Framework

Entity Frameworkは高機能で複雑なため、
ORM自体の問題と、切り分けが難しい別の問題を持っている。

特徴

以下のような、3つの開発スタイルがある。

適合するシステム・アプリケーション

参考

以下が参考になる。

Dapper

Dapperは単純な分、ORMの良さや悪さを分析し易い。

特徴

感想

Dapperを使って認証基盤のユーザストアの永続化を実装してみた感想。

適合するシステム・アプリケーション

以下の様なケースでは、Dapperがイイのでは無いかと考える。

分析

データアクセスのフレームワーク、其々に、

などのトレードオフがある。

このため、アプリケーションの特性によって、
そのデータアクセスのフレームワークが適合するか?しないか?がある。

※ 例えば、基本的なORM実装では、オブジェクト操作と永続化操作は切り離されており、
 オブジェクトに対する変更を無造作に更新するため、未更新の列なども更新対象になる。
 (基本的に、未更新列を更新対象から外すなどの、きめ細かな操作はしない。)

参考


Tags: :データアクセス, :.NET開発, :ADO.NET, :Entity Framework


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS