c# – 在.NET中开发一个新的RESTful Web服务 – 我应该从哪里开
目标是构建一个服务,然后我将通过jQuery和基于标准的Web前端,移动设备“胖客户端”以及很可能是
WPF桌面应用程序来使用.
看起来WCF会是一个不错的选择,但我从来没有用WCF构建RESTful服务,所以我不确定从哪里开始这种方法. 我正在考虑的另一个选项是使用ASP.NET MVC,添加一些自定义路由,添加一些控制器操作并使用不同的视图来推出JSON,xml和其他返回类型. 这个项目主要是我自己的学习练习,我想花一些额外的时间来做“正确”,这样我就可以更好地了解各个部分是如何组合在一起的. 所以我的问题是,我应该使用哪种方法来构建这种RESTful服务,这样做有什么好处呢? 解决方法
通常情况下,我会说WCF适用于任何类型的托管服务,但在使用JSON作为序列化机制的RESTful服务的特定情况下,我更喜欢ASP.NET MVC(我将在本答案的其余部分中将其称为ASP.NET) ).
第一个原因之一是由于路由机制.在WCF中,你必须在合同上定义它,这一切都很好,但如果你必须快速更改路由,从我的角度来看,使用ASP中的路由机制更容易.净. 此外,对于上述问题,如果在WCF中通过多个接口公开多个服务,则很难获得URL结构的完整图像(这很重要),而在ASP.NET中(通常)具有所有路径在一个地方完成任务. 关于ASP.NET的第二件事是你将能够访问ASP.NET所知的所有内部对象(请求,响应,服务器等等),这在暴露特定于HTTP的端点时是必不可少的. (这是你正在创造的).当然,您可以在WCF中使用许多相同的东西,但是您必须明确告诉WCF您正在这样做,然后考虑到这一点设计您的服务. 最后,通过个人经验,我发现 我喜欢的JSON.Net序列化程序和ASP.NET的一个好处是你可以使用匿名类型,如果你很聪明的话.如果在非泛型类型上创建静态泛型方法然后委托给内部泛型类型,则可以使用类型推断来轻松利用序列化返回值的匿名类型(假设它们是一次性的,当然,如果你有一个一致返回的结构,你应该定义它并使用它). 还应该提到的是,如果开发RESTful服务,则不必完全折扣WCF.如果您正在从服务中推送ATOM或RSS源,那么 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |