客户端应用程序 vs Windows 服务 vs?

3
我目前正在为我们的组织进行一些应用程序重构的研究。我们目前有一组10-15个奇怪的独立应用程序,它们相互通信并在客户端软件和硬件之间提供中间层级别。
当前模型的问题是有许多单独的应用程序,这增加了内存开销、通信延迟、使系统膨胀,并使在这些应用程序中任何一个崩溃的情况下很难恢复。
我考虑将应用程序合并为1-2个逻辑单元来解决这些问题。困境在于如何做到这一点:
- Windows服务 - UI应用程序 - 两者都是?
目标是拥有始终开启的系统,该系统将处理所有客户端硬件通信,但也具有丰富的管理用户配置UI,该UI将能够与此系统的所有单独组件交互并提供配置/等功能。使用WinForms/WPF应用程序将允许管理员轻松访问系统配置,并提供实时反馈(摄像头视频等),但会让管理员意外关闭窗口。让服务执行所有这些工作非常好,但我不确定如何提供一个丰富的管理用户UI来交互和更改此服务。
有什么想法或值得阅读的链接吗?
谢谢!

1
这可能不是提问的合适场所。请尝试在这里提问:http://programmers.stackexchange.com/ - rory.ap
2
什么阻止你同时拥有客户端应用程序、Windows服务甚至系统托盘应用程序? - Robert Harvey
1
如果您需要始终运行的服务来监控硬件通信,那么您需要一个Windows服务。然后,您可以将WPF应用程序作为UI,它可以与您的服务通信,或者与共享的本地数据库通信。您可以使用RPC从WPF应用程序与Windows服务通信,或者更好的方法是使用SQL数据库。因此,您的服务可以将数据写入数据库,而您的UI可以读取它。另一种选择是让UI通过TCP套接字连接到您的服务,并以这种方式发送/接收消息。 - Jon
2
我本来想建议类似于@Mangist的东西。我们有一个MVC应用程序,通过WCF与Windows服务通信。您有很多选项可供选择。 - Ian
1
@roryap 当提及其他网站时,指出不赞成跨贴通常是有帮助的。 - gnat
显示剩余2条评论
1个回答

1
我想更新一下我的问题,以便其他有类似问题的人能够受益。我采用了一个集中式Windows服务,为其许多子组件提供了许多WCF端点。在其上面是一个UI应用程序,通过WCF端点与Windows服务通信。为了使构建和调试更加容易,Windows服务在调试时配置为作为控制台应用程序运行。这个解决方案目前看来非常有效!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接