C# 构建服务层-该走哪条路?

C# 构建服务层-该走哪条路?,c#,json,rest,architecture,.net-3.5,C#,Json,Rest,Architecture,.net 3.5,我有一个当前的应用程序,客户端ClickOnce应用程序点击ASMX web服务获取各种信息。它工作正常,但有点慢。问题的一部分在于,它返回大对象,当分解为SOAP时,会将原来的大对象变成一堆不洁的XML标记,从而使有效负载的大小大大增加 无论如何,为了解决这个问题,我想用一些更轻量级的技术来重写这个设置,这些技术我听说过很多,但从来没有真正用于“Hello World”应用程序 所以我想做一个RESTAPI来返回JSON对象。考虑到JSON是一种更紧凑的格式,这应该可以减轻消息大小的问题。而且

我有一个当前的应用程序,客户端ClickOnce应用程序点击ASMX web服务获取各种信息。它工作正常,但有点慢。问题的一部分在于,它返回大对象,当分解为SOAP时,会将原来的大对象变成一堆不洁的XML标记,从而使有效负载的大小大大增加

无论如何,为了解决这个问题,我想用一些更轻量级的技术来重写这个设置,这些技术我听说过很多,但从来没有真正用于“Hello World”应用程序

所以我想做一个RESTAPI来返回JSON对象。考虑到JSON是一种更紧凑的格式,这应该可以减轻消息大小的问题。而且,除非有什么我不知道的,否则解析并不比SOAP XML更密集

问题:

  • 我的假设正确吗
  • 我应该使用什么技术来实现REST和JSON?我听说过,但看起来还不完整。我有什么选择
  • WCF、REST和JSON有什么不好的地方,我在开始之前应该知道吗

  • REST是一种利用HTTP的体系结构样式,因此我建议为服务使用HTTP侦听器

    JSON是JavaScript对象表示法,因此您需要在服务器端使用JSON解析器。您可以将JSON流式传输到客户端以获得响应;MIME类型为

    我不知道WCF有什么令人不快的惊喜,但我看不到HTTP有任何惊喜。

    您可以将其用于序列化过程

    我不会使用WCF创建JSON restful Web服务。我想,如果改用ASP.NET MVC3,您可以获得更好的结构。更容易遵循代码,也更容易创建RESTful路由

    要返回JSON,只需像下面这样返回viewmodel(使用获取):

    public ActionResult视图(int-id)
    {
    var user=\u repository.Get(id);
    var viewModel=AutoMapper.Map(用户);
    返回Json(viewModel);
    }
    
    我认为你的假设是正确的。您基本上构建的是一个“适配器”或代理。
    public ActionResult View(int id) 
    {
        var user = _repository.Get(id);
        var viewModel = AutoMapper.Map<UserViewModel, User>(user);
        return Json(viewModel);
    }