我们有一个复杂的架构,在需要数据库访问的非托管代码中有很多逻辑。
目前这是通过ODBC驱动程序和MFC类,我们正在考虑迁移我们的抽象层以使用ADO或ADO.Net的问题。在后一种情况下,我们必须将数据库逻辑推回到.Net层。我试图决定通过.Net回调调用数据库的痛苦是否被ADO.Net的改进所抵消。
Wikipedia comparison很有意思,虽然我不确定我是否相信比较表中的所有要点(例如:ADO.Net是否总是使用XML来传递数据?)。
2005 comparison显示ADO.Net的执行速度要快得多。
微软的guide to ADO.Net for ADO programmers建议我们从ADO.Net获得更多收益,特别是以本机(.Net)类型提供数据的方式,而不仅仅是通过OLEAutomation的Variant。
答案 0 :(得分:1)
eg: does ADO.Net always use XML to pass data?
没有。听起来像维基百科中的白痴信息。
2个选择。首先,我真的会摆脱ODBC - 并至少移动到OleDb驱动程序。如果可能的话(告诉我 - 我有一个使用ODBC驱动程序调用JDBC驱动程序来调用第三方应用程序服务器的.NET应用程序。)
现在,您可以双向进行 - 双方ADO,托管ADO.NET并从.NET层公开 - 但这实际上不是程序员的决定,它是一个建筑事物,应该在主要上下文中看到。 我可能会选择一个.NET层,可能同时使用OData曝光层,并尝试从非托管层中使用它。