【问题标题】:What database technology to use for legacy application?遗留应用程序使用什么数据库技术?
【发布时间】:2009-10-07 10:17:53
【问题描述】:

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

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

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

我看到的候选人是:

  • ODBC
  • OLEDB
  • ADO.NET

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

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

【问题讨论】:

  • 感谢您的 2 条回复(到目前为止)。看来我对 OLEDB(“更现代的设计”)投了一票,对 ODBC(“相当简单的 API”)投了一票 ....

标签: database ado.net odbc oledb legacy


【解决方案1】:

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

剩下的是 ODBC 和 OLEDB。

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

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

【讨论】:

  • 有人能解释一下为什么是-1吗?只是对 OLEDB 的偏见?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2013-04-30
    • 2010-11-04
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 2017-01-14
    • 1970-01-01
    • 2010-09-07
    相关资源
    最近更新 更多