【问题标题】:Database servers for development purposes用于开发目的的数据库服务器
【发布时间】:2012-02-27 21:36:52
【问题描述】:

我正在寻找一个多数据库服务器环境,用于在不同的服务器类型和版本之间进行切换。

我有一个 .Net 应用程序,它必须处理由它们的连接字符串定义的多个数据库服务器,但我不想自己处理所有服务器安装/配置。

我正在考虑类似于标准 Northwind 数据库的东西,但托管在不同的服务器上,如 MySql、Oracle、Sql Server 2005、Sql Server 2008 等...

为了在本地处理所有连接,我正在考虑使用某种代理客户端,它接受 connectionString 和 providername 并通过指定的通信协议执行查询。

如果存在此类服务,是否有人有任何想法? (免费和/或商业)

谢谢

【问题讨论】:

  • 这是一个非常好的问题!我很高兴看到一些答案。只是出于好奇,这样做的目的是什么?为什么有多种服务器类型?
  • 我的目标是创建一个数据库模式比较应用程序并支持多种服务器类型之间的比较。这个想法是让业务层处理相同的数据,无论存储在哪种服务器类型的数据上。

标签: .net sql database proxy connection-string


【解决方案1】:

为了在本地处理所有连接,我正在考虑使用某种代理客户端,它接受 connectionString 和 providername 并通过指定的通信协议执行查询。

至少为此,ADO 允许您以相当通用的方式建立连接。不过,您的里程可能会有所不同,因为不同的数据库都使用不同的 SQL 方言。

使用为所有平台动态构建 SQL 的 SQL DSL 可能会更好。

Factory Model Overview (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

【讨论】:

  • 是的,我已经实现了。我正在寻找的是服务器实例本身以及从本地开发机器访问它们的可能性,使用像拦截器这样的代理,它将本地连接字符串(和提供者名称)映射到远程(数据仓库)服务器环境,该环境提供多个服务器实例(mysql、oracle、mssql 等)。不必在本地安装每台服务器将节省大量时间。谢谢
猜你喜欢
  • 2018-10-15
  • 1970-01-01
  • 2013-05-11
  • 2011-08-14
  • 2012-01-13
  • 2023-04-02
  • 1970-01-01
  • 2019-03-30
相关资源
最近更新 更多