Visual Studio でのデータの使用

Visual Studio では、ローカル コンピューター、ローカル エリア ネットワーク、あるいはパブリック クラウド、プライベート クラウド、またはハイブリッド クラウドにおいて、任意の形式や任意の場所で、任意のデータベース製品またはサービスを、仮想的にデータに接続させるアプリケーションを作成します。

JavaScript、Python、PHP、Ruby、または C++ のアプリケーションでは、ライブラリを入手してコードを記述することで、他の操作と同様にデータに接続できます。 .NET アプリケーションの場合、Visual Studio には、データ ソースの探索、メモリ内のデータを格納および操作するためのオブジェクト モデルの作成、およびユーザー インターフェイスへのデータのバインドに使用できるツールが用意されています。 Microsoft Azure には、.NET、Java、Node.js、PHP、Python、Ruby、モバイル アプリ用の SDK と、Azure Storage に接続するための Visual Studio のツールが用意されています。

次の一覧は、Visual Studio から使用できる多くのデータベースおよびストレージ システムの一部を示しています。 Microsoft Azure オファリングは、基になるデータ ストアのすべてのプロビジョニングと管理を含むデータ サービスです。 Visual StudioAzure 開発ワークロードを使用すると、Visual Studio から直接 Azure データ ストアを操作できます。

[Azure の開発] ワークロード

ここに記載されている他の SQL および NoSQL データベース製品のほとんどは、ローカル コンピューター、ローカル ネットワーク、または仮想マシン上の Microsoft Azure でホストできます。 データベースを Microsoft Azure の仮想マシンでホストする場合は、データベース自体を管理する必要があります。

Microsoft Azure

  • SQL Database
  • Azure Cosmos DB
  • ストレージ (BLOB、テーブル、キュー、ファイル)
  • SQL Data Warehouse
  • SQL Server Stretch Database
  • StorSimple
  • その他...

SQL

  • SQL Server 2005-2016 (Express および LocalDB を含む)
  • Firebird
  • MariaDB
  • MySQL
  • Oracle
  • PostgreSQL
  • SQLite
  • その他...

NoSQL

  • Apache Cassandra
  • CouchDB
  • MongoDB
  • NDatabase
  • OrientDB|
  • RavenDB
  • VelocityDB
  • その他...

多くのデータベース ベンダーとサード パーティは、NuGet パッケージによる Visual Studio の統合をサポートしています。 nuget.org または Visual Studio の NuGet パッケージ マネージャー ( [ツール]>[NuGet パッケージ マネージャー]>[ソリューションの NuGet パッケージの管理] ) でオファリングを調べることができます。 その他のデータベース製品は、拡張機能として Visual Studio と統合されます。 これらのオファリングは、Visual Studio Marketplace か、 [拡張機能]>[拡張機能の管理] に移動して、ダイアログ ボックスの左側のウィンドウで [オンライン] を選択して参照します。 詳細については、「Visual Studio 向けの互換性のあるデータベース システム」を参照してください。

Visual Studio の接続済みサービスを使用することで、データベース サポートをプロジェクトに追加するプロセスを簡単にできます。

SQL Server シナリオの場合、次の接続済みサービスを通じてサポートします。

  • オンプレミスの SQL Server。 このシナリオでは、ローカル ネットワークのどこかに SQL Server をインストールし、それに接続します。
  • ローカル コンピューターの SQL Server。 このシナリオでは、ローカル コンピューターに SQL Server をインストールし、それに接続します。
  • SQL Server Express LocalDB。 Visual Studio 以外はインストールしません。それに接続するだけです。
  • コンテナーの SQL Server Express LocalDB。 前のオプションと同じ LocalDB ですが、ローカル コンテナー内です。
  • Azure SQL Server DB。 Azure でライブ実行されているサービスに接続します。

その他のデータ関連テクノロジの場合、Visual Studio 2022 では次がサポートされています。

  • Azure Storage (ローカルとリモートの両方)
  • Azure Cosmos DB (ローカルとリモートの両方)
  • SQLite (ローカル専用オプション)
  • コンテナーの PostgreSQL (ローカル専用オプション)
  • コンテナーの MongoDB (ローカル専用オプション)

接続済みサービスを除き、次の一覧は、Visual Studio から使用できる多くのデータベースとストレージ システムの一部を示しています。 Microsoft Azure オファリングは、基になるデータ ストアのすべてのプロビジョニングと管理を含むデータ サービスです。 Visual StudioAzure 開発ワークロードを使用すると、Visual Studio から直接 Azure データ ストアを操作できます。

[Azure の開発] ワークロード

ここに記載されている他の SQL および NoSQL データベース製品のほとんどは、ローカル コンピューター、ローカル ネットワーク、または仮想マシン上の Microsoft Azure でホストできます。 データベースを Microsoft Azure の仮想マシンでホストする場合は、データベース自体を管理する必要があります。

Microsoft Azure

  • SQL Data Warehouse
  • SQL Server Stretch Database
  • StorSimple
  • その他...

SQL

  • Firebird
  • MariaDB
  • MySQL
  • Oracle
  • その他...

NoSQL

  • Apache Cassandra
  • CouchDB
  • MongoDB
  • NDatabase
  • OrientDB|
  • RavenDB
  • VelocityDB
  • その他...

注意

SQL Server 2005 の延長サポートは 2016 年 4 月 12 日で終了しました。 Visual Studio 2015 以降のデータ ツールが SQL Server 2005 と引き続き動作することは保証されていません。 詳細については、「SQL Server 2005 のサポート終了に関するお知らせ」を参照してください。

.NET 言語

Visual Studio のドキュメントで説明されているデータ アクセスのテクノロジでは、ADO.NET が使用されています。 ADO.NET は以前のデータ アクセスのフレームワークであり、最新のデータ アプリケーションには推奨されません。 データ アクセス開発には、.NET Core または .NET 5 以降をターゲットとし、Entity Framework Core を使用することをお勧めします。

ADO.NET は、任意の種類のデータ ソース (リレーショナルと非リレーショナルの両方が対象) にアクセスするためのインターフェイスを定義するクラスのセットです。 Visual Studio には、ADO.NET と連携して、データベースに接続し、データを操作し、データをユーザーに提示するのに役立つ、いくつかのツールとデザイナーがあります。 このセクションのドキュメントでは、これらのツールの使用方法について説明します。 ADO.NET コマンド オブジェクトに対して直接プログラムすることもできます。 ADO.NET API を直接呼び出す方法の詳細については、「ADO.NET」を参照してください。

ASP.NET に関連するデータ アクセス ドキュメントについては、ASP.NET サイトのデータの操作に関するページを参照してください。 ASP.NET Model-View-Controller (MVC) での Entity Framework の使用に関するチュートリアルについては、「MVC 5 を使用した Entity Framework 6 Code First の概要」を参照してください。

C# または Visual Basic のユニバーサル Windows プラットフォーム (UWP) アプリは、Microsoft Azure SDK for .NET を使用して Azure Storage およびその他の Azure サービスにアクセスできます。 Windows.Web.HttpClient クラスは、任意の RESTful サービスとの通信を可能にします。 詳細については、「Windows.Web.Http を使って HTTP サーバーに接続する方法」を参照してください。

ローカル コンピューター上のデータ ストレージの場合、推奨される方法は、アプリケーションと同じプロセスで実行される SQLite を使用することです。 オブジェクト リレーショナル マッピング (ORM) レイヤーが必要な場合は、Entity Framework を使用できます。 詳細については、Windows デベロッパー センターの「データ アクセス」を参照してください。

Azure サービスに接続する場合は、最新の Azure SDK ツールをダウンロードしてください。

データ プロバイダー

ADO.NET で使用するデータベースには、カスタム ADO.NET データ プロバイダー が必要です。そうでない場合は、ODBC または OLE DB インターフェイスを公開する必要があります。 Microsoft では、SQL Server 製品用の ADO.NET データ プロバイダー、および ODBC および OLE DB プロバイダーの一覧を提供しています。

注意

OLEDB または ODBC データ プロバイダーを使用してデータベースに接続するために Visual Studio を使用している場合は、Visual Studio 2022 より前のバージョンの Visual Studio がすべて 32 ビット プロセスであることに注意する必要があります。 つまり、Visual Studio の一部のデータ ツールでは、32 ビットのデータ プロバイダーを使用してのみ OLEDB または ODBC データベースに接続できるということです。 これには、Microsoft Access 32 ビット OLEDB データ プロバイダーと、その他のサードパーティ製 32 ビット プロバイダーが含まれます。

Visual Studio 2022 を使用してデータベースに接続している場合は、Visual Studio 2022 が 64 ビット プロセスであることに注意する必要があります。 つまり、Visual Studio のデータ ツールによっては、32 ビットのデータ プロバイダーを使用して OLEDB または ODBC データベースに接続できないということです。

OLEDB または ODBC データベースに接続している 32 ビット アプリケーションを維持する必要がある場合は、引き続き Visual Studio 2022 を使用してアプリケーションをビルドして実行することができます。 ただし、サーバー エクスプローラー、データ ソース ウィザード、データセット デザイナーなどの Visual Studio データ ツールを使用する必要がある場合は、32 ビット プロセスである以前のバージョンの Visual Studio を使用する必要があります。 32 ビット プロセスの Visual Studio としては、Visual Studio 2019 が最後のバージョンとなっています。

プロジェクトを変換して 64 ビット プロセスとする予定がある場合は、64 ビットの Microsoft Access Database Engine (Access Connectivity Engine (ACE) とも呼ばれる) を使用することをお勧めします。 詳細について、Jet および ODBC ドライバー用の OLEDB プロバイダーは 32 ビット バージョンのみに関するページを参照してください。

データ モデリング

.NET では、データ ソースからデータを取得した後、メモリ内のデータをモデル化して操作するための 3 つの選択肢があります。

Entity Framework お勧めの Microsoft ORM テクノロジ。 これを使用して、ファーストクラスの .NET オブジェクトとしてのリレーショナル データに対するプログラミングを行うことができます。 新しいアプリケーションの場合、モデルが必要になったときにデフォルトで最初の選択肢とする必要があります。 これには、基になる ADO.NET プロバイダーからのカスタム サポートが必要です。

LINQ to SQL 以前の世代のオブジェクト リレーショナル マッパー。 これは、複雑でないシナリオに適していますが、アクティブな開発ではなくなりました。

データセット 3 つのモデリング テクノロジの中で最も古いもの。 これは主に、大量のデータを処理したり、複雑なクエリや変換を実行したりしない "フォーム オーバー データ" アプリケーションを迅速に開発するために設計されています。 DataSet オブジェクトは、.NET オブジェクトよりはるかに SQL データベース オブジェクトに似た DataTable オブジェクトと DataRow オブジェクトで構成されています。 SQL データ ソースに基づく比較的単純なアプリケーションの場合でも、データセットが適している可能性があります。

これらのテクノロジのいずれかを使用する必要はありません。 特にパフォーマンスが重要なシナリオでは、DataReader オブジェクトを使用してデータベースを読み取り、必要な値を List<T> などのコレクション オブジェクトにコピーするだけで済みます。

ネイティブ C++

SQL Server に接続する C++ アプリケーションでは、ほとんどの場合、Microsoft® ODBC Driver 13.1 for SQL Server を使用する必要があります。 サーバーがリンクされている場合は、OLE DB が必要です。そのためには、SQL Server Native Client を使用します。 ODBC または OLE DB ドライバーを直接使用して、他のデータベースにアクセスできます。 ODBC は現在の標準データベース インターフェイスですが、ほとんどのデータベース システムは、ODBC インターフェイスではアクセスできないカスタム機能を提供しています。 OLE DB は、レガシ COM データ アクセス テクノロジであり、新しいアプリケーションで引き続きサポートされますが、お勧めできません。 詳細については、「Visual C++ でのデータ アクセス」を参照してください。

REST サービスを使用する C++ プログラムでは、C++ REST SDK を使用できます。

Microsoft Azure Storage で動作する C++ プログラムは、Microsoft Azure Storage クライアントを使用できます。

データ モデリング — Visual Studio では、C++ の ORM レイヤーは提供されていません。 ODB は、C++ 用の広く普及しているオープンソースの ORM です。

C++ アプリからデータベースに接続する方法の詳細については、「C++ 用の Visual Studio データ ツール」を参照してください。 レガシ Visual C++ データ アクセス テクノロジの詳細については、データ アクセスに関するページを参照してください。

JavaScript

Visual Studio の JavaScript は、クロスプラットフォーム アプリ、UWP アプリ、クラウド サービス、Web サイト、Web アプリを構築するためのファーストクラスの言語です。 Visual Studio 内から Bower、Grunt、Gulp、npm、および NuGet を使用して、お気に入りの JavaScript ライブラリとデータベース製品をインストールできます。 Azure の Web サイトから SDK をダウンロードして、Azure Storage やサービスに接続します。 Edge.js は、サーバー側の JavaScript (Node.js) を ADO.NET データ ソースに接続するライブラリです。

Python

Python アプリケーションを作成するには、Visual Studio の Python サポートをインストールします。 Azure ドキュメントには、データへの接続に関する次のようないくつかのチュートリアルがあります。

Microsoft AI プラットフォーム — Cortana Analytics Suite やモノのインターネットのサポートなど、Microsoft インテリジェント クラウドの概要について説明します。

Microsoft Azure Storage — Azure Storage について説明します。また、Azure BLOB、テーブル、キュー、およびファイルを使用してアプリケーションを作成する方法について説明します。

Azure SQL Database — サービスとしてのリレーショナル データベース Azure SQL Database に接続する方法について説明します。

SQL Server Data Tools — データ接続アプリケーションとデータベースの設計、探索、テスト、および配置を簡略化するツールについて説明します。

ADO.NET — ADO.NET のアーキテクチャについて説明します。また、ADO.NET のクラスを使用してアプリケーション データを管理し、データ ソースおよび XML と対話する方法についても説明します。

ADO.NET Entity Framework — 開発者がリレーショナル データベースに対して直接プログラミングするのではなく、概念モデルに対してプログラミングすることができるデータ アプリケーションを作成する方法について説明します。

WCF Data Services 4.5 — WCF Data Services を使用して、Open Data Protocol (OData) を実装するデータ サービスを Web またはインターネットに配置する方法について説明します。

Office ソリューションにおけるデータ — Office ソリューションで、データが機能するしくみについて説明したトピックへのリンクを含んでいます。 スキーマ指向プログラミング、データ キャッシュ、およびサーバー側データ アクセスに関する説明が含まれます。

LINQ (統合言語クエリ) — C# および Visual Basic に組み込まれたクエリ機能と、リレーショナル データベース、XML ドキュメント、データセット、およびインメモリ コレクションを照会するための共通のモデルについて説明します。

Visual Studio の XML ツール — XML データの操作、XSLT のデバッグ、.NET XML 機能、および XML クエリのアーキテクチャについて説明します。

XML ドキュメントと XML データ — .NET で XML ドキュメントおよびデータを処理するための、統合された包括的な一連のクラスについて概説します。