2010-03-12 114 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暴露層,並嘗試從非託管層消耗。