我目前正在尝试设计一个应用程序,但我无法确定要使用的架构。
这将是一个.net应用程序,本质上该应用程序将拥有一个运行某个特定软件的服务器,该应用程序将与之交互。在此服务器上,需要运行一个实际与该应用程序交互的供应服务,队列请求等。然后将有一个Web前端,它提供用户界面并与服务进行通信,然后与软件进行通信,希望那讲得通。这意味着Web界面可以安装在与实际软件不同的机器上。
所以我想要建立的是:
答案 0 :(得分:4)
一些想法/答案:
答案 1 :(得分:1)
对于您的配置服务,我将使用通过WCF公开服务接口(API)的Windows服务。然后,您可以轻松扩展它以提供Web服务(SOAP)API甚至REST API。至于Web应用程序如何进行通信,这实际上取决于您如何公开通信层(WCF,SOAP,REST)以及您最喜欢使用的方式。我会说,如果你控制通信的两面,WCF是最容易使用的,听起来就像你一样。
我不确定您正在寻找什么样的模式。这是一个相当标准的n层设计模式。没有很多工具(我至少知道)可以帮助您创建实际的实现。
答案 2 :(得分:1)
对于初学者来说,您似乎想要查看 Windows Communication Foundation ,因为您将拥有与服务和/或应用程序交互的网站。
Windows Communication Foundation是.NET Framework的一部分,它提供了一个统一的编程模型,用于快速构建面向服务的应用程序,这些应用程序可以在Web和企业之间进行通信。
答案 3 :(得分:1)
执行某些工作的Windows服务可以安装在不同的计算机上,也可以安装在同一台计算机上。
您可以使用mq(如MSMQ)将消息从Web应用程序发送到服务。该服务将订阅MQ并正在侦听消息。这种方式有很多好处(保证交付),但你必须设置它。
或者您可以让服务定期在webservices上调查Web应用程序,当它看到Web应用程序上可用的工作时,获取它,然后更新Web应用程序以了解工作进展情况。
但是,对于Web应用程序进行推送式通信,您可以使用System.Net.Sockets或WCF(将服务器放入Web应用程序中的服务和客户端),但这需要正确的防火墙配置以允许您想要的端口说是允许的。