【发布时间】:2017-07-10 13:09:28
【问题描述】:
请在下面找到我的一位客户为项目提出的架构图。项目规模很大,目前它使用 SOA 和 ADO.Net(存储过程)进行数据库操作。
我不太愿意使用消息服务,因为它会增加额外的层并可能会产生额外的性能问题。
请在我的以下查询中提供您的意见
(1) 我们当前架构面临的主要问题 - 当一个长时间运行的停止程序正在运行时,它也会减慢其他操作。这就是我们将一个大数据库分成多个数据库的原因。 - 由于应用程序逻辑非常复杂,目前我们有具有复杂查询的存储过程。
(1) 是否可以使用 EF 并完全替换 ADO.Net。如何替换包含大约 20 个表的复杂(或大)查询的存储过程。
(2) 当我们有多个数据库时如何维护横断面,我觉得这会很困难。
(3) 如果可能的话,请您向我推荐一些使用类似架构的示例或应用程序,以便我可以创建一个试点应用程序并使用我当前的数据库对其进行测试。
相反,我更喜欢下面的架构,这是一种微服务架构,其中每个应用程序使用通用存储库和 EF 将数据写入其数据库,并且当应用程序想要相互通信时(即插入/更新/获取数据),然后它将使用消息服务。请告诉我哪种方法更好。
【问题讨论】:
-
如果性能是您的关键标准,EF 可能不是正确的选择。 Dapper 可能是一个很好的妥协。
标签: entity-framework design-patterns model-view-controller ado.net asp.net-web-api2