【问题标题】:How does ASP.NET MVC relate to WCF?ASP.NET MVC 与 WCF 有什么关系?
【发布时间】:2009-09-06 00:06:19
【问题描述】:

A Guide to Designing and Building RESTful Web Services with WCF 3.5,本文解释了 REST 的基础以及它与 WCF 的关系。 MVC 使用 REST 作为架构模型。我猜可以使用 .NET MVC 创建同时具有前端和 API 点的 Web 应用程序,但我不确定构建 API 的安全方法是否是使用 WCF 构建它,然后在MVC 作为控制器。

如果问题不清楚请评论,我会添加或修改文字。

【问题讨论】:

    标签: asp.net-mvc wcf model-view-controller api


    【解决方案1】:

    实际上还有第三种选择,ADO.NET 数据服务。无论如何,这是我如何看待他们的。

    MVC REST:让您可以完全控制如何公开数据,您必须编写所有代码才能使其运行起来,例如序列化、反序列化、所有 CRUD 方法等。值得一提的是,这是一个 MVC 站点意味着您只能通过 IIS over HTTP(S) 公开您的服务

    WCF REST:比 MVC 更自动化,比 MVC REST 更可靠的框架,即缓存、安全、错误处理等(基本上所有你必须使用纯 MVC 自己编写的东西)。作为 WCF,您可以通过多种方式托管它(例如 WS-、TCP)等。

    ADO.NET 数据服务:最快的方法是让一切都可以使用,你需要做的就是配置 global.asax,但是你必须使用实体数据模型,这是你很多人不想使用的.

    就我个人而言,我会使用 ADO.NET DATA SERVICES 或 WCF REST 来构建 API,在 MVC 站点中使用该 API,然后直接公开该 API,或者通过另一层传递它。

    【讨论】:

    • 实际上,您不必使用实体来使用ADS。 ADS 可以使用 Linq to SQL,甚至是非关系数据源(需要做更多工作)。
    【解决方案2】:

    ASP.NET MVC 可以作为轻服务工作的 REST 端点,所以我想您的问题的答案取决于您如何定义“安全”。

    显然,WCF 是专门为创建 REST 端点而设计的,其中包含所有隐含的安全隐患,而 ASP.NET MVC 旨在创建可由 ASP.NET MVC 本身使用的 REST 端点。

    以下文章展示了如何使用 ASP.NET MVC 控制器创建 Web 服务:

    使用 ASP.NET MVC 创建 REST API,它会说 Json 和普通 Xml 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 和示例
    http://haacked.com/archive/2009/08/17/rest-for-mvc.aspx

    【讨论】:

      【解决方案3】:

      它们是两组不同的技术,仅在构建于 .net 上相关

      MVC 用于创建网站并提供一个模型,其中 URL 被路由到控制器,控制器将视图作为用户界面传递给用户。

      WCF 是 .net 中的一组库,用于抽象服务类型(是否托管在 Windows 服务中,作为 IIS 中的 Web 服务等)以及协议(HTTP、TCP、MSMQ 等) .) 来自正在通信的客户端和服务器。

      MVC 网站可以使用 WCF 连接到 Web 服务,但这只是众多选项之一。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-20
        • 2023-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-01
        • 2019-09-14
        • 2011-08-19
        相关资源
        最近更新 更多