Префикс имен классов и методов указывает на источник данных. Например, префикс OleDb (OLE для баз данных) указывает на использование источника данных OleDb (OLE для баз данных). Префикс Sql указывает на использование источника данных SqlServer.
Источник данных SQL Server использует родной протокол SQL Server. Источник данных OleDb (OLE для баз данных) через промежуточный уровень модели компонентных объектов Microsoft (COM) обращается к различным драйверам доступа OleDb (OLE для баз данных). Например, можно взаимодействовать с SqlServer через источник данных OleDb (OLE для баз данных) с целью обращения к драйверу доступа OLEDB (OLE для баз данных) для SQL Server. Но быстродействие при таком способе будет, конечно, меньше, чем при использовании источника данных SqlServer. Преимуществами источников данных OleDb (OLE для баз данных) и ODBC является то, что, используя их при работе в ADO.NET, можно работать с большинством из доступных сегодня источников данных.
Хотя в ADO.NET есть несколько интерфейсов, определяющих общие возможности, и несколько базовых классов, которые можно использовать для обеспечения этих возможностей, к источникам данных не предъявляется требование удовлетворять спецификациям, не соответствующим принятым способам работы с используемыми источниками данных.
Например, классы SqlDataAdapter и OleDbDataAdapter в качестве базовых используют базовые абстрактные классы DbDataAdapter и DataAdapter, находящиеся в пространстве имен System: :Data: : Common (Система::Данные::Общие). С другой стороны, классы SqlTransaction и OleDbTransaction не наследуют реализации какого-либо класса, предназначенного для работы с базами данных. Классы OleDbError и SqlError вообще не похожи друг на друга. Указатель, реализуемый сервером, не поддерживается в ADO.NET из-за того, что некоторые базы данных (например, Oracle и DB2) не имеют встроенной поддержки этой возможности. Поэтому поддержка такой возможности для источника данных SQL Server будет расширением.
В табл. 9.1 приведены классы источников данных О1е и Sql, предназначенные для соединения, задания команд, чтения данных, преобразования данных, хранения параметров данных. Как видно из этой таблицы, приведенные там классы источников данных Ole и Sql имеют общие черты, определенные в интерфейсах IDbConnection, IDbCom-mand, IDataReader, IDbDataAdapter и IDataParameter. Ничто, конечно же, не препятствует реализовать в любом из этих классов методы, не определенные соответствующим интерфейсом.
Таблица 9.1. Сравнение соответствующих друг другу классов источников данных OleDb (OLE для баз данных) и SqlServer
Интерфейс | OleDb | SQL Server |
IDbConnection | OleDbConnection |
SqlConnection |
IDbCommand | OleDbCommand | SqlCommand |
IDataReader | OleDbDataReader | SqlDataReader |
IDbDataAdapter | OleDbDataAdapter | SqlDataAdapter |
IDataParameter | OleDbDataParameter | SqlDataParameter |
Классы, не зависящие от какого-либо источника данных, например, DataSet (Набор данных) или DataTable (Таблица данных), не имеют префиксов.
Если важна масштабируемость (расширяемость) базы данных, желательно запретить завершение (fmalization) объектов, не нуждающихся в нем. Тем самым повышается производительность приложения, так как уменьшается время работы потока завершителей (fmalizer).