我正在开展以下列顺序分层架构的项目
Web层(ASP.NET MVC) - > WCF服务 - >业务层 - >数据层(实体框架) - >数据库(SQL SERVER)
Web层托管在一个Web应用程序(称为Web层)和托管在另一个Web应用程序中的其他层(WCF,业务层和数据层)(称为App层)
所有网络请求都按上述顺序传输。
现在我们有一个托管在windows服务中的组件,它需要与数据库进行通信,那么我应该通过绕过/跳过服务和数据层从Windows服务直接调用数据库的更好的方法是什么,或者我应该使用低于流量
Windows服务 - > WCF服务 - >业务层 - >数据层(实体框架) - >数据库
哪一个是更好的架构。
答案 0 :(得分:1)
如果Windows服务没有需要任何大量的配置来与数据层进行通信,那么我不明白你为什么不这样做。此外,它将保持您的架构一致(代码异常可能会妨碍可维护性)。
但是,如果将Windows服务连接到数据层需要大量的开销和/或重构,那么答案取决于Windows服务通信与数据层的广泛程度(只需要几个调用;有多大可能在未来扩展以包含更多的电话)。我不会花费数小时或数天来重构现有代码只是为了一致,一次性和/或简单的情况(记住,每次代码更改应该被测试)。
重要的是权衡现在可以获得的价格与以后可能获得的价格之间的差异。