Работа с данными в Visual Studio

В Visual Studio можно создавать приложения, которые подключаются к данным практически в любом продукте или службе базы данных в любом формате, в любом месте — на локальном компьютере, в локальной сети или в общедоступном, частном или гибридном облаке.

Для приложений в JavaScript, Python, PHP, Ruby или C++вы подключаетесь к данным, таким как вы делаете все остальное, путем получения библиотек и написания кода. Для приложений .NET Visual Studio предоставляет средства, которые можно использовать для изучения источников данных, создания объектных моделей для хранения и управления данными в памяти и привязки данных к пользовательскому интерфейсу. Microsoft Azure предоставляет пакеты SDK для .NET, Java, Node.js, PHP, Python, Ruby и мобильных приложений и средств в Visual Studio для подключения к служба хранилища Azure.

В следующих списках показаны лишь несколько из многих систем базы данных и хранилищ, которые можно использовать из Visual Studio. Предложения Microsoft Azure — это службы данных, включающие все подготовки и администрирование базового хранилища данных. Рабочая нагрузка разработки Azure в Visual Studio позволяет работать с хранилищами данных Azure непосредственно из Visual Studio.

Рабочая нагрузка

Большинство других продуктов базы данных SQL и NoSQL, перечисленных здесь, могут размещаться на локальном компьютере, в локальной сети или в Microsoft Azure на виртуальной машине. Если вы размещаете базу данных на виртуальной машине Microsoft Azure, вы несете ответственность за управление самой базой данных.

Microsoft Azure

  • База данных SQL
  • Azure Cosmos DB
  • служба хранилища (большие двоичные объекты, таблицы, очереди, файлы)
  • Хранилище данных SQL
  • 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
  • СкоростьDB
  • И многое другое...

Многие поставщики баз данных и третьи стороны поддерживают интеграцию Visual Studio с помощью пакетов NuGet. Вы можете изучить предложения по nuget.org или с помощью диспетчер пакетов NuGet в Visual Studio (инструменты>NuGet диспетчер пакетов> Manage NuGet Packages for Solution). Другие продукты базы данных интегрируются с Visual Studio в качестве расширения. Эти предложения можно просмотреть в Visual Studio Marketplace или перейти к расширениям>управления расширениями, а затем щелкнуть "Онлайн" в левой области диалогового окна. Дополнительные сведения см. в разделе "Совместимые системы баз данных" для Visual Studio.

С помощью Visual Studio Подключение ed Services можно упростить процесс добавления поддержки базы данных в проекты.

Для сценариев SQL Server мы поддерживаем Подключение служб:

  • SQL Server на локальном компьютере. В этом сценарии вы устанавливаете SQL Server где-то в локальной сети и подключаетесь к нему.
  • SQL Server на локальном компьютере. В этом сценарии необходимо установить SQL Server на локальном компьютере и подключиться к нему.
  • SQL Server Express LocalDB. Вы не устанавливаете ничего, кроме Visual Studio; Вы просто подключаетесь к нему.
  • SQL Server Express LocalDB в контейнере. LocalDB, как и в предыдущем параметре, но внутри локального контейнера.
  • База данных SQL Server Azure. Подключение службе, работающей в Azure.

Для других технологий, связанных с данными, Visual Studio 2022 поддерживает следующее:

  • служба хранилища Azure (как локальный, так и удаленный)
  • Azure Cosmos DB (как локальный, так и удаленный)
  • SQLite (вариант только для локального использования)
  • PostgreSQL в контейнере (параметр только для локального использования)
  • MongoDB в контейнере (вариант только для локального использования)

Помимо Подключение служб, в следующих списках отображаются лишь несколько из многих систем базы данных и хранилищ, которые можно использовать из Visual Studio. Предложения Microsoft Azure — это службы данных, включающие все подготовки и администрирование базового хранилища данных. Рабочая нагрузка разработки Azure в Visual Studio позволяет работать с хранилищами данных Azure непосредственно из Visual Studio.

Рабочая нагрузка

Большинство других продуктов базы данных SQL и NoSQL, перечисленных здесь, могут размещаться на локальном компьютере, в локальной сети или в Microsoft Azure на виртуальной машине. Если вы размещаете базу данных на виртуальной машине Microsoft Azure, вы несете ответственность за управление самой базой данных.

Microsoft Azure

  • Хранилище данных SQL
  • SQL Server Stretch Database
  • StorSimple
  • И многое другое...

SQL

  • Firebird
  • MariaDB
  • MySQL
  • Oracle;
  • И многое другое...

NoSQL

  • Apache Cassandra
  • CouchDB
  • MongoDB
  • NDatabase
  • OrientDB|
  • Ravendb
  • СкоростьDB
  • И многое другое...

Примечание.

Расширенная поддержка SQL Server 2005 закончилась 12 апреля 2016 г. В 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. Дополнительные сведения о вызове API ADO.NET напрямую см. в ADO.NET.

Документация по доступу к данным, связанная с ASP.NET, см. в статье "Работа с данными " на сайте ASP.NET. Руководство по использованию Entity Framework с ASP.NET Model-View-Controller (MVC) см. в статье "Начало работы с Entity Framework 6 Code First using MVC 5".

приложения универсальная платформа Windows (UWP) в C# или Visual Basic могут использовать Пакет Microsoft Azure SDK для .NET для доступа к служба хранилища Azure и другим службам Azure. Класс Windows.Web.HttpClient обеспечивает взаимодействие с любой службой RESTful. Дополнительные сведения см. в статье "Подключение к HTTP-серверу с помощью Windows.Web.Http".

Для хранения данных на локальном компьютере рекомендуется использовать SQLite, который выполняется в том же процессе, что и приложение. Если требуется уровень сопоставления объектов (ORM), можно использовать Entity Framework. Дополнительные сведения см. в разделе "Доступ к данным" в Центре разработчиков Windows.

Если вы подключаетесь к службам Azure, обязательно скачайте последние средства Azure SDK.

Поставщики данных

Для использования базы данных в ADO.NET он должен иметь настраиваемый поставщик данных ADO.NET или другой должен предоставлять интерфейс ODBC или OLE DB. Корпорация Майкрософт предоставляет список поставщиков данных ADO.NET для продуктов SQL Server, а также поставщиков ODBC и OLE DB.

Примечание.

Если вы используете Visual Studio для подключения к базам данных с помощью поставщиков данных OLEDB или ODBC, необходимо знать, что версии Visual Studio до Visual Studio 2022 — это все 32-разрядные процессы. Это означает, что некоторые средства обработки данных в Visual Studio смогут подключаться только к базам данных OLEDB или ODBC с помощью 32-разрядных поставщиков данных. Сюда входят поставщик данных OLEDB Microsoft Access 32-разрядной версии, а также другие сторонние 32-разрядные поставщики.

Если вы используете Visual Studio 2022 для подключения к базам данных, необходимо знать, что Visual Studio 2022 — это 64-разрядный процесс. Это означает, что некоторые средства данных в Visual Studio не смогут подключаться к базам данных OLEDB или ODBC с помощью 32-разрядных поставщиков данных.

Если вам нужно поддерживать 32-разрядные приложения, подключающиеся к базам данных OLEDB или ODBC, вы по-прежнему сможете создавать и запускать приложение с помощью Visual Studio 2022. Однако если вам нужно использовать любой из средств обработки данных Visual Studio, таких как серверные Обозреватель, мастер источника данных или конструктор наборов данных, вам потребуется использовать более раннюю версию Visual Studio, которая по-прежнему является 32-разрядным процессом. Последняя версия Visual Studio, которая была 32-разрядным процессом, была Visual Studio 2019.

Если вы планируете преобразовать проект в 64-разрядную версию, рекомендуется использовать 64-разрядный ядро СУБД Microsoft Access, также называемое подсистемой Подключение ivity Engine (ACE). Дополнительные сведения см. в статье OLE DB Provider for Jet и ODBC driver are 32-разрядные версии.

Моделирование данных

В .NET есть три варианта моделирования и управления данными в памяти после получения данных из источника данных:

  • Entity Framework: предпочтительная технология Microsoft ORM. Его можно использовать для программирования с реляционными данными в качестве объектов .NET первого класса. Для новых приложений он должен быть первым выбором по умолчанию при необходимости модели. Для этого требуется настраиваемая поддержка от базового поставщика ADO.NET.

  • LINQ to SQL: объект-реляционный объект более раннего поколения. Он хорошо работает для менее сложных сценариев, но больше не находится в активной разработке.

  • Наборы данных: самый старый из трех технологий моделирования. Он предназначен в первую очередь для быстрого разработки приложений "форм по данным", в которых вы не обрабатываете огромные объемы данных или выполняете сложные запросы или преобразования. Объект DataSet состоит из объектов DataTable и DataRow, которые логически похожи на объекты База данных SQL гораздо больше, чем объекты .NET. Для относительно простых приложений на основе источников данных SQL наборы данных по-прежнему могут быть хорошим выбором.

Нет необходимости использовать какие-либо из этих технологий. В некоторых сценариях, особенно в тех случаях, когда производительность важна, можно просто использовать объект DataReader для чтения из базы данных и копирования значений, необходимых для объекта коллекции, например List<T>.

Машинный C++

Приложения C++, подключающиеся к SQL Server, должны использовать microsoft® ODBC Driver 13.1 для SQL Server в большинстве случаев. Если серверы связаны, необходимо использовать OLE DB и для этого используется собственный клиент SQL Server. Доступ к другим базам данных можно получить напрямую с помощью драйверов ODBC или OLE DB. ODBC — это текущий стандартный интерфейс базы данных, но большинство систем баз данных предоставляют пользовательские функциональные возможности, к которым не удается получить доступ через интерфейс ODBC. OLE DB — это устаревшая технология доступа к данным COM, которая по-прежнему поддерживается, но не рекомендуется для новых приложений. Дополнительные сведения см. в статье Доступ к данным в Visual C++.

Программы C++, использующие службы REST, могут использовать пакет SDK REST для C++ .

Программы C++, работающие с служба хранилища Microsoft Azure, могут использовать клиент служба хранилища Microsoft Azure.

Моделирование данных— Visual Studio не предоставляет уровень ORM для C++. ODB — это популярный ORM с открытым исходным кодом для C++.

Дополнительные сведения о подключении к базам данных из приложений C++ см. в статье о средствах обработки данных Visual Studio для C++. Дополнительные сведения о устаревших технологиях доступа к данным Visual C++ см. в разделе "Доступ к данным".

JavaScript

JavaScript в Visual Studio — это первый класс для создания кроссплатформенных приложений, приложений UWP, облачных служб, веб-сайтов и веб-приложений. Вы можете использовать Bower, Grunt, Gulp, npm и NuGet из Visual Studio для установки любимых библиотек JavaScript и продуктов базы данных. Подключение для служба хранилища Azure и служб, скачивая пакеты SDK с веб-сайта Azure. Edge.js — это библиотека, которая подключает серверную часть JavaScript (Node.js) к источникам данных ADO.NET.

Python

Установите поддержку Python в Visual Studio для создания приложений Python. Документация Azure содержит несколько руководств по подключению к данным, включая следующие:

Платформа Microsoft AI— предоставляет общие сведения об интеллектуальном облаке Майкрософт, включая Кортана Analytics Suite и поддержку Интернета вещей.

служба хранилища Microsoft Azure. Описание служба хранилища Azure и создание приложений с помощью больших двоичных объектов Azure, таблиц, очередей и файлов.

База данных SQL Azure— описывает подключение к База данных SQL Azure реляционной базе данных в качестве службы.

SQL Server Data Tools— описывает средства, упрощающие проектирование, изучение, тестирование и развертывание приложений и баз данных, подключенных к данным.

ADO.NET. Описывает архитектуру ADO.NET и как использовать классы ADO.NET для управления данными приложения и взаимодействия с источниками данных и XML.

ADO.NET Entity Framework — описывает создание приложений данных, позволяющих разработчикам программироваться в концептуальной модели, а не непосредственно с реляционной базой данных.

службы данных WCF 4.5. Описание использования службы данных WCF для развертывания служб данных в Интернете или интрасети, реализующих протокол Open Data Protocol (OData).

Данные в решениях Office— содержит ссылки на разделы, которые объясняют работу данных в решениях Office. Сюда входят сведения о программировании на основе схемы, кэшировании данных и доступе к данным на стороне сервера.

LINQ (языковой интегрированный запрос)— описывает возможности запросов, встроенные в C# и Visual Basic, и общую модель для запроса реляционных баз данных, XML-документов, наборов данных и коллекций в памяти.

Средства XML в Visual Studio— описывает работу с XML-данными, отладкой XSLT, функциями .NET XML и архитектурой XML-запроса.

XML-документы и данные— предоставляет обзор комплексного и интегрированного набора классов, работающих с XML-документами и данными в .NET.