单声道 - 在客户端和服务器上共享代码。 。

时间:2008-12-14 13:46:10

标签: c# java shared-libraries

我们正在努力提出我们的客户端和服务器标准,并且存在很大争议。一个思想流派是C#客户端和java服务器使用某种类型的专有messsage库来共享数据对象(想想XML结构......)

这个模型的问题是有很多代码需要重复(验证,解析),如果你在服务器上使用C#,也可以简单地重复使用。如果有一个很大的推动使用Linux机器,那么就不会支持你的目标。

其他人都有这种困境吗?

4 个答案:

答案 0 :(得分:4)

有这样的框架。 ICE(ZeroC),“协议缓冲区”等。

例如,我的协议缓冲区实现(protobuf-net)适用于单声道,MS .NET,CF,Silverlight等 - 并且二进制格式与范围的语言(java等)兼容)。如果从.proto(一种定制的定义语言)开始,您可以使用它以您需要的每种语言生成对象层。

答案 1 :(得分:1)

在任何情况下,我都会使用协议缓冲区或以语言中立形式定义的其他内容用于通信,以确保您将来不受限制。

完成后,您可以从Mono上的C#开始。然后,如果证明这是不可行的,你可以切换到另一种语言。

答案 2 :(得分:1)

我建议你使用一些旧的但很好的标准在两者之间传输数据,SOAP和XML-RPC就是这样的例子。如果其中任何一个可行或可行,您可能需要尝试JSON或编写自己的XML格式。最近已经提到了协议缓冲区很多,但我还没有调查过,所以我真的不能说出来。

答案 3 :(得分:0)

我会尝试使客户端和服务器保持相同的运行时(Java或CLR)。使用Mono和.Net客户端/服务器的混合,我们取得了很大的成功。