2009-10-07 41 views
0

我在尋找建議。我知道stackoverflow喜歡「可回答」的問題,我希望這是。什麼數據庫技術用於遺留應用程序?

我有一個傳統(Windows)應用程序,使用專有(ISAM)數據庫。我希望調查將它轉移到使用SQL數據庫:主要是MS SQL Server,我不介意Oracle的靈活性,但這只是一個「會很好」,並且可能不應該影響決策。

該應用程序是用C/C++/MFC編寫的,不是託管。在這個階段,我非常期待「初始化」初始解決方案。我希望這不是太複雜,如果整個過程看起來像是在某個地方,它可以被改進。

我看到的候選人是:

  • ODBC
  • OLEDB
  • ADO.NET

其中我想我已經瞭解到,現在我應該更喜歡OLEDB通過ODBC。我知道ADO.NET,但不知道其他人。但是,ADO.NET將要求我使用應用程序中的.NET/CLR /託管代碼,目前它不會執行此操作。

任何建議的路要走?原型快速/簡單將不勝感激,但顯然,如果我知道最終的解決方案將需要一個不同的訪問方法,從另一個開始可能是愚蠢的。 (我希望不建議重新設計/重寫整個應用程序。)

+0

謝謝你的2個迴應(到目前爲止)。看來我有一個OLEDB投票(「更現代的設計」)和一個投票的ODBC(「相當簡單的API」) .... – JB1

回答

3

我不會使用ADO.NET,除非您打算將所有內容切換到託管代碼(這聽起來不太可能)。

這留下了ODBC和OLEDB。

ODBC是一個開放標準,但OLEDB是一個更現代化的設計。考慮到你的程序不可能在任何地方離開Windows我會建議OLEDB。

備註:您使用的實際數據庫在此決定中應該沒有多大關係。以上所有內容都對SQL Server和Oracle(以及更有限的Sybase,DB2,UDB等)有很大的支持。

+0

有人可以解釋爲什麼-1?只是對OLEDB的偏見? –

1

我會推薦ODBC,因爲它有一個相當簡單的API和對象模型。 OLEDB更復雜,需要一個陡峭的學習曲線。

如果您是從頭開始完成重寫,我推薦使用ADO.NET,但對於舊版遷移,您需要保持簡單。

相關問題