跨语言C#和Java开发

跨语言C#和Java开发,c#,java,performance,cross-platform,compatibility,C#,Java,Performance,Cross Platform,Compatibility,您能给我一些建议,如何最好地确保两个应用程序(一个是C#,另一个是Java)在交换数据时兼容且高效?你有没有遇到过什么问题 该场景是点对点的,一个主机是服务提供者,另一个是服务使用者 您可以使用XML之类的东西(并不总是那么高效),或者您需要提出自己的专有二进制格式(高效但需要做更多的工作)。我从XML开始,如果带宽成了问题,您可以随时切换到专有的二进制格式 C#和Java都支持SOAP之类的东西。看看数据交换格式。NET实现也是如此。确保使用定义良好的协议来传输数据,并编写测试以确保应用程序按

您能给我一些建议,如何最好地确保两个应用程序(一个是C#,另一个是Java)在交换数据时兼容且高效?你有没有遇到过什么问题


该场景是点对点的,一个主机是服务提供者,另一个是服务使用者

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


C#和Java都支持SOAP之类的东西。

看看数据交换格式。NET实现也是如此。

确保使用定义良好的协议来传输数据,并编写测试以确保应用程序按照约定响应。

JSON用于描述数据,XML用于一般数据类型。如果这对您来说不够有效,您需要使用自己的编解码器来处理此问题。

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

我们使用C#/VB.Net作为Web界面,使用Java作为厚客户端。我们使用XML和Web服务在数据库和应用服务器之间进行通信。它工作得很好。

我能给出的最好建议不是专注于某一特定技术,而是花时间关注两者之间的接口(无论是web服务、数据库还是其他完全不同的东西)。例如,如果它是一个web服务,那么重点是创建一个清晰的WDSL文档。接口,接口,接口。在大多数情况下,除了一些原型设计之外,尽量忽略每一端的特定技术,以确保两种语言都支持您的选择


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

如果您使用Java作为Web服务器,您可以使用Jax WS()创建Web服务,并使用WCF for.Net连接到Java Web服务器。

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

查看文档,它目前只支持C++、java和Python,但是协议缓冲区是交换数据的一种好的和有效的方式(比XML更有效)。不喜欢Google Java实现基于不可变的Java对象,那么还有其他实现,例如protostuff,CLR应该是独立于平台的: