构建没有服务层的企业应用程序

0x4*_*9D1 2 c# architecture wcf entity-framework n-tier-architecture

有很多教程教我们直接使用一些ORM与数据库,但在现实生活中我不记得一个直接与数据库而不是服务工作的大项目,所以这个教程的数量对我来说似乎很奇怪.
直接连接的应用程序在数据库和应用程序之间的数据转换速度方面具有真正的好处,并且它们对由于服务层而出现的功能没有限制(例如,让我们采用实体框架和WCF数据服务(使用相同的实体数据模型本身) )).另一方面,服务解决方案更加安全和灵活,这就是为什么我(我认为很多其他程序员)通常会选择它来构建具有某种通用业务逻辑的大型应用程序......但是!有时速度损失高达10倍!多数民众赞成只是悲伤,应用程序变得不那么响应.
因此,我想问的问题是:您是否可以分享自己构建企业应用程序的经验,而无需使用Web /服务层,何时这是一个不错的选择?

Lad*_*nka 6

企业应用程序!= n层应用程序.这意味着您可以编写企业应用程序而无需创建单独的物理中间层(业务逻辑).创建单独的中间层必须始终是需求的一部分,因为它会带来很多额外的复杂性=很多额外的成本.

单独中间层的通常要求是:

  1. 安全性 - 有时Web服务器位于DMZ中,中间层必须位于安全网络中
  2. 可重用性 - 您希望在多个应用程序中使用中间层,这也会导致SOA需求
  3. 可伸缩性 - 中间层可能要复杂得多,因此在前端层上独立扩展它可能很有用.如果要在多个应用程序中使用中间层,则还必须能够独立扩展它.可伸缩性要求通常基于性能和可用性要求.

如果您没有任何此类要求,则可以在前端和业务逻辑位于同一服务器上的同一进程中进行多层应用.