Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 服务与用户交互的最佳方式_.net_Vb.net_Service - Fatal编程技术网

.net 服务与用户交互的最佳方式

.net 服务与用户交互的最佳方式,.net,vb.net,service,.net,Vb.net,Service,我的应用程序需要是一个服务(无论用户是否登录,它都需要运行),但我也需要某种客户端控制/监督它正在做什么。这样做的最佳方式是什么 编写一个单独的应用程序与服务应用程序通信——我认为这是稳定性方面的最佳解决方案,因为应用程序将在某种程度上解耦 在服务应用程序中使用对系统事件的回调直接从服务应用程序加载UI表单-我认为这更易于部署 您认为我应该走哪条路?我过去使用过第一个选项,因为您在尝试从服务加载UI表单时会遇到问题(就像选项2一样)。为了向用户显示表单,您需要启动另一个应用程序,因此基于用户会话

我的应用程序需要是一个服务(无论用户是否登录,它都需要运行),但我也需要某种客户端控制/监督它正在做什么。这样做的最佳方式是什么

  • 编写一个单独的应用程序与服务应用程序通信——我认为这是稳定性方面的最佳解决方案,因为应用程序将在某种程度上解耦

  • 在服务应用程序中使用对系统事件的回调直接从服务应用程序加载UI表单-我认为这更易于部署


  • 您认为我应该走哪条路?

    我过去使用过第一个选项,因为您在尝试从服务加载UI表单时会遇到问题(就像选项2一样)。为了向用户显示表单,您需要启动另一个应用程序,因此基于用户会话而不是服务启动应用程序更有意义。

    前者通常更理想。从设计上来说,服务确实意味着在没有用户交互的情况下运行,而试图用它们来做UI工作可能是一个巨大的痛苦

    windows窗体应用程序和服务可以通过多种方式进行通信:命名管道、套接字、dde等。我过去曾使用命名管道来控制/与服务交互,而且很容易启动,特别是如果您只是需要该服务每隔一段时间吐出一些随机数据。客户需要做的就是倾听


    至于部署,windows窗体应用程序可能没有许多服务本身没有的依赖项(如果有的话),因此部署只是在您的安装程序包中包含另一个.exe。

    服务的关键在于它在运行时没有直接的用户交互。@StingyJack:这就是我们的想法,但用户需要每隔一段时间通知一次状态