.net 托管面向服务的体系结构

.net 托管面向服务的体系结构,.net,wcf,hosting,soa,.net,Wcf,Hosting,Soa,在一次采访中,有人问了一些关于soa的问题。请看下面 我需要开发一个应用程序,应作为windows服务,网络服务,桌面应用程序或根据客户要求的网络托管。你对设计和方法有何看法 我说,在某种程度上,WCF试图实现同样的目标。但他问如果WCF不在那里怎么办。我将尝试在业务逻辑之上公开服务层,以便任何人都可以使用它。我知道这并不令人满意 或者我需要使用任何托管api才能做到这一点。但是它们可以在不更改任何代码的情况下进行配置 请分享您的观点?其中一些技术与其他技术完全不同。您不能编写既好的window

在一次采访中,有人问了一些关于soa的问题。请看下面

我需要开发一个应用程序,应作为windows服务,网络服务,桌面应用程序或根据客户要求的网络托管。你对设计和方法有何看法

我说,在某种程度上,WCF试图实现同样的目标。但他问如果WCF不在那里怎么办。我将尝试在业务逻辑之上公开服务层,以便任何人都可以使用它。我知道这并不令人满意

或者我需要使用任何托管api才能做到这一点。但是它们可以在不更改任何代码的情况下进行配置


请分享您的观点?

其中一些技术与其他技术完全不同。您不能编写既好的windows服务又好的GUI应用程序。根据定义,Windows服务没有GUI。你需要向客户解释,他们是在浪费金钱,试图同时制造一些东西


给你一个具体的例子:同一辆车不可能同时是一辆好的除雪器和一辆好的赛车。你可以同时做一些东西,但它要么在两个方面都很差,要么非常昂贵。

演示->服务->业务->数据访问->数据


无论演示文稿是如何构建的,该服务都允许对业务、数据访问和数据进行配置。

我仍然会坚持您的答案,特别是如果我正在接受采访,请按照以下方式回答。这取决于面试官是如何推动谈话的,但我想下面的思考过程会起作用

假设WCF不存在,那么我必须自己构建一个小型WCF来解决这个问题,如何解决? WCF提供什么

  • 它为频道、主机、身份验证等提供了一系列工厂,这意味着WCF是一种用于编写服务的领域特定语言
  • 它在代码(您的代码)和进行身份验证、日志记录和序列化所需的管道之间提供了一定级别的隔离
  • 因此,对于给定的业务域,如果我构建了上述一组服务(可能不如WCF那么健壮、可靠或可配置),但解决了业务问题,我就有可能使您的代码托管在所有可能的托管环境中。对于每个环境,我可能必须实现一些基本的管道,比如激活、通道启用,这样我也可以支持任何未来的托管场景

    无论是否使用WCF,如果托管问题和我支持的协议种类有限,成本差异都不会很大。因为编写服务业务逻辑、数据访问和应用程序接口的成本是相同的,只是管道被拿走了

    再想一想,我可以问面试官是否可以使用
    remoting
    ?如果那里已有这么多的WCF管道可用

    再次回到正轨,假设我们没有任何当前的技术堆栈,那么它就证明了为公司投资定制堆栈的成本是合理的,因为它有机会创建如此强大的平台,并在空白处创建标准


    我不确定面试官想问什么,我问过类似的问题,看看这个人是否能够通过建立一个商业案例来推动技术发展,而不会真正陷入局限性。

    记录在案,你谈论的汽车很可能在两个方面都很差,而且非常昂贵:)这是一个有效的问题,同一辆车不可能同时是一辆好的除雪器和一辆好的赛车。但同样的变速箱、轮胎或汽车座椅也可以用在各种类型的汽车上,这就是这里要问的。同一段代码/服务需要从不同的托管模型中调用(出于任何原因托管)。@Sanjeev:我正在寻找关于这个主题的更多可能的答案,因为这是一个有争议的主题。这就是延迟的原因