【问题标题】:Architecture of independent API access layer between DB and front endDB与前端之间独立API访问层架构
【发布时间】:2021-02-10 14:36:31
【问题描述】:

我最近听说有一家公司在结构非常糟糕的 SQL Server 和它们的前端之间使用了一种令人惊讶的独立/独立 API(访问层)架构模式,这样就不会在任何地方使用任何实体框架以及与前端的数据库没有直接交互。

我以前从未在 .Net Core/Framework 环境中看到过这种情况,并且遇到了一种石膏类型的情况,他们试图抽象出糟糕的数据库结构并通过 API 向消费者隐藏它,而不是修复核心问题,就是糟糕的数据库。

这是否被认为是一种实际的架构模式或最佳实践(在这种情况下甚至可能?)还是只是一团糟?开发团队似乎对这种新的 API 模式持坚定态度...

【问题讨论】:

  • API 有多快?正在使用什么连接字符串/驱动程序?我怀疑他们使用的是 ODBC 而不是 OleDb。 ODBC 比 OleDb 更早/更快。当 OleDb 第一次问世时,它被认为是 ODBC 的一个很好的替代品,但由于速度问题,许多公司又回到了 ODBC。因此,数据库工具的好坏取决于执行查询所需的时间。
  • 这个问题确实属于 SE Stack:softwareengineering.stackexchange.com
  • @DavidBrowne-Microsoft 在引用其他网站时,指出cross-posting is frowned upon 通常会有所帮助

标签: c# sql-server entity-framework


【解决方案1】:

从数据库中抽象出前端是标准做法。抽象层使渲染数据传输对象与数据库中的实体模型大不相同。这个绝缘层为试图访问数据的参与者提供了一套标准,并将业务逻辑封装在一个中心位置。这是一个明智的决定。随着数据库标准的提高,可以在不影响前端的情况下更新对数据库的 API 调用。因此,前端开发人员不必为示意图数据库更改而烦恼。实体框架不是 c# 项目与数据库通信的先决条件或共同条件。那里有许多 ORM 库,有些堆栈甚至没有利用其中一个。虽然 EF 功能强大,但如果数据库一团糟,最好推迟任何 ORM 的实现,直到数据和架构得到充分整理。

【讨论】:

    猜你喜欢
    • 2019-06-06
    • 2012-01-09
    • 2010-12-09
    • 2015-06-17
    • 1970-01-01
    • 2020-01-06
    • 2012-07-12
    • 1970-01-01
    • 2017-11-18
    相关资源
    最近更新 更多