2017-03-22 54 views
-1

我该项目的工作中,我们有以下顺序我们可以跳过/旁路多层次体系结构中的中间层

网络层(ASP.NET MVC)分层体系结构 - > WCF服务 - >业务图层 - >数据层(实体框架) - >数据库(SQL SERVER)

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

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

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

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

哪一个是更好的建筑设计。

回答

1

如果没有任何需要的Windows服务与数据层进行通信的广泛配置,那么我不明白你为什么不这样做。另外它会保持你的架构一致(代码例外可能会妨碍可维护性)。然而,如果将windows服务连接到数据层需要大量开销和/或重构,那么答案取决于windows服务通信与数据层的范围有多大(是否只需要几个调用;未来有多大可能扩展到包括更多的呼叫)。我不会花费几个小时或几天的时间重构现有代码,仅仅为了一个特殊的,一次性的和/或简单的案例的一致性(记住,每次代码更改应该被测试)。

重要的是要衡量现在可以获得什么与之后可能会花费什么之间的差异。

+0

喜Samus,我们的Windows服务应该基于一些推动机制,即如果任何触发器将被生成,然后Windows服务需要执行一些业务操作。其他的一点是,这个Windows服务不需要经常与数据库通信。 –