Серверы баз данных для целей разработки - PullRequest
3 голосов
/ 28 февраля 2012

Я ищу среду с несколькими серверами баз данных для переключения между различными типами серверов и версиями.

У меня есть приложение .Net, которое должно обрабатывать несколько серверов баз данных, определенных их строками подключения, но я не хочу обрабатывать все установки / конфигурации серверов самостоятельно.

Я думаю о чем-то вроде стандартной базы данных Northwind, но размещенной на разных серверах, таких как MySql, Oracle, Sql Server 2005, Sql Server 2008 и так далее ...

Чтобы обрабатывать все соединения локально, я думал о том, чтобы иметь своего рода прокси-клиент, который принимает connectionString и имя провайдера и выполняет запрос через указанный протокол связи.

У кого-нибудь есть идеи, если такие услуги существуют? (бесплатный и / или коммерческий)

Спасибо

1 Ответ

1 голос
/ 28 февраля 2012

Чтобы обрабатывать все соединения локально, я думал о том, чтобы иметь своего рода прокси-клиент, который принимает connectionString и имя провайдера и выполняет запрос через указанный протокол связи.

По крайней мере, для этого ADO позволяет устанавливать соединения довольно общим образом.Однако ваш пробег может различаться, поскольку все разные базы данных говорят на разных диалектах SQL.

Возможно, вам лучше использовать DSL SQL, который динамически создает SQL для всех ваших платформ.

Обзор фабричной модели (ADO.NET)

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

...

Модель программирования для написания кода, независимого от поставщика, основана на использовании «фабричного» шаблона проектирования, который использует один API для доступа к базам данных у нескольких поставщиков.Этот шаблон назван точно, так как он требует использования специализированного объекта исключительно для создания других объектов, очень похоже на фабрику реального мира.

DbProviderFactories.GetFactoryClasses понимает:

  • System.Data.Odbc
  • System.Data.OleDb
  • System.Data.OracleClient
  • System.Data.SqlClient
  • System.Data.SqlServerCe.3.5
...