2012-08-27 35 views
0

我想知道是否有特定的技术存在。具有服务的SQL Server的嘲笑/外观?

简而言之,我是否可以模拟或创建一个Facade,以便通过ADO.net直接替换一个SQL Server数据库(通过ADO.net直接使用),并使用服务(理想情况下为WCF)?

详细
我们有一个ASP.NET网站(所有的C#现在)这是10岁左右,有许多功能,都创下了特定的SQL Server 2008在ADO.NET。它大多使用大量的存储过程,尽管有一些直接的T-SQL事务。

我们已经到了扩大数据库和增加新功能的地步,成本非常昂贵,而且我们正在接近危机。我一直在设计一个基于隔离的业务数据元素和服务的新平台,外观为我们使用它的每个产品(包括合作伙伴)提供了一个上下文API。

有大量的工作要做,大概一年五个中级开发人员不用做任何其他工作,去调查网站,重写这个新平台的数据访问权限(功能随功能一起上线) ,并确保它一切正常。当我们完成时,我们会有一个很好的系统,但到那里会很痛苦。我们对数据库非常了解,但网站代码对于它的功能非常复杂,并且周围没有人了解所有这一切。是的,我们不应该得到这一点,数据层应该已经在原来的网站设计等巩固了,但这不是我们所拥有的。

我想知道如果我可以创建一个门面,像SQL Server到网站,只需要更改ADO.NET连接字符串。该服务将实现所有存储过程请求,并将T-SQL请求转换为新平台。完成后,我们只需更改网站上的ADO.NET连接字符串 - 不需要更改其他网站代码。理想情况下,这项技术将使用像WCF这样的.NET技术。

我想我可以做一些糟糕的事情,比如实现一个ODBC驱动程序,但我想知道是否有更简单的方法。

+1

“我们已经到了缩放数据库和添加新功能变得过于昂贵的地步了 - 为什么?需要索引? –

+0

这项服务应该如何帮助您解决问题?您是否遇到性能问题,还是仅仅是一个复杂问题? –

+0

如果事情变得太复杂,我真的不认为添加这个非常不寻常的实现会有所帮助。 – MikeKulls

回答

-1

也许只是提供一个指定设计良好的接口的数据访问层。您的网站只会有一个接口的句柄,您可以使用依赖注入/ IoC来根据需要提供具体的接口实现。

这不是一种“现有技术”,但可能只是我建议的设计中谨慎的前进方式。

+0

是的,这是多年前应该发生的事情,但这个问题的重点是避免重写网站。我会假设没有这样的技术存在。谢谢。 –

+0

尽管这个答案显然是理想的目标,虽然我不是.NET专家,但通过编写自定义ADO,对我来说似乎确实如此。NET驱动程序,可以完成具体要求的内容。 –