A Guide to Designing and Building RESTful Web Services with WCF 3.5,本文解释了REST的基础以及它与WCF的关系。 MVC使用REST作为架构模型。我猜测可以使用.NET MVC创建具有前端和API点的Web应用程序,但我不确定构建API的安全方法是使用WCF构建它然后在MVC作为控制器。
如果问题不明确,请发表评论,我会添加或修改文字。
答案 0 :(得分:2)
Theres实际上是第三个选项,ADO.NET Data Servies。无论如何,我在这里看到他们。
MVC REST:为了让您完全控制如何公开数据,您必须编写所有代码以使其运行起来,例如:序列化,反序列化,所有CRUD方法等等。请注意,这是一个MVC站点意味着您只能通过HTTP(S)通过IIS公开您的服务
WCF REST:比MVC更自动化,比MVC REST更加坚固的frameowkr,即缓存,安全性,错误处理等(基本上所有你需要使用普通的MVC编写的stff)。作为WCF,您可以通过各种方式(例如WS-,TCP)等来托管它。
ADO.NET数据服务:使用everthing准备好运行的最快方法,只需配置global.asax,但是你必须使用实体数据模型,这是你不想要的
就个人而言,我会使用ADO.NET DATA SERVICES或WCF REST来构建API,在MVC站点中查询该API,然后直接公开该API,或者将其传递给另一层。
答案 1 :(得分:1)
ASP.NET MVC可以作为轻量级服务工作的REST端点,所以我想你的问题的答案取决于你如何定义“安全”。
显然,WCF专门用于创建REST端点,具有隐含的所有安全隐患,而ASP.NET MVC旨在创建可由ASP.NET MVC本身使用的REST端点。
以下文章介绍了如何使用ASP.NET MVC控制器创建Web服务:
使用支持Json和plain Xml 的ASP.NET MVC创建REST API http://msmvps.com/blogs/omar/archive/2008/10/03/create-rest-api-using-asp-net-mvc-that-speaks-both-json-and-plain-xml.aspx
另请参阅Phil Haack的以下文章,该文章讨论了WCF团队为ASP.NET MVC用户整理的SDK:
Rest for ASP.NET MVC SDK和Sample
http://haacked.com/archive/2009/08/17/rest-for-mvc.aspx
答案 2 :(得分:-1)
它们是两套不同的技术,只是建立在.net
之上。MVC用于创建网站,并提供一个模型,其中URL被路由到控制器,控制器将视图作为用户界面传递给用户。
WCF是.net中的一组库,用于抽象服务类型(它是托管在Windows服务中,作为IIS中的Web服务等)以及协议(HTTP,TCP,MSMQ等) 。)来自正在通信的客户端和服务器。
MVC网站可能使用WCF连接到Web服务,但这只是众多选项中的一种。