从桌面应用程序更新网页

时间:2011-08-20 13:33:35

标签: vb.net

我在VB.net中编写了一个桌面应用程序,它从众多串行设备中获取数据并以windows形式绘制图形。我想做的是让远程用户能够从网络浏览器远程查看这些数据。

那么,是否可以将网页添加到桌面应用程序中,该应用程序可以从我的Windows应用程序中动态更新,或者我必须在asp,flex或silverlight中重写整个应用程序,以便可以通过Web远程查看浏览器?

我不熟悉asp flex或silverlight,并且只在win7和XP上使用vb.net 2010开发了桌面应用程序。因此,我们将不胜感激地提出任何建议或方向。


几个月前我发布了原始问题,并且最近才开始研究提出的建议。感谢所有人的帮助,我希望你能进一步告诉我。

所以我已经实现了HTTPListener建议(从MSDN示例拼凑而成)并且它可以工作,但它所服务的网页至少可以说是令人兴奋的。我真正需要的是你对我正在做的事情的看法,并首先看看,如果它是最好的方式,那么如果用户可以通过网络访问我的应用程序运行的PC,那么看看有什么安全隐患浏览器。以下是我到目前为止所做的描述,我会尽量保持简短。

应用程序从连接到PC的串行设备收集数据,进行一些计算并将结果存储在本地SQLCE数据库中。 HTTPListener提供了一个非常基本的网页,我有(目前为止)3个按钮,每个按钮使用httplistener接收的HTML“location.href”重定向浏览器。我使用'request.Url.Query'解析请求以获取特定关键字。如果收到关键字'result',我会从datatable生成一个HTML字符串,该字符串存储DB结果并通过httplistener提供该字符串。

另外两个按钮调用在我的应用程序中运行函数的代理,例如“开始从串行设备收集数据”和“启动图形子”。所以我真的使用httplistener来远程控制我的应用程序。我怀疑这可能不是最好的方法吗?我觉得我是在破解解决方案,而不是正确地做到这一点。

任何建议或指示都将不胜感激。如果需要,我也可以发布代码,这可能是令人尴尬的。

再次感谢帮助,非常需要。

JD2011

5 个答案:

答案 0 :(得分:1)

让远程用户看到您的计算机必须“可以访问”。所以它必须在线和在DMZ,... 我建议将这些数据写入数据库/文件并编写一个单独的应用程序,以便在ASP.NET或任何你喜欢的地方查看它。

答案 1 :(得分:0)

您可以将浏览器控件嵌入桌面应用程序并使用任何网页。

答案 2 :(得分:0)

您可以使用HttpListener类(System.Net命名空间)将您的应用程序充当Web服务器。

这种方法有以下后果:

  1. 您的应用程序必须运行才能访问该网页
  2. 远程查看器必须连接到运行桌面应用程序的计算机
  3. 您必须手动为这些网页编写100%的逻辑。没有框架可以支持你(就像使用ASP.NET一样)。您必须在HTML页面中编写远程查看器自己接收的每个字节。
  4. 从#1开始,桌面应用程序的每个实例都有自己的网页。
  5. 总体而言, HttpListener 方法是最佳选择的范围非常有限。

答案 3 :(得分:0)

另一种方法是让您的桌面应用程序生成静态html文件和图像(图表)并通过IIS,Apache或任何其他Web服务器提供

此网络服务器也可能位于另一台计算机上,您可以使用网络驱动器或FTP上传最新的html和图像文件。

System.Net.FtpWebRequest允许您直接从桌面应用程序执行FTP事务。

答案 4 :(得分:0)