我们已经在VB 6中开发了一个现有的应用程序。有6到8个模块可用。在主屏幕中,每个模块都有一个单独的按钮,单击该按钮将加载相应的模块。我们正在将其迁移到支持Web的系统,并确定使用基于Java的解决方案。
现在,我们不是完全开发和迁移到Java平台,而是在进行模块化迁移的技术可行性研究。也就是说,单击“模块1”,例如,将打开浏览器而不是现有的VB应用程序表单,所有后续处理/处理/加载/保存将由基于Web的Java应用程序处理,该应用程序实际运行在一个web / app服务器。慢慢地,这也将迁移到其他模块。
我的问题是,这在技术上是否可行/可行?也就是说,我们可以通过单击按钮打开浏览器并将所有后续请求,会话,cookie定向到在Web / app服务器上运行的Java应用程序。任何指针/建议/想法都非常感谢。
注意:我从朋友那里听说过WinINet API,它可以与HTTP协议进行交互。
答案 0 :(得分:0)
如果您要转向“糟糕的客户”(Web)模型,那么您的后端将创建100%的用户界面作为网页。
在这种情况下,您现有的富客户端需要被愚弄。试图从服务器请求HTML并将其重新解释为用VB6编写的丰富用户界面是没有意义的。
因此,您无需担心WinInet API(从Win2K开始,您不需要这样做,因此您可以使用至少3个非常好的包装器ActiveX控件和类:Internet Transfer Control,XmlHttpRequest class,以及WinHttpRequest类)。
不,在你的情况下,你可能会被替换你的“模块”(???),这可能意味着表格(?)由一个托管WebBrowser控件的表单。
然而,将那里发生的事情与其他“模块”相结合将是笨拙的。如果需要,您可能需要使用WebBrowser DOM来捕获数据,注入数据等。
理想情况下,您将转向Web服务模型而不是Web模型。这开启了前端可能性(Web,移动,富客户端)的世界,无需多个后端,并且在VB6中非常有用。随着SOAP被抛弃而偏向于更简单,松散耦合的RESTful Web服务,事情甚至会变得更容易。
您所描述的内容在某种程度上是可行的,但是当您开始添加会话cookie控件等要求时,它可能会变得难看。您最终可能需要在程序中进行两次登录,一次用于旧/现有部件,另一次用于基于浏览器的部件。
您可能最好只是让部分转到浏览器并从旧应用中删除部分并让人们并排运行。