0

我正在为一个即将启动的项目做一些研究,并希望对我在这里有哪些选择提供一些意见。

基本上,这或多或少应该是这样工作的:用户应该能够绘制某些形状,如多边形,并根据形状的不同属性(如位置等),在服务器端执行计算和结果被发送回客户端。

我有一个 .NET 类库,其中包含形状(圆形、多边形、线条等)的类表示以及所需的所有计算。所有这些都包含在一个项目类中并序列化到一个数据库中,因为用户应该能够登录、保存他的工作、在另一个时间点加载它并继续。

所有绘图都应在客户端使用 HTML5 Canvas 和 JavaScript 完成,业务逻辑(例如计算)在服务器端完成。我需要在这里解决的问题是客户端和服务器之间复杂(多态)对象的双向通信和共享,我想避免使用一个 .NET 形状类和一个 JavaScript 形状类,因为它会导致在冗余代码中。

一种可能的解决方案是将类序列化和反序列化为 JSON。然而,这些类包含相当多的数据(其中大部分对客户端来说并不有趣),并且意味着大量的数据来回传输。这可以使用 DTO 类来解决,但是我又回到了两个包含公共信息的类。

这里还有其他解决方案/技术吗?有没有人遇到过这类问题?

提前致谢。

4

1 回答 1

0

鉴于您使用的是 ASP.NET(而不是 MVC),我认为将DataContract / DataMember属性添加到您现有的 .NET 类将是可行的方法,以及面向客户端的 WCF 服务。这样,您可以将现有类序列化为 JSON,但仍选择要序列化的属性。

如果你不熟悉数据契约/WCF/AJAX 的东西,这个网站有一些很好的起点: http ://wcf.codeplex.com/

于 2012-05-03T06:55:32.363 回答