以下内容来自《Microsoft .NET企业级应用架构设计》
何时使用服务层?服务层应该用在有所有一定复杂度的应用程序中,在多层分布式系统中,除非你只只用一种前端(例如Web端),且应用程序服务的方法与系统的用例能很好的匹配起来,这时服务层仅仅起到一个分发的作用,并且没有工作需要组织。那些简单的,仅用来把请求转发给业务层的服务确实有些多余。
相反,若你有多个前端且应用逻辑较为复杂,那么最好将整个业务逻辑放到统一的位置,而不是为每个应用程序的接口都重新编写一次。服务层的优势与劣质?
服务层添加了额外的抽象并除去了两个交互层之间的耦合,若这一点在你的系统中比较重要,那么应该创建服务层。服务层可以帮助你实现一个粗粒度的远程接口,并降低表现层与业务层之间的通信流量。
因为抽象是服务层的最主要的长处,所以简单系统中的服务层或许有过度设计之嫌。
正如我们刚刚提到的那样,服务层并不一定要使用WCF等专门的服务技术来实现。例如在ASP.NET表现层中,我们一般从代码后置中调用“服务层”,当然服务层和代码后置类都部署在同一台服务器上。而若在这里使用WCF服务作为服务层,则会增加额外的开销,进而影响到性能。在使用WCF作为服务层时,请尽早随时留意性能指标的变化。若性能影响太大,则有必要使用另一种服务层技术。