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

时间:2011-04-10 09:39:54

标签: c# wcf entity-framework architecture n-tier-architecture

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

1 个答案:

答案 0 :(得分:6)

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

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

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