【问题标题】:WCF Architectural DebateWCF 架构辩论
【发布时间】:2011-02-22 12:55:26
【问题描述】:

为大型应用程序构建 WCF 服务时,哪个更好:

在这两种情况下,假设业务逻辑层被分成不同的程序集。


将您的业务逻辑层用作服务实现,即没有代码后面也没有包装器

<%@ ServiceHost Language="CS" Service="MyApp.BusinessLogic.BusLogicImpl" %>

使用将调用包装到业务逻辑层的 WCF 服务的代码隐藏。

<%@ ServiceHost Language="CS" Service="MyApp.WebServiceHost.Service" CodeBehind="Service.svc.cs" %>

【问题讨论】:

    标签: architecture wcf


    【解决方案1】:

    如果你需要在你的服务背后有代码,我也会把它放到一个单独的程序集中,并将它存储在托管 SVC 文件的 ASP.NET 网站的 .\bin 目录中——我永远不会把它直接放到一个MyService.svc.cs 代码隐藏文件。

    所以你会有类似的东西:

    <%@ ServiceHost Language="CS" Service="MyApp.ServiceLayer.MyService" %>
    

    并将您需要的所有逻辑和包装代码(调用您的业务层)放入该程序集中。

    【讨论】:

    • 那么,问题的另一部分是:你认为包装器应该存在吗?
    • @Matt Ruwe:是的,我认为它非常有用,可以处理诸如捕获可能发生的一堆异常(网络中断等)并重新创建客户端代理类的事情,如果通信通道故障等。
    猜你喜欢
    • 2018-12-02
    • 1970-01-01
    • 2013-02-13
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    相关资源
    最近更新 更多