C# 基于JSON的体系结构,如何最好地同步前端和后端

C# 基于JSON的体系结构,如何最好地同步前端和后端,c#,json,C#,Json,在一个新的基于.NETREST的系统中使用JSON看起来很棒,但有一件事暗示了我的理解。保持应用程序两侧的JSON同步的策略是什么 我的意思是,如果你做一个GET:www.mysite.com/item/12345。然后应用程序的.net端转到db,检索id为12345的项,并将其解析为对象模型项,然后序列化为JSON并返回 如果您发帖子到:www.mysite.com/item并通过- { "Id": "12346", "ItemName": "New Item", "

在一个新的基于.NETREST的系统中使用JSON看起来很棒,但有一件事暗示了我的理解。保持应用程序两侧的JSON同步的策略是什么

我的意思是,如果你做一个GET:www.mysite.com/item/12345。然后应用程序的.net端转到db,检索id为12345的项,并将其解析为对象模型项,然后序列化为JSON并返回

如果您发帖子到:www.mysite.com/item并通过-

{
    "Id": "12346",
    "ItemName": "New Item",
    "ItemCost": 45
}
然后应用程序的.net端将其拾取,反序列化到Item对象,然后将其交给db

如何使JS对象模型和.net对象模型序列化这两方面同步?这仅仅需要手工维护,还是有一种基于.net模型序列化为JSON提供模板的聪明方法


我只是在寻找最佳实践和已完成的工作,不知道客户端如何知道要传递给服务器端的JSON。

我个人发现,在.NET环境中“驱动”这些更改更容易。不想教你如何吃蛋,但Javascript是一种绑定非常松散的语言,这意味着可以随时添加更改/功能/属性,而在.NET中,以更严格的方式测试和稳定POCO要容易得多


我最近玩过的一种方法是在创建对象时从我的服务中生成空的POCO,在适当的时候进行操作,然后将它们推回到服务中进行持久化,等等。它仍然无法解决使用Javascript时那种狂野的西部感觉,但至少数据契约可以在表面上匹配。

这是一个很好的问题。这让我开始考虑通过反射和动态生成的JavaScript来构建这种桥梁……我一直在考虑使用瘦服务,消费者可以调用它,返回JSON对象(基于序列化的.net对象),然后填充并发送回。但它仍然有一个神秘的元素,消费者知道某些属性将存在,并且它们可以被操纵。我猜这应该是一个JSON网络参考?我刚刚用一个非常类似的概念回复了其他人。理论上,我认为它的工作方式是客户端,您可以使用类似于
var item=GetItemTemplate()
的东西来调用一个非常精简的服务,该服务返回一个空白的序列化对象。然后,客户端对其进行操作并将其发送回,知道它只能是正确的格式。