从Microsoft软件堆栈外部连接到SQL Server



我是一家微软主导的公司的软件工程师,有时在大型项目之间,我会被要求为这些大型项目创建支持。这几乎总是涉及某种形式的数据库交互,并且由Microsoft技术主导,我们选择的数据库当然是Microsoft SQL Server。这使得用非Microsoft语言开发支持应用程序成为一个真正的问题。

我看过Smalltalk、Go、Scheme和Factor,总是得出同样的结论,即这是不可能的,也不值得付出努力,因为ODBC对这些语言的支持太脆弱了,无法发挥作用。

我研究了通过web服务创建数据访问层的可能性。然而,这并不总是理想的情况,而且由于数据量大,这可能会成为一个瓶颈。

我可以克隆数据并将其导入一个更开放的数据库系统,然后用我选择的语言进行开发。这似乎是一个非常不必要的步骤,也意味着我不再使用主要数据。

其他C#.Net开发人员是如何用非Microsoft语言开发严重依赖Microsoft堆栈的支持应用程序的?

您可以考虑使用任何语言的本机驱动程序,而不是采用ODBC路线。这可能更符合该语言的方法。例如,Python有pymssql和cx_oracle,它们都更符合该语言的约定,而不是试图迫使它成为ODBC的最小公分母。我不熟悉你列出的语言(也不清楚你是否只限于这些语言),但我怀疑那里也存在类似的情况。

FreeTDS在关于SQL Server访问的讨论中也提到了很多,但大多是从Linux的角度来看的。

另一种变体是:如果您使用使用.Net DLR的东西,如IronPython或IronRuby,那么您可以使用.Net Framework及其ADO.Net库,同时仍然应用新的语言方法。

最新更新