热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么要从ADO切换到ADO.NET?-WhyswitchfromADOtoADO.NET?

Ihavesomefriendswhoareold-schoolVB6databasedevelopersandIwastellingthemabout.NETa

I have some friends who are 'old-school' VB6 database developers and I was telling them about .NET and its features, specifically ADO.NET.

我有一些朋友是'老派'VB6数据库开发人员,我告诉他们有关.NET及其功能,特别是ADO.NET。

In our conversation, they brought up the following reasons why they would rather stick with ADO than move to ADO.NET:

在我们的对话中,他们提出了以下原因:为什么他们宁愿坚持ADO而不是转向ADO.NET:

  • The Dataset is disconnected (What if power fails?)
  • 数据集已断开连接(如果电源出现故障怎么办?)

  • The same amount of code still has to be written
  • 仍然需要编写相同数量的代码

  • The new options of Dataset, BindingSource and TableAdapter seem confusing
  • Dataset,BindingSource和TableAdapter的新选项似乎令人困惑

  • the same code is written programatically access the Database, all that changes is how that command is laid out
  • 以编程方式访问数据库编写相同的代码,所有更改都是该命令的布局方式

I'm looking for answers or reasons why ADO.NET is 'better' than ADO with regards to data access when it comes to Windows Forms applications. What does ADO.NET provide that ADO does not? What does it do better than ADO?

我正在寻找答案或理由为什么ADO.NET在Windows Forms应用程序方面的数据访问方面比ADO“更好”。 ADO.NET提供的ADO不是什么?它比ADO做得更好?

NB: I'd like examples that do not involve LINQ.

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

8 个解决方案

#1


On the one hand, if it ain't broke, don't fix it. But on the other - VB6? Really? Sounds like ADO vs. ADO.NET is small potatoes here...

一方面,如果没有破损,请不要修理它。但另一方面 - VB6?真?听起来像ADO与ADO.NET这里的小土豆......

I think the issue is more VB vs. VB.NET and then the whole code-base, skill-set, other-non-technical-considerations come into play here.

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

#2


ADO is unsupported COM-based technology. VB 6.0 is end of life unsupported technology as of March 2008. DAO, RDO, ADO are all technologies that are nearly a decade past their prime.

ADO是不受支持的基于COM的技术。截至2008年3月,VB 6.0是生命周期不受支持的技术.DAO,RDO,ADO都是近十年的技术。

ADO.NET is a modern toolset for data access. In particular, LINQ to SQL and the Entity Framework take data access to new heights.

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

#3


There's nothing wrong with using ADO in legacy VB6 applications. And if these applications are functioning correctly there's no reason to change them.

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

I don't think anyone programming in .Net will be too tempted to try to use ADO since it feels like such a hack job when you try to. Just let them be.

我认为.Net中的任何编程都不会试图使用ADO,因为当你尝试时感觉就像这样的黑客工作。让他们成为。

#4


Simple answer: don't convince them...

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

Have them look at LINQ to SQL (or better yet LINQ to Entities)

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

#5


One of the biggest issues that was able to get people to switch to ADO.NET at my day job was the fact that ADO (VB6 flavor) is all COM, you get better performance with ADO.NET.

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

#6


I heard a rumor that the VB6 runtime will not ship after Windows 7...

我听说有传言称VB6运行时不会在Windows 7之后发布......

#7


I'm guessing if the recordset is still connected and the power goes out on the server, the user would get prompted immediately in their app before they continue to enter data that won't get saved?

我猜测记录集是否仍然连接并且服务器上的电源耗尽,用户会在他们继续输入无法保存的数据之前立即在他们的应用中得到提示?

How about memory garbage collection?

内存垃圾收集怎么样?

Distributing updates is easier in .net.

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

I guess if you have a lot of code in VB 6 for winform apps why change? Maybe if you start a new project using VB.NET you can show some other benefits like including multiple tables in a table adapter (Can't say I've taken advantage of that).

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

#8


I prefer ADO.NET myself, but just for balance, there is one advantage of classic ADO over ADO.NET: it is arguably more usable.

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

Our customers found it difficult to use [ADO.NET] because of the extensive initialisation it requires. Even in the simplest scenarios, users are expected to understand complex interactions and dependencies between several types... Note that many of these problems were addressed in the .NET framework 2.0.

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

Written by the architects of the .NET framework, in the .NET Framework Design Guidelines 2nd Edition page 25.

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


推荐阅读
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有