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 Studio の Azure 開発 ワークロードを使用すると、Visual Studio から直接 Azure データ ストアを操作できます。
ここに記載されている他の SQL および NoSQL データベース製品のほとんどは、ローカル コンピューター、ローカル ネットワーク、または仮想マシン上の Microsoft Azure でホストできます。 Microsoft Azure 仮想マシンでデータベースをホストする場合は、データベース自体を管理する必要があります。
Microsoft Azure
- SQLデータベース
- Azure Cosmos DB
- ストレージ (BLOB、テーブル、キュー、ファイル)
- SQL Data Warehouse
- SQL Server ストレッチ データベース
- StorSimple
- その他...
SQL
- SQL Server 2005-2016 (Express および LocalDB を含む)
- Firebird
- MariaDB
- MySQL
- オラクル
- PostgreSQL
- SQLite
- その他...
NoSQL
- Apache Cassandra
- CouchDB
- MongoDB
- NDatabase
- OrientDB|
- RavenDB
- VelocityDB
- その他...
多くのデータベース ベンダーやサード パーティは、NuGet パッケージによる Visual Studio 統合をサポートしています。 nuget.org または Visual Studio の NuGet パッケージ マネージャー (Tools>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 Studio の Azure 開発 ワークロードを使用すると、Visual Studio から直接 Azure データ ストアを操作できます。
ここに記載されている他の SQL および NoSQL データベース製品のほとんどは、ローカル コンピューター、ローカル ネットワーク、または仮想マシン上の Microsoft Azure でホストできます。 Microsoft Azure 仮想マシンでデータベースをホストする場合は、データベース自体を管理する必要があります。
Microsoft Azure
- SQL Data Warehouse
- SQL サーバー ストレッチ データベース
- StorSimple
- その他...
SQL
- Firebird
- MariaDB
- MySQL
- オラクル
- その他...
NoSQL
- Apache Cassandra
- CouchDB
- MongoDB
- NDatabase
- OrientDB|
- RavenDB
- VelocityDB
- その他...
手記
SQL Server 2005 の延長サポートは、2016 年 4 月 12 日に終了しました。 Visual Studio 2015 以降のデータ ツールが引き続き 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 を使用できます。 詳細については、「データ アクセス」を参照してください。
Azure サービスに接続する場合は、最新の Azure SDK ツール をダウンロードしてください。
データ プロバイダー
データベースを ADO.NET で使用できるようにするには、カスタム ADO.NET データ プロバイダーを するか、ODBC または OLE DB インターフェイスを公開する必要があります。 Microsoft では、SQL Server 製品に ADO.NET データ プロバイダーと ODBC および OLE DB プロバイダーの 一覧を提供しています。
手記
Visual Studio を使用して OLEDB または ODBC データ プロバイダーを使用してデータベースに接続する場合は、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 でアプリケーションをビルドして実行できます。 ただし、サーバー エクスプローラー、データ ソース ウィザード、DataSet デザイナーなどの Visual Studio データ ツールのいずれかを使用する必要がある場合は、まだ 32 ビット プロセスである以前のバージョンの Visual Studio を使用する必要があります。 32 ビット プロセスだった Visual Studio の最後のバージョンは、Visual Studio 2019 でした。
プロジェクトを 64 ビット プロセスに変換する場合は、Access Connectivity Engine (ACE) とも呼ばれる 64 ビットの Microsoft Access データベース エンジンを使用することをお勧めします。 「Jet および ODBC ドライバー用 OLE DB プロバイダは32ビットバージョンのみです。詳しくはをご覧ください。」
データ モデリング
.NET では、データ ソースからデータを取得した後、メモリ内のデータをモデル化および操作するための 3 つの選択肢があります。
Entity Framework: 推奨される Microsoft ORM テクノロジ。 これを使用して、リレーショナル データに対してファースト クラスの .NET オブジェクトとしてプログラミングできます。 新しいアプリケーションの場合、モデルが必要な場合は既定の最初の選択肢にする必要があります。 基になる ADO.NET プロバイダーからのカスタム サポートが必要です。
LINQ to SQL: 以前の世代のオブジェクト リレーショナル マッパー。 これは複雑ではないシナリオに適していますが、アクティブな開発ではなくなりました。
データセット: 3 つのモデリング テクノロジの中で最も古い。 これは主に、大量のデータを処理したり、複雑なクエリや変換を実行したりしない "データ経由のフォーム" アプリケーションを迅速に開発するために設計されています。 DataSet オブジェクトは、.NET オブジェクトよりもはるかに SQL Database オブジェクトに論理的に似ている 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を使用できます。
データ モデリング - Visual Studio では、C++ 用の ORM レイヤーは提供されません。 ODB は、C++ 用の一般的なオープンソース ORM です。
C++ アプリからデータベースに接続する方法の詳細については、C++ 用の Visual Studio データ ツール参照してください。
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 データ ソースに接続するライブラリです。
パイソン(プログラミング言語)
Visual Studio Python サポートをインストールして、Python アプリケーションを作成します。 Azure のドキュメントには、次のようなデータへの接続に関するいくつかのチュートリアルがあります。
関連コンテンツ
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)を実装するイントラネットにデータ サービスを展開する方法について説明します。
Office ソリューションのデータ— Office ソリューションでのデータのしくみを説明するトピックへのリンクが含まれています。 これには、スキーマ指向プログラミング、データ キャッシュ、およびサーバー側のデータ アクセスに関する情報が含まれます。
LINQ (言語統合クエリ)— C# と Visual Basic に組み込まれているクエリ機能と、リレーショナル データベース、XML ドキュメント、データセット、およびメモリ内コレクションのクエリを実行するための一般的なモデルについて説明します。
Visual Studio のXML ツール — XML データの操作、XSLT のデバッグ、.NET XML 機能、および XML クエリのアーキテクチャについて説明します。
XML ドキュメントとデータ— .NET で XML ドキュメントとデータを操作する包括的で統合されたクラスのセットの概要を示します。