跨语言C#和Java开发

时间:2009-10-23 14:24:04

标签: c# java performance cross-platform compatibility

您能否就如何最好地确保两个应用程序(一个在C#中,另一个在Java中)与在交换数据方面高效兼容,能给我一些建议吗?你遇到过任何陷阱吗?

该场景是指向的,一个主机是服务提供商,另一个是服务消费者。

9 个答案:

答案 0 :(得分:3)

查看protobuf数据交换格式。 .NET实现也是available

答案 1 :(得分:3)

描述性数据的JSON和一般数据类型的XML。如果这对您来说效率不高,则需要使用自己的编解码器来处理byte ordering difference between C# and Java

答案 2 :(得分:2)

我不是专注于特定的技术,而是我可以给出的最佳建议是花时间专注于两者之间的接口(无论是Web服务,数据库还是其他完全不同的接口)。例如,如果它是Web服务,请专注于创建清晰的WDSL文档。接口,接口,接口。在大多数情况下,尝试忽略每端的特定技术,在一些原型设计之外,以确保两种语言都支持您的选择。

此外,在主要障碍之外,不要关注效率。注重清晰度。你可能会有两个团队(即不同的人)在这个界面的任何一端工作。确保他们正确使用它比使事情变得更快更重要。

答案 3 :(得分:2)

如果您将Java作为Web服务器,则可以使用Jax-WS(https://jax-ws.dev.java.net/)创建Web服务,并使用WCF连接到Java Web服务器。

答案 4 :(得分:1)

你可以使用像XML这样的东西(并不总是那么高效),或者你需要提出自己的专有二进制格式(高效但更多的工作)。我从XML开始,如果带宽成为问题,你总是可以切换到专有的二进制格式。

C#和Java都支持类似SOAP (Wikipedia)的东西。

答案 5 :(得分:1)

我们的Web接口使用C#/ VB.Net,胖客户端使用Java。我们使用XML和Web服务在数据库和应用程序服务器之间进行通信。它运作得很好。

答案 6 :(得分:0)

确保您使用定义良好的协议来传达数据,并编写测试以确保应用程序根据合同做出响应。

答案 7 :(得分:0)

这是一个如此广泛的问题,但我建议关注适用于这两个平台的标准; XML或其他一些标准形式的序列化,如果需要互操作,则使用REST进行服务。

答案 8 :(得分:0)

如果使用XML,您实际上可以将数据访问外部化为XPath语句,这些语句可以存储在两个应用程序使用的共享资源中。这是一个开始。