多数据库支持

时间:2009-01-16 18:58:08

标签: .net

创建具有多数据库支持的应用程序时,使用Enterprise Library与使用OleDb类型的通用对象有什么优缺点?

2 个答案:

答案 0 :(得分:1)

如果不知道“企业库”与“通用OleDb”是什么,我建议您在开始开发适用于许多数据库的应用程序之前要非常小心。当然,创建一些接口是很好的,所以人们不知道他们正在调用什么,但所有数据库都不一样,甚至没有关闭。最后,您最终会将代码编写到“最低公分母”,从而剥夺您的应用程序免受现代数据库的好处。还有一些严重的应用程序逻辑问题需要处理,例如某些数据库编写器会阻止读者,而其他读者永远不会锁定。关于并发进程如何与数据库交互的假设可以超越您的封装接口,并且可能难以调试。

我的建议:

a)如果您使用数据库进行简单持久化并希望它“随处运行”,只需使用自己的多平台数据库(flatfiles,sqllite等)发布您的应用程序。

b)如果你真的想要对“任何数据库”运行,只需使用一个hibernate类型的接口,并确保所有项目参与者都意识到当他们的代码针对不同平台执行时会出现的语义差异,并且你制作更好的数据库的方式就像是一个更糟糕的数据库。

c)(首选) - 放弃主动权,选择一个好的数据库并针对它编写应用程序,充分利用数据库的能力。

我已多次走这条路了。

答案 1 :(得分:0)

如果您选择开发自己的多数据库DAL或使用企业库,则没有真正的优点或缺点。如果您使用企业库,它将为您提供一个快速启动,但也可以执行超出您的要求并拥有更多代码。在这种情况下,请密切关注为您的应用构建XMLish配置文件,您可以定制该文件以适合一种或多种类型的数据库。如果处理多个数据库不是主要问题,那么使多数据库工作将占用大量时间。