0

我正在寻求建议。我知道 stackoverflow 喜欢“可回答”的问题,我希望是这样。

我有一个使用专有 (ISAM) 数据库的大型遗留 (Windows) 应用程序。我希望研究将其转移到使用 SQL 数据库:主要是 MS SQL Server,我不介意 Oracle 的灵活性,但这只是“会很好”,并且可能不会对决定产生太大影响。

该应用程序是用 C/C++/MFC 编写的,而不是托管的。在这个阶段,我非常期待“原型”一个初始的解决方案尝试。我希望这不要太复杂,如果整个过程看起来像是在某个地方,它可以被改进。

我看到的候选人是:

  • ODBC
  • OLEDB
  • 网络

其中我想我已经了解到,现在我应该更喜欢 OLEDB 而不是 ODBC。我知道 ADO.NET 但不知道其他人。但是,ADO.NET 将要求我使用应用程序中的 .NET/CLR/托管代码,目前它不这样做。

关于走哪条路有什么建议吗?原型设计速度/简单性将不胜感激,但显然,如果我知道最终解决方案将需要不同的访问方法,那么从另一个开始可能会很愚蠢。(如果不建议我重新设计/重写整个应用程序,我将不胜感激。)

4

2 回答 2

3

我不会使用 ADO.NET,除非您打算将所有内容都切换到托管代码(这听起来不太可能)。

剩下的就是 ODBC 和 OLEDB。

ODBC是一种开放标准,但OLEDB是一种更现代的设计。考虑到您的程序不太可能脱离 Windows,我建议使用 OLEDB。

注意:您使用的实际数据库在此决定中应该无关紧要。以上所有这些都对 SQL Server 和 Oracle(以及更有限的 Sybase、DB2、UDB 等)提供了很好的支持。

于 2009-10-07T10:30:00.063 回答
1

我会推荐 ODBC,因为它有一个相当简单的 API 和对象模型。OLEDB 更复杂,需要陡峭的学习曲线。

如果您从头开始完全重写,我建议您使用 ADO.NET,但对于遗留迁移,您需要保持简单。

于 2009-10-07T14:26:24.960 回答