我在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
答案 0 :(得分:1)
让远程用户看到您的计算机必须“可以访问”。所以它必须在线和在DMZ,... 我建议将这些数据写入数据库/文件并编写一个单独的应用程序,以便在ASP.NET或任何你喜欢的地方查看它。
答案 1 :(得分:0)
您可以将浏览器控件嵌入桌面应用程序并使用任何网页。
答案 2 :(得分:0)
您可以使用HttpListener类(System.Net命名空间)将您的应用程序充当Web服务器。
这种方法有以下后果:
总体而言, HttpListener 方法是最佳选择的范围非常有限。
答案 3 :(得分:0)
另一种方法是让您的桌面应用程序生成静态html文件和图像(图表)并通过IIS,Apache或任何其他Web服务器提供。
此网络服务器也可能位于另一台计算机上,您可以使用网络驱动器或FTP上传最新的html和图像文件。
类System.Net.FtpWebRequest允许您直接从桌面应用程序执行FTP事务。
答案 4 :(得分:0)