Java 应用程序能否与 VB 应用程序集成?

5
我不确定我在问什么......我工作的公司的软件开发人员都使用VB编写所有内容。我目前是该公司的Web开发人员,专注于Flex应用程序。我正在考虑扩展到他们的领域。但我不想做VB,我不是要抨击VB,但编码语法不适合我。所以我想知道Java是否可以与VB集成?还不确定是否重要,但我认为他们所做的一切都是过程性的,而我将会做面向对象编程。
谢谢。

VB6或.Net的区别非常重要。如果使用VB.Net,您将拥有更多的选项。 - Todd Stout
他们正在使用VB6...我已经试图说服他们升级,但他们声称被锁定在vb6中...不确定它是如何工作的,所以不确定是否真实。 - JD Isaacks
2
很遗憾,VB6没有升级版本。它是最后一版。唯一的选择是迁移或坚持使用现有版本。正如Joel Spolsky在2000年和上周再次指出的那样,你永远不应该重写功能性软件...“当你丢弃代码并从头开始时,你正在抛弃所有那些知识。所有那些收集的错误修复。多年的编程工作。你正在放弃你的市场领导地位。你正在给你的竞争对手送上两三年的礼物,相信我,在软件行业这是很长的时间。” - Karl E. Peterson
5个回答

6

有很多集成机会,但在检查它们之前,如果我是你,我会重新审视问题本身。

在一个已经建立的项目中引入新语言应该是特殊的情况。单个开发者的愿望、美学偏好或技能水平不足以成为这样做的充分理由。将新语言引入项目应该是项目的战略决策,而不是一种间接的决策。

如果您选择扩展用于开发系统的核心语言,

  • COM互操作
    可以使用JACOB。我相信IBM也有一个桥接器。(请检查alphaworks)
  • Java-.NET桥接
    可以通过JNBridge和其他桥接器实现。只有在使用VB.NET时才有意义。
  • SOAP、XML文档交换、REST
    适用于服务边界。它需要TCP或HTTP或一些网络协议。
  • 常见数据存储
    可以作为会合点。Java和VB都可以在SQL Server、Oracle、MSMQ、MQSeries等中读取和更新数据。甚至文件系统也可以成为集成点。

将数据格式视为与集成机制相关但理想情况下独立的内容。我的意思是:您可以使用XML文档进行集成,无论它是存储在数据库中,还是通过REST接口发送,或者存储在文件系统中,或者放置/获取在队列上。同样,您也可以在任何这些机制上使用逗号分隔的文件。


2

他们可以通过SOAP或其他更简单的方式公开服务层。此外,您始终可以使用不同的语言针对相同的数据库进行工作,但是除非大部分逻辑都在存储过程中(不一定推荐这种方法),否则您最终会得到重复的代码。


0

不完全是这样。Java使用CORBA进行互操作,而VB使用COM进行互操作。您可能可以使用JNI创建桥接,但我知道那可能会很麻烦。


0

我没有做过这个,但我相信你有以下几个选择:

  • 使用Java-COM桥,因为VB使用COM。这个库已经在这里被提到过多次了。
  • 如果你正在使用VB.net,你可能会使用hessian,因为它有Java和C#的实现。

Hessian的网页将其描述为一种协议;但它实际上更多或不同。Hessian意味着一种数据序列化格式,以及一个库和API集。它似乎没有VB6绑定。在我看来,Hessian是对已经用更通用、易于访问的方式解决的问题的一种非常特定的回答。例如Web服务或REST。 - Cheeso
我同意,但相对于Web服务,它具有简单的优势。我们在一个结合了PHP/Java的应用程序中使用它。 - David Rabinowitz
关于VB6,这就是我提到JACOB的原因。 - David Rabinowitz

-1
你可以使用C/C++适配器将JNI调用与COM映射起来,从而桥接这两个平台。但那会是非常糟糕的。我希望有更好的解决方案,但我的理解是,将.NET代码和Java集成在一起非常困难,因为两个供应商(Sun和Microsoft)都没有任何激励来简化这种开发。

Sun和Microsoft一直在进行Java+.NET互操作的长期联合计划。两个公司都有专门全职的人员在此工作。作为互操作合作的一部分,微软在2009年J1大会上发表了主题演讲。 - Cheeso
我不知道那个。抱歉。 - El Weon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接