我正在使用C#编写Windows应用程序。我打算稍后允许使用浏览器通过Intranet控制它。因此,将来我们应该能够使用本地接口或通过浏览器的Intranet来控制它。
是否有任何预先定义的架构可以让我这样做?实现这一目标的方法是什么?我是C#/。Net的新手。
编辑:
Windows应用程序需要广泛访问通信端口,并且需要非常稳定,并且可能会一起运行几天。
...谢谢
答案 0 :(得分:1)
我无法告诉您是否存在可以简化开发的特定包。但是,如果我要尝试它,在谷歌搜索后并没有找到已经可用的东西并满足我的需求,我可能会使我的应用程序成为WCF主机。创建服务入口点以远程接受控制消息。您还需要一些众所周知的位置来注册您的应用程序,以便远程系统可以找到它。您应确保为用户提供禁用应用程序远程控制功能的方法。
您的主机接口需要在自己的线程上运行才能保持高性能。由于您不熟悉C#,并且可能是Windows窗体应用程序开发,因此您需要了解如何从非GUI线程正确地与GUI控件进行对话。
或者,您可能希望将应用程序实现为两个不同的单元,一个具有执行所有用户交互的GUI。它将形成发送到主机部分的服务请求(没有GUI)。然后,您的应用可以在本地运行或远程控制。
答案 1 :(得分:1)
我在类似情况下使用的一个解决方案有三个部分: -
1)Win32 (local) Service
管理COM端口并使用附加的硬件执行任何必要的操作
2)WinForms/Console Application
在本地计算机上运行,并通过命名管道或TCP与本地服务进行通信。
3)Web Server + Web App
在本地或远程机器上运行&与本地服务沟通。
本地用户可以关闭WinForms应用程序并注销,而不会影响服务或远程用户。
答案 2 :(得分:0)
最新版本的Silverlight(Visual Studio 2010附带的版本)允许Microsoft称之为“Out of Browser Experience”(简称OOB)。 这允许用户将Silverlight应用程序设置为桌面应用程序以及通过浏览器运行。
Rudi Grobbler has just blogged关于他如何在他的电脑上进行设置。