IDbConnection против SqlConnection

Когда я пишу приложение, я использую System.Data интерфейсов (IDbConnection, IDbCommand IDataReader, IDbDataParameter, и т.д...). Я делаю это, чтобы уменьшить поставщика зависимостей. Если я делаю простое тестовое приложение, это только кажется этических что нужно сделать, когда consulting.

Однако, кажется, что весь код, который я вижу использует System.Data.SqlClient классы пространства имен или в других аналогичных организациях конкретных классов. В журналах и книгах легко заявить, что это Microsoft и их влияние маркетинга спина к программе только против SQLServer. Но, кажется, почти все .NET кода я вижу использует SQLServer конкретных классов.

я понимаю, для конкретного поставщика классы обладают более широкими функциональными возможностями, например при добавлении параметра объекта SqlCommand-это один метод, где, как и при добавлении его в IDbCommand это раздражает 4 строк кода. Но затем снова; написание небольшой вспомогательный класс для этих ограничений достаточно проста.

я также подумал, если программировании интерфейсов когда SQLServer является текущей цели клиента более-инжиниринг", поскольку она не требуется немедленно. Но я не думаю, что это, так как затраты на программирование интерфейсов настолько низка, где, как сокращение поставщика зависимостей предоставляет такую огромную пользу.

вы используете для конкретного поставщика данных, классы или интерфейсы?

РЕДАКТИРОВАТЬ: обобщить некоторые из ответов, которые приведены ниже, и бросить в некоторые мысли у меня было во время их читать.

Возможные подводные камни, с помощью интерфейсов для поставщика нейтралитет:

  • Поставщика конкретные ключевые слова, встроенные вваш ВЫБОР отчетности (все мои ins,upd,

Найдено 6 ответов:

IdbConnection vs. SqlConnection

http://stackoverflow.com/questions/350599/idbconnection-vs-sqlconnection

Посмотреть решение →