2010-03-12 83 views
0

我们有一个非常复杂的架构,在需要数据库访问的非托管代码中有很多逻辑。经典ADO仍然适用于混合托管/非托管应用程序吗?

目前这是通过ODBC驱动程序和MFC类,我们正在考虑将我们的抽象层迁移到使用ADO或ADO.Net的问题。在后一种情况下,我们必须将数据库逻辑备份到.Net层。我试图确定通过.Net回调调用数据库的痛苦是否被ADO.Net中的改进所抵消。

Wikipedia comparison很有趣,虽然我不确定我是否相信比较表中的所有要点(例如:ADO.Net是否总是使用XML来传递数据?)。

A 2005 comparison显示ADO.Net性能显着提高。

微软guide to ADO.Net for ADO programmers表明,我们将要ADO.Net特别的方式多获得的数据是在本地(.NET)类型,而不是仅仅通过了oleautomation的变体可用。

回答

1
eg: does ADO.Net always use XML to pass data? 

号听起来像在维基百科白痴信息然后。

2种选择。首先,我会真正摆脱ODBC - 至少移动到OleDb驱动明智。如果可能的话(告诉我 - 我有一个.NET应用程序使用ODBC驱动程序调用JDBC ddriver来调用第三方应用程序服务器)。

现在,你可以两种方式 - 双方ADO,管理ADO.NET和从NET层暴露 - 但这实际上不是一个程序员的决定,这是一个架构的事情,应该在大环境中看到。 我可能会去一个.NET层,可能在同一时间OData暴露层,并尝试从非托管层消耗。