C# - 在客户端和服务器之间发送对象
本文关键字:之间 对象 服务器 客户端 | 更新日期: 2023-09-27 18:31:34
我被处理了一个要完成的学校项目,目前被困在一个特定的点上。该项目的目标是创建一个以非常特定的方式处理数据的 OO-系统 - 服务器和客户端都有模型层信息的定义,但服务器必须处理保存到关系数据库中的所有数据。
因此,客户端和服务器都有一个完全不同的控制器层。目前,只编写服务器端,它处理关系到对象的映射,通常处理所有对象的管理(R2O由实体框架解决)。但问题是重建的对象必须以某种方式传输到客户端。
我的问题是:这样做的最佳解决方案是什么?我无法更改布局(因此客户端无法直接连接到数据库服务器,不幸的是,需要有一个提供数据的服务器,并且必须在该部分解决并发管理),但我真的找不到一种简单的方法来通过TCP连接将具有关系的不同类的对象相互传输。
再说一遍 - 您建议的解决方案是什么,或者更广泛地说,我的选择是什么?
在 .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
您需要研究对象的序列化。
如果需要将对象从服务器传输到客户端,则需要将其序列化为 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。
你将不得不根据自己的需要进一步调整这一点;但这就是我所期望的家庭作业的重点。