0

我已经处理了一个要完成的学校项目,但目前被困在一个特定的点上。该项目的目标是创建一个以非常特定的方式处理数据的 OO 系统 - 服务器和客户端都有模型层信息的定义,但服务器必须处理所有保存到关系中的数据数据库。

因此,客户端和服务器都有一个控制器层,这是完全不同的。目前,只编写服务器端,它处理关系到对象的映射,一般来说,所有对象的管理(R2O 用实体框架解决)。但问题是重建的对象必须以某种方式传输给客户端。

我的问题是:这样做的最佳解决方案是什么?我无法更改布局(因此客户端无法直接连接到数据库服务器,不幸的是需要有一个数据提供服务器,并且必须在该部分解决并发管理),但我真的找不到简单的方法通过 TCP 连接传输具有相互关系的不同类的对象。

再说一遍-您建议的解决方案是什么,或者更广泛地说,我的选择是什么?

4

2 回答 2

1

您需要研究对象的序列化。

如果一个对象需要从Server传输到Client,则需要将其序列化为Binary或其他形式;使用 TCP 连接传输它;然后在客户端反序列化它以重建对象。

您可以通过这种方式传输一个或多个对象。

MSDN 上的这篇文章概述了序列化 - http://msdn.microsoft.com/en-us/library/182eeyhh%28v=vs.100%29.aspx

这个博客条目提供了一个基本的实现——http: //weblogs.asp.net/stevewellens/archive/2009/07/02/serializing-and-deserializing-objects-to-and-from-xml.aspx

您将不得不根据您的需要进一步定制;但这就是我期望的作业的重点。

于 2013-09-17T16:37:07.830 回答
1

在 .net 中通过 TCP/IP 传输数据的最简单方法是 WCF。关于代码项目有一个很好的教程:http: //www.codeproject.com/Articles/406096/A-beginners-tutorial-for-understanding-Windows

此外,您可能需要跟踪实体的状态(我的意思是当它们被发送到客户端并返回时)。如果您使用的是 EF,请查看自跟踪实体:http: //msdn.microsoft.com/en-us/data/jj613924.aspx

于 2013-09-17T16:42:59.790 回答