2015-12-15 64 views
0

我不确定如何通过此操作来搜索它。VB.net,连接到我的主应用程序的客户端应用程序

我拥有的是我在Windows Server 2012 VM上运行的公司的自动化控制中心。我创建的这个应用程序(我将几个前面的程序员的应用程序合并到它中)连接到多个SQL表格,并通过其他内部vb应用程序提供的数据更新信息,以及我们的主要ERM应用程序处理订单,库存,物料清单等我们公司销售的每个项目。

我创建从头开始我自己的Windows通知弹出(完全因为自上次更新某些原因在Windows 10到通知弹出正常通话也没有创造一个弹出...加上我的弹出[它在形式和功能上与标准的Windows 8-10弹出窗口看起来完全相同]也有一个pin函数来无限期地在屏幕上保存通知)

原因是因为在我的通知弹出窗口中,我有指示器复选框,可切换绿色,黄色,橙色,红色的浅色图形,指示需要运行的不同模块的状态,以及连接和处理让我们保持业务的业务方面。

目前我必须远程登录到Windows服务器虚拟机来监视这个“显示器”(我弹出了一个固定的位置,这样我就可以最小化主窗体,只需扫视一下以确保它是运行)

我必须监视它的原因是因为之前的程序员(我接管的人)没有将正确的数据验证放在其他客户端上,并且用户有时可以将垃圾数据传送到处理器,然后我需要排除故障并获得再次运行的任何模块。

所以,现在我的实际问题...

我不想再拍应用程序,连接到这一个以某种方式(无论是直接通过XML /文本文件或TCP/IP共享),那会看起来和我的通知表格一样,它会放在我的电脑上,让我监视这个程序,所以我不必远程进入虚拟机。

我并不是特意要求任何人给我写这段代码,但我已经想过我可能想要继续的方向,但正在寻找更多有关如何继续的专家意见(节省我一些试验和错误从而减少浪费的时间和头痛)如果有人试图这样的事情,可以指导我。

所以,这主要应用程序使用settings.settings文件来存储可变数据以及一些本地和异地SQL数据库表来存储业务相关的数据。

我正在考虑生成一个文件,其中包含有关每个模块状态的相关信息,然后让客户端读取它(这也使我可以将该文件存储在我们的网络服务器上,并且无需穿孔即可访问它在我们的防火墙一个洞,以便它连接到主程序)

所以这更像是我问,如果有人对此有什么更好的想法。

回答

1

我有几个想法:

  • 使用文件传送信息给不同的客户端是BAD,您运行文件锁定问题,很容易造成更多的问题,那么,如果你刚创建它的权利首先。

所以下一部分取决于信息是否仍然有效,如果它的“旧”。我做这种事情有两种方式

(如果你不关心的信息,你错过或者是旧的,它并没有真正喜欢你的声音)

  • 我播放了状态消息一个UDP流,然后有任何客户端监听,并做的东西。有时错过的东西,如果我的电脑是关闭或网络连接有问题,但我不关心,当我做这样的

(以下简称“更好的方式”)

  • 我创建一个Web服务,使服务器后一切web服务,并给它一个ID,然后我有检查Web服务的“新”的邮件客户端,每次客户端获得消息的web服务标记为已读和不返回消息在未来的消息列表中。这需要更多一点的工作,并要求您可以将代码添加到服务器(因此它可以“后”的WebService),但它的工作“无处不在”,如果你服务发布到互联网的好处。
+0

将被传递的信息是不敏感的信息。例如:Checkbox3.Checked = True/false(有12个复选框表示12个模块正在运行或打开)。 ErrorRep.Text = <错误信息,如果任何>等 – bchiemara

+0

基本上我想这是主要的形式显示 – bchiemara

+0

的扩展所以,你可以很容易地创建一个结构,它包含12种检查状态,然后将错误消息序列化和广播,关于一个计时器 –

0

关于它的思考,我觉得我想出了一个解决方案(除非有人有更好的办法[复杂的同一层次或更少])

我将添加到控件的每次更新上表单(它已经更新了通知表单上每个对象的变量(这是因为主要模块在后台线程上运行)

通知弹出窗口刷新了循环定时器,该循环定时器运行于主程序运行在与主窗体GUI相同的线程中,当这个计时器运行时,它会导致通知窗体检查每个更新的变量的状态后台线程至于什么阶段,是的,什么是运行/不运行等

所以我只会扩大上,并与该信息的客户端程序会读取和显示更新的文本文件。

或者我可能只是有它在客户端可以读取已经存在的SQL数据库创建另一个小桌子。虽然我们运行的笑话是基于前一个人喜欢使用表格来存储所有包含程序本身变量的事物的事实,但可能会更好。

我真的不想依赖创建一个VPN来隧道到这里的环境,也不会在我们的防火墙创建一个例外,以允许这个程序通过tcp/ip或udp协议在后见之途访问。

+0

对任何有兴趣的人来说,我提出的解决方案完美无瑕。我的客户端应用程序每隔500毫秒连接一次,以检查单个记录是否对任何字段进行了更改。11个复选框的14个区域(只是自己显示绿色,黄色和红色的图形),2个标签,显示两个正在运行的模块的文本报告(上次运行时和任何错误),1个进度条价值中继。因此,为了澄清,我的主程序只更新了适当字段中的单个记录,而我的客户端程序每500毫秒读取一次。类似于DayZ和hivemind的工作方式。 – bchiemara

相关问题