在旧版应用程序中混合现代数据访问

Posted

技术标签:

【中文标题】在旧版应用程序中混合现代数据访问【英文标题】:Mixing Modern Data Access in Legacy App 【发布时间】:2011-11-06 01:09:39 【问题描述】:

您如何看待在旧版应用中使用现代数据访问技术?不是用新层替换数据访问层,而是在同一层中混合使用数据访问方法。

假设我的旧应用程序中的当前数据访问层使用DataSetSQLDataAdapterSQLCommand 和存储过程来访问数据库中的数据。

是否有任何真正的理由不在 DAL 中包含 Linq to SQL (dbml) 或实体框架类 (edmx) 类?在 DAL 中或在同一个类中混合使用数据访问方法有什么害处吗?

【问题讨论】:

【参考方案1】:

一般来说没有什么坏处,但除非您计划在进行新开发时通过替换旧应用程序的部分来进行缓慢升级,否则我不会这样做。它将使整个应用程序像许多技术的大杂烩一样,它的维护会更差,而且它也可能会弄乱它的设计/架构。

例外情况可能是实现与其余部分隔离的应用程序的新组件。在这种情况下,您可能可以从头开始设计它并使用更新的技术,但对于支持/维护团队来说,这仍然是一件麻烦事。

【讨论】:

经过一番思考,我确实同意你的看法!有两件事让我考虑使用混合:1)我们的数据访问层很糟糕,已经是支持的噩梦,2)懒惰 - 我避免为新实体编写一堆存储过程:) 最后虽然我将坚持使用遗留方法。谢谢

以上是关于在旧版应用程序中混合现代数据访问的主要内容,如果未能解决你的问题,请参考以下文章

在旧版 Android 项目上实现暗模式

Oracle JDBC 驱动程序未在旧版 Web 应用程序中使用 JNDI 连接到数据库

如何在旧版 IOS/旧版浏览器上使用 Graphql Vue Apollo?

旧版 VB6 应用程序访问 SQL 数据库迁移

Chrome Rich 通知在旧版打包应用程序中不起作用

在旧版 MySQL 驱动程序中插入 BLOB 会导致“消失”错误