代码之家  ›  专栏  ›  技术社区  ›  Sam Cogan

.NET应用程序体系结构[关闭]

  •  3
  • Sam Cogan  · 技术社区  · 15 年前

    我目前正在尝试设计一个应用程序,但在决定要用于它的体系结构时遇到了问题。

    这将是一个.NET应用程序,本质上,这个应用程序将拥有一个运行这个应用程序将与之交互的特定软件的服务器。在这个服务器上,需要运行一个配置服务,它将实际与这个应用程序、队列请求等交互。然后将有一个Web前端,它提供用户界面并与服务通信,然后与软件通信,希望这是有意义的。这意味着Web界面可以安装在与实际软件不同的机器上。

    所以我想建立的是:

    1. 在运行应用程序的服务器、在IIS中运行的Web服务或Windows服务上使用什么是最好的。
    2. 如果设置服务是Windows服务,那么ASP.NET Web应用程序与之通信的最佳方式是什么?
    3. 有没有处理这种设置的模式或架构?
    4 回复  |  直到 15 年前
        1
  •  4
  •   John Fisher    15 年前

    一些想法/答案:

    1. 如果使用WCF,则可以随意从IIS或Windows服务中的宿主切换。(只需将主代码放入一个dll,然后编写一个非常小的包装服务或Web项目。)
    2. 当然是WCF。它提供了各种选项,TCP、HTTP/Web服务、IPC、点对点等。唯一的问题是选择您想要的,然后编辑配置文件。
    3. 看起来我是在推荐WCF,所以我想这也是这个问题的答案。
        2
  •  1
  •   Scott Dorman    15 年前

    对于您的配置服务,我将使用通过WCF公开服务接口(API)的Windows服务。然后您可以轻松地扩展它以提供Web服务(SOAP)API,甚至是RESTAPI。就Web应用程序的通信方式而言,这取决于您如何公开通信层(WCF、SOAP、REST)以及您最适合使用的内容。我想说,如果你能控制沟通的双方,WCF是最容易合作的,这听起来和你一样。

    我不知道你在找什么样的图案。这是一个相当标准的n层设计模式。没有很多工具(至少我知道)可以帮助您创建实际的实现。

        3
  •  1
  •   Neil N HLGEM    15 年前

    首先听起来你想看看 Windows Communication Foundation ,因为您将有网站与服务和/或应用程序交互。

    Windows通信基础是.NETFramework的一部分,它提供了一个统一的编程模型,用于快速构建跨Web和企业通信的面向服务的应用程序。

        4
  •  1
  •   gjutras    15 年前

    执行某些操作的Windows服务可以安装在与IIS不同的计算机上,也可以安装在相同的计算机上。

    您可以使用MQ(如msmq)将消息从Web应用程序发送到服务。服务将订阅MQ并监听消息。这样做有很多好处(保证交付),但你必须设置它。

    或者,您可以让该服务定期对Web服务上的Web应用程序进行轮询,当它在Web应用程序上看到可用于它的工作时,获取它,然后保持Web应用程序对工作进行的方式进行更新。

    但是,对于要进行推送式通信的Web应用程序,您可以使用System.net.Sockets或WCF(将服务器放在服务中,将客户端放在Web应用程序中),但这需要正确的防火墙配置,以允许您要讲话的端口。