我正在寻求建议。我知道stackoverflow喜欢“回答”问题,我希望这是。
我有一个大型旧版(Windows)应用程序,使用专有(ISAM)数据库。我希望调查一下使用SQL数据库:主要是MS SQL Server,我不介意Oracle的灵活性,但这只是一个“会很好”,并且可能不应该影响决策。
应用程序是用C / C ++ / MFC编写的,不是托管的。在这个阶段,我非常期待“原型化”初始解决方案尝试。我希望这不要太复杂,如果整个过程看起来像是在某个地方,它可以被改进。
我看到的候选人是:
我认为我已经了解到,现在我应该更喜欢OLED而不是ODBC。我知道ADO.NET而不是其他人。但是,ADO.NET将要求我使用应用程序中的.NET / CLR /托管代码,目前它还没有这样做。
有关哪条路的建议?原型速度/简单性将是值得赞赏的,但显然如果我知道最终解决方案将需要不同的访问方法,那么从另一个开始可能是愚蠢的。 (我希望不建议重新设计/重写整个申请。)
答案 0 :(得分:3)
我不会使用ADO.NET,除非您打算将所有内容切换到托管代码(这听起来不太可能)。
留下ODBC和OLEDB。
ODBC是一个开放标准,但OLEDB是一种更现代的设计。考虑到你的程序不太可能在Windows之外,我建议使用OLEDB。
注意:您使用的实际数据库在此决定中无关紧要。所有上述内容都对SQL Server和Oracle(以及更有限的Sybase,DB2,UDB等)提供了很大的支持。
答案 1 :(得分:1)
我建议使用ODBC,因为它有一个相当简单的API和对象模型。 OLEDB更复杂,需要陡峭的学习曲线。
如果您从头开始重新编写,我建议使用ADO.NET,但对于旧版迁移,您需要保持简单。