WPF和协议缓冲区:它们组合在一起吗?

时间:2011-11-30 12:03:47

标签: wpf protocol-buffers protobuf-net

我想知道在基于WPF(可能是MVVM)的应用程序中最好的方法是什么,其中与远程设备的数据交换是通过协议缓冲区进行的(如果方便的话)。

WPF强烈建立在可观察性以及底层模型/视图模型与DP和INotify *接口的可变性之上。它是否与create / mutate POCO的协议缓冲方法相抗衡?

典型的上下文是具有WPF客户端应用程序,通过TCP / IP连接到运行Linux的嵌入式设备。基本上,我正在评估几种解决方案的优缺点,以找出最佳解决方案。

提前谢谢。

2 个答案:

答案 0 :(得分:3)

WPF应该对此没有任何影响,因为您的数据交换应该分成一个独立的,与UI无关的层。如果需要,您的服务层可以返回非GPB对象(或返回GPB对象通过​​部分类实现的接口),并且您的视图模型层提供另一层绝缘。

答案 1 :(得分:0)

您的关键点似乎是关于可变性和可观察性。

谷歌protobuf API确实很大程度上是不可改变的,并且不会非常喜欢WPF;但是,你也提到了protobuf-net,它不是 那个模式,而是采用标准的.NET习语。

protobuf-net模型可以是您想要的任何标准模型。如果您希望它有通知事件...有通知事件。它不介意。我不记得100%,但如果您使用的是.proto文件,我相信有一个开关必须自动添加代码生成通知事件,但.proto完全是可选的protobuf-净。

protobuf-net的输出应该完全可以与您的Linux设备的任何其他实现互换。一个选项是Mono / protobuf-net,但你也可以使用“标准”实现。