4

我有一些朋友是“老派”的 VB6 数据库开发人员,我向他们介绍了 .NET 及其功能,特别是 ADO.NET。

在我们的谈话中,他们提出了他们宁愿坚持使用 ADO 而不是迁移到 ADO.NET 的以下原因:

  • 数据集断开连接(如果断电怎么办?)
  • 仍然需要编写相同数量的代码
  • 的新选项DatasetBindingSource并且TableAdapter看起来令人困惑
  • 以编程方式编写相同的代码访问数据库,所有的变化是该命令的布局方式

我正在寻找为什么 ADO.NET 在 Windows 窗体应用程序的数据访问方面比 ADO“更好”的答案或原因。ADO.NET 提供了哪些 ADO 不提供的功能?它在什么方面比 ADO 做得更好?

注意:我想要不涉及 LINQ 的示例。

4

7 回答 7

10

一方面,如果它没有坏,就不要修理它。但另一方面 - VB6?真的吗?听起来 ADO 与 ADO.NET 在这里是小菜一碟……

我认为问题更多的是 VB 与 VB.NET,然后整个代码库、技能集、其他非技术考虑因素在这里发挥作用。

于 2009-07-21T17:46:18.293 回答
6

ADO 是不受支持的基于 COM 的技术。截至 2008 年 3 月,VB 6.0 是生命周期结束且不受支持的技术。DAO、RDO、ADO 都是已经过了近十年的巅峰时期的技术。

ADO.NET 是用于数据访问的现代工具集。特别是,LINQ to SQL 和实体框架将数据访问提升到了新的高度。

于 2009-07-21T17:47:45.700 回答
5

在旧版 VB6 应用程序中使用 ADO 没有任何问题。如果这些应用程序正常运行,则没有理由更改它们。

我不认为任何在 .Net 中编程的人都会很想尝试使用 ADO,因为当您尝试使用 ADO 时,它感觉就像是一项骇人听闻的工作。就让他们吧。

于 2009-07-21T18:13:48.283 回答
2

简单的回答:不要说服他们...

让他们看看 LINQ to SQL(或者更好的 LINQ to Entities)

于 2009-07-21T17:45:47.403 回答
2

在我的日常工作中,能够让人们切换到 ADO.NET 的最大问题之一是 ADO(VB6 风格)都是 COM,使用 ADO.NET 可以获得更好的性能。

于 2009-07-21T18:02:20.037 回答
0

我猜如果记录集仍然连接并且服务器上的电源熄灭,用户会在他们的应用程序中立即收到提示,然后再继续输入不会保存的数据?

内存垃圾收集怎么样?

在 .net 中分发更新更容易。

我想如果您在 VB 6 中有很多用于 winform 应用程序的代码,为什么要更改?也许如果您使用 VB.NET 开始一个新项目,您可以展示一些其他好处,例如在表适配器中包含多个表(不能说我已经利用了这一点)。

于 2009-07-21T18:25:16.420 回答
0

我自己更喜欢 ADO.NET,但为了平衡,经典 ADO 与 ADO.NET 相比有一个优势:可以说它更可用。

我们的客户发现使用 [ADO.NET] 很困难,因为它需要大量初始化。即使在最简单的场景中,用户也应该了解几种类型之间的复杂交互和依赖关系……请注意,其中许多问题已在 .NET 框架 2.0 中得到解决。

由 .NET 框架的架构师在.NET Framework 设计指南第 2 版第 25 页中编写。

于 2009-08-27T17:21:22.007 回答