-1

我正在研究我们按以下顺序分层架构的项目

Web 层(ASP.NET MVC)-> WCF 服务-> 业务层-> 数据层(实体框架)-> 数据库(SQL SERVER)

Web 层托管在一个 Web 应用程序中(称为 Web 层),而其他层(WCF、业务层和数据层)托管在另一个 Web 应用程序中(称为应用层)

所有 Web 请求都按上述顺序传输。

现在我们有一个托管在 Windows 服务内部的组件,它需要与数据库通信,那么我应该通过绕过/跳过服务和数据层直接从 Windows 服务调用数据库,或者我应该使用以下流程,有什么更好的方法

Windows 服务 -> WCF 服务 -> 业务层 -> 数据层(实体框架) -> 数据库

哪一个是更好的架构。

4

1 回答 1

1

如果 Windows 服务不需要任何广泛的配置来与数据层通信,那么我不明白你为什么不这样做。此外,它将使您的架构保持一致(代码异常会阻碍可维护性)。

但是,如果将 Windows 服务连接到数据层需要大量的开销和/或重构,那么答案取决于 Windows 服务与数据层的通信有多广泛(是否只需要几个调用;将来会扩展它以包含更多呼叫)。我不会为了一个特殊的、一次性的和/或简单的案例而花费数小时或数天来重构现有代码(请记住,每个代码更改都应该经过测试)。

重要的是权衡现在可以获得的与以后可能花费的差异。

于 2017-03-22T17:32:21.993 回答