跨语言C#和Java开发
-
06-07-2019 - |
题
您能否就如何最好地确保两个应用程序(一个在C#中,另一个在Java中)与和在交换数据方面高效兼容,能给我一些建议吗?你遇到过任何陷阱吗?
该场景是指向的,一个主机是服务提供商,另一个是服务消费者。
其他提示
描述性数据的JSON和一般数据类型的XML。如果这对您来说效率不高,则需要使用自己的编解码器来处理 C#和Java之间的字节排序差异。
我不是专注于特定的技术,而是我可以给出的最佳建议是花时间专注于两者之间的接口(无论是Web服务,数据库还是其他完全不同的东西)。例如,如果它是Web服务,请专注于创建清晰的WDSL文档。接口,接口,接口。在大多数情况下,尝试忽略每端的特定技术,在一些原型设计之外,以确保两种语言都支持您的选择。
此外,在主要障碍之外,不要关注效率。注重清晰度。你可能会有两个团队(即不同的人)在这个界面的任何一端工作。确保他们正确使用它比使事情变得更快更重要。
如果您将Java作为Web服务器,则可以使用Jax-WS( https:// jax -ws.dev.java.net/ )为.Net创建webservices和WCF以连接到Java Webserver ..
你可以使用像XML这样的东西(并不总是那么高效),或者你需要提出自己的专有二进制格式(高效但更多的工作)。我从XML开始,如果带宽成为问题,你总是可以切换到专有的二进制格式。
类似SOAP (维基百科)的内容受到C#和Java的支持。
我们的Web接口使用C#/ VB.Net,胖客户端使用Java。我们使用XML和Web服务在数据库和应用程序服务器之间进行通信。它运作得很好。
确保您使用定义良好的协议来传达数据,并编写测试以确保应用程序根据合同做出响应。
这是一个如此广泛的问题,但我建议关注适用于这两个平台的标准; XML或其他一些标准形式的序列化,如果需要互操作,则使用REST进行服务。
如果使用XML,您实际上可以将数据访问外部化为XPath语句,这些语句可以存储在两个应用程序使用的共享资源中。这是一个开始。