【3分で流し読み】ADO.NETってなんだっけ?

こんばんは。今日は.NET6を触ってみている中でADO.NETというやつにぶつかりましたので、勉強がて調べて分かったことをこちらにまとめておこうと思います。

それではまいります。

ADO.NETの概要

https://docs.microsoft.com/ja-jp/visualstudio/data-tools/visual-studio-data-tools-for-dotnet?view=vs-2022

ADO.NET概要の公式Docはこちら。

https://docs.microsoft.com/ja-jp/dotnet/framework/data/adonet/ado-net-overview

その他Webサイトなども見ながら分かったポイントを以下箇条書き。

  • .NET Framework (ASP.NET / .NET Coreなど)でSQL ServerやOracle DBといったデータソースへの接続を実現・標準化するためのソフトウェアコンポーネント
  • .NET Framework提供元であるMicrosoftにより開発された
  • ActiveX Data Object (ADO)を.NET Framework環境で動作させるためのAPIとして開発された
  • ただし、ADOの機能拡張ではなく、全く新規のアーキテクチャで開発されている
  • 従来のADOと比べて、非同期データセット(データベースから引き出したデータをメモリ上に保持しておけるため高速かつ、処理中にデータベースとの接続を維持する必要がない)、データ転送形式にはXMLを使用(他環境との親和性向上)、各種データソースとの接続が標準化されている点が特徴
  • ADO.NETには、データベースとの接続、コマンドの実行、結果取得を行うためのしくみが含まれている。
  • ADO.NETはSystem.Data.dllにクラスとして含まれている

ADO.NETのアーキテクチャ

https://docs.microsoft.com/ja-jp/dotnet/framework/data/adonet/ado-net-architecture

上の記事を読んで以下を理解。

  • ADO.NETは、大きく.NET Framework ProviderとDatasetという2つのコンポーネントから構成されている
  • .NET Framework Providerは、データ操作・参照・接続の機能を担当。具体的にはConnectionオブジェクト(接続担当)、Commandオブジェクト(操作担当)、Readerオブジェクト(参照担当)、DataAdapter(データソースとDatasetの調整役を担いCommandオブジェクトの操作を裏でささえてくれる)が実現してくれる。
  • Datasetは、データソースに依存しないデータアクセスを実現する。メモリ上にデータを保持。Datasetの中には、実際にデータを保持するDataTableオブジェクトのコレクションが含まれる)
  • ユースケースによって、Readerを利用するか、Dataset利用するかのオプションがある。
  • Datasetの利用が推奨されるのは、データをメモリ上に保持したい場合、データをリモート処理する場合(これはどういうことかちょっとよくわからなかった)、複数データソースと動的に対話する場合、データソースの接続を節約したい場合
  • 一方で、DataReaderを利用する方がパフォーマンスに良い影響を与えるらしい(DataSetの機能が利用するメモリを節約できたり、DataSetの機能を実現するための動作のオーバヘッドが減るため)
Datasetの構造(公式Docより)

なお、Data Providerが提供する機能の詳細は以下

https://docs.microsoft.com/ja-jp/dotnet/framework/data/adonet/data-providers

DataSetは以下に説明があります。

https://docs.microsoft.com/ja-jp/dotnet/framework/data/adonet/ado-net-datasets

以上、簡単ではありますがADO.NETの概要でした。関連するテクノロジとして登場するLINQ, Entity Frameworkなどについても今後追加Updateしたいと思います。

少しでも参考になりましたら幸いです。

おしまい

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。

ABOUT US
Yuu113
初めまして。ゆうたろうと申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。 日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。