代码之家  ›  专栏  ›  技术社区  ›  Aliostad

简洁轻便的API:REST+JSON在.NET中

  •  3
  • Aliostad  · 技术社区  · 15 年前

    总结: 我需要知道,在.NET世界中是否存在不使用WCF的REST+JSON轻量级实现。如果没有,我正在寻找一些人谁会有兴趣开始一个开放源码项目的合资企业。

    我不知道你的情况,但我是WCF的忠实粉丝,当它问世的时候,我称赞它的模块化和可扩展性。然而,随着我越来越频繁地使用它,基本问题开始暴露出来,以至于我现在觉得它必须被废除和重新设计。这似乎是一个很大的声明,但我认为这些是主要问题:

    1. 首先,WCF在内部使用SOAP作为消息,这意味着如果传输消息不是SOAP,那么每次调用都要从SOAP转换到SOAP。这既昂贵又耗时。
    2. 它是根据WSDL设计的,自2001年以来世界发生了巨大的变化。实现REST还需要窃取消息。WCF是根据WSDL而不是REST设计的。
    3. 通道堆栈不必要的沉重。
    4. 与其他平台的互操作性可能是一个问题。

    现在看来,很多设计都朝着JSON和REST的简单化方向发展。我只是喜欢他们的简单,我可以看到我的洗衣机消费JSON在5-10年和主持休息服务!我相信他们在.NET中的实现是一个黑客攻击,我们非常需要一个非常轻量级和简单的框架(因为这些框架非常简单和轻量级)来在IIS内外托管REST+JSON服务。我希望这样一个框架存在,但如果没有,我真的很渴望得到一些志同道合的人。

    你觉得呢?这样的框架存在吗?如果没有,有人感兴趣吗?

    4 回复  |  直到 15 年前
        1
  •  1
  •   Jan Jongboom    15 年前

    用JSON代替HTML的MVC似乎是一种可能。您可以自由地使用JsonDataContractSerializer或JSON.Net序列化数据协定。

        2
  •  1
  •   Ed Power    15 年前

    OpenRasta . 它似乎解决了你的许多问题。

        3
  •  0
  •   PacificSky    15 年前

    如果您真的不想使用IIS,可以实现自己的HTTP侦听器进程。这样,您就可以编写自己的独立应用程序来响应HTTP请求(如果您愿意,可以将其作为服务运行),而不需要任何IIS、WCF或任何其他容器进程框架的开销。你的过程将活在HTTP.sys系统Windows公开的功能,以及.Net framework通过HttpListener类公开的功能。

    看一看 http://msdn.microsoft.com/en-us/library/system.net.httplistener.aspx

    它当然可以执行-我已经在标准桌面类机器上测试了一个基本的HttpListener实现,每秒处理3000多个请求,所以框架本身不会阻碍您。

        4
  •  -1
  •   Chris S    14 年前

    MicroRest ,一个我刚开始的开源项目。以下是我写的广告语:

    MicroRest是一个很小的REST框架-5个类,大约500行代码。所有输出都是JSON。它允许您将REST功能添加到ASP.NET应用程序不需要经历WCF rest的巨大混乱(在3.5中它不提供“干净”的url)。它还允许您在REST方法中使用poco(在某些情况下还允许使用复杂对象),其中WCF限制您使用int和字符串

    捐款是非常受欢迎的,它确实依靠系统.Web.Routing现在,卡西尼/IISExpress需要作为一个嵌入式web服务器。我正在考虑编写一个自定义路由解析器,这样它就可以作为一个点移动到Kayak。