当前位置: 首页 > 面试题库 >

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

施文彬
2023-03-14
问题内容

摘要: 我需要知道.NET世界中是否存在不使用WCF的REST +
JSON轻量级实现。如果不是这样,我正在寻找一些有兴趣为开源项目建立合资企业的人。

我不了解您,但是当它问世时我是WCF的忠实拥护者,我赞扬它的设计具有模块化和可扩展性。但是,随着我越来越多地使用它,一些基本问题开始暴露出来,以至于我现在认为必须取消和重新设计它。这似乎是一个重要声明,但我相信这些是主要问题:

  1. 首先,WCF在内部使用SOAP作为消息,这意味着如果传输消息不是SOAP,则每次调用都会产生与SOAP相互转换的成本。这是昂贵且费时的。
  2. 转换外发消息需要“插入”消息检查器并“窃取”消息。顾名思义,这是一个检查器(必须用于检查和记录),因此坦率地说,使用它来更改消息是一种黑客。
  3. 它是根据WSDL设计的,自2001年以来,世界发生了很大变化。实施REST还需要窃取消息。WCF是根据WSDL而非REST设计的。
  4. 通道堆栈不必要地沉重。
  5. 主堆栈与协议无关。这不是优势,而是根本缺陷。如您所知,稍后添加了对许多协议级别信息的访问,因为无法实现某些重要的用户方案。例如,无法访问TCP中的客户端IP地址,以后再添加(现在可以使用perationContext.Current.IncomingMessageProperties [RemoteEndpointMessageProperty.Name]访问)
  6. 与其他平台的互操作性可能是一个问题。

现在看来,许多设计正在朝着简化JSON和REST的方向发展。我只喜欢它们的简单性,我可以看到我的洗衣机在5到10年内使用JSON并托管REST服务!我相信它们在.NET中的实现是一个黑客,我们非常需要一个非常轻巧的框架(因为它们既简单又轻巧)来在IIS内外托管REST
+ JSON服务。我希望有这样一个框架,但如果没有,我真的很想与很多志同道合的人一起工作。

所以你怎么看?是否存在这样的框架?如果没有,有人感兴趣吗?


问题答案:

吐出JSON而不是HTML的MVC似乎是一种可能性。您可以自由使用JsonDataContractSerializer或JSON.Net来序列化数据合同。



 类似资料:
  • 我正在为客户端设计一个新的web API。我以前没有设计过所谓的RESTful API,我对“做什么”和“不做什么”的大肆宣传的有效性有严重的怀疑。 也许是我,但有一件事我不明白,那就是为什么如此强调URI的结构。让 URI 表示资源,什么不表示。 然后,应用程序需要“预测”URI包含的内容,具有大量有效性代码和处理非自然URL结构的条件。 几个世纪以来,我们一直在使用这样的东西: 以及: 只要一

  • 问题内容: 来自.NET,我习惯于Ninject,这是一个很小的简单ioc容器。Java有什么简单而轻巧的东西吗? 越简单越好! 问题答案: Pico容器或google- guice 。在这里查看比较。 顺便说一句,很少有人会致电春“ligthweight”,但它 可以 被用作这样的,只有基本功能。因此,它包含在上面的比较中。

  • 问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我有一个单用户Java程序,希望将数据存储在轻量级数据库(例如Derby或Sqlite)中。我想在程序中使用数据抽象层。Hibernate似乎需要大量配置,并且

  • 本文向大家介绍.NET中函数Main的使用技巧,包括了.NET中函数Main的使用技巧的使用技巧和注意事项,需要的朋友参考一下 引言 最近在使用pandoc这个文档转换软件,能够对各种文档进行完美的转换,比如从markdown文件转为doc,ppt,tex,odt等等各种,感兴趣的可以从Pandoc下载,对于pandoc的的文档转换,都是使用cmd中的命令来进行操作的。现在我需要把d盘的1123.

  • 问题内容: 我经常对Python列表进行矢量加法。 示例:我有两个这样的列表: 我现在想将b添加到a以获得结果。 通常我最终会这样: 有没有什么有效的,标准的方法可以减少打字? 更新:可以假定列表的长度为3,并且包含浮点数。 问题答案: 我认为您找不到比问题中提出的3个总和更快的解决方案。numpy的优点对于较大的矢量以及在需要其他运算符时都是显而易见的。numpy对于矩阵特别有用,而python

  • 我们在“线性回归的简洁实现”一节中已经了解了使用Gluon实现模型的便利。下面,让我们再次使用Gluon来实现一个softmax回归模型。首先导入所需的包或模块。 %matplotlib inline import d2lzh as d2l from mxnet import gluon, init from mxnet.gluon import loss as gloss, nn 获取和读