Недавно мне пришлось набрать некоторую документацию для поставщиков данных .net и ado.net. Я пытаюсь получить отзывы о моих выводах. Просмотрите и внесите исправления или мнения.Является ли мой обзор .Net Data Providers и ADO.Net правильным?
Резюме Это сводка высокого уровня основных API .Net для взаимодействия с базой данных. Как разработчик, в основном с Java и PHP, я не понимал, как ADO.Net относится к OleDb, и я понятия не имел, что подразумевается под термином «поставщик данных .Net». Я создал это, потому что документация msdn HEAVILY сосредоточена на ADO.Net и не дает четкого представления о том, как взаимодействуют многие пространства имен, интерфейсы и классы.
Поставщик данных .Net
- http://msdn.microsoft.com/en-us/library/a6cd7c08(v=VS.71).aspx
- Поставщик Структура данных .NET является используется для подключения к базе данных, выполнения команд, и извлечения результатов. Эти результаты либо обрабатываются , либо помещаются в набор данных ADOB.NET .
- То, что на самом деле означает, что .Net Data Provider реализует интерфейсы , определенные в пространстве имен System.Data . Поставщик
- .NET-Data похож на драйвер JDBC в Java
System.Data
- http://msdn.microsoft.com/en-us/library/system.data.aspx Эта страница содержит текст, который делает вы считаете, что ADO.Net является СЕРДЕЧНИКУ часть доступа к данным .Net, однако реальность такова, что ADO.Net является высокий уровень доступа к данным и , построенный на .Net Data Providers , которые реализуют интерфейсы в системе. System.Data.
- На мой взгляд, это почти кажется, что Microsoft пытается скрыть, как базы данных соединений работы, так что пользователи улавливаются с помощью элементов управления предоставляемые Visual Studio. System.Data namesapce содержит интерфейсы, которые должны быть определены провайдеров ALL .Net Data
System.Data Основные интерфейсы
- IDbConnection
- IDbCommand
- IDataAdapter
- IDataReader
Примеры системы.Реализации данных
- следующие пространства имен включают классы, которые реализуют ядро «.Net Data Provider » интерфейсы определены в System.Data
- System.Data.SqlClient
- System.Data.OleDb
- System.Data.Odbc
- IBM.Data.DB2
- ByteFX.Data.MySqlClient
ADO.Net
- http://msdn.microsoft.com/en-us/library/27y4ybxw(v=VS.71).aspx
- ADO.Net является запрос к базе данных и манипуляция API построен на вершине основных классов поставщика данных .NET. ADO.Net фокусируется на отключенном, взаимодействии между несколькими уровнями.
- По моему мнению, классы ADO.Net должны быть в отдельном пространстве имен , например System.Data.ADO, только для большей ясности.
ADO.Net Основные классы
- DataSet
- DataTable
- DataColumn
- DataRelation
Это очень помогает. Я хочу, чтобы документы MSDN были ясны. Мой опыт работы на Java и php затруднял связь с ADO.Net (DataTable). Я полностью согласен с тем, что программирование не зависит от конкретного провайдера. Вы можете это сделать даже без классов DataTable и DataSet, которые, как вы сказали, являются независимыми поставщиками, потому что они являются конкретными классами в пространстве имен System.Data. Если вы скрываете реализацию «Поставщик данных» за интерфейсами в пространстве имен System.Data, вы можете в любой момент изменить своего провайдера. Thx для ответа. –
@Welzie его истинно, вам не нужно использовать DataTable и DataSet, поскольку DataReader обеспечивает гораздо более понятную семантику чтения БД, но DataTable (DT) и DataSet (DS) предназначены для передачи другого значения, чем одностороннее движение данных. DT и DS предназначены для предоставления прокси-реализаций использования данных и предоставления вам отключенного интерфейса для вашего поставщика данных, так что DT/DS «действует» как база данных, а основные сведения не важны для использования кода. Я думаю, что на практике это не так, как используются DT и DS, обычно это просто контейнеры для данных. – GrayWizardx