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

问题描述:

我们正试图提出我们的客户端和服务器标准,并且存在很大的争议。一派思想是C#客户端和Java服务器使用某种类型的专有消息库共享数据对象(认为XML就像结构一样)单声道 - 客户端和服务器上的共享代码。 。

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

其他人有这个困境?

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

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

+0

使用单词bespoke +1 – 2008-12-15 08:06:07

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

在任何情况下,我都会使用Protocol Buffers或其他语言中性格式定义的通讯,以确保您在将来不受限制。

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

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