3

我正在设计一个具有两个 UI 的 Web 应用程序 - 一个是传统网页(HTML 视图),一个是 WPF 应用程序。我知道,为了获得关注的分离,最好设计如下所示,MVC 应用程序和 WPF 应用程序使用的 Web API。

在此处输入图像描述

但是我时间紧迫,我想知道我是否可以摆脱传统的 MVC 设计,如下所示。此外,我可能还有更多非 CRUD 操作,如果我要使用 WebAPI,则必须以 RPC 样式实现,从而增加 webAPI 的复杂性(更多工作、更多时间)。

在此处输入图像描述

我唯一的问题是 - 可以在 WPF 应用程序中使用 MVC 操作吗?如果是,我是否需要使用本文中提到的任何特殊 API 来执行操作,还是新的 HttpClient 包就足够了?

4

1 回答 1

1

是的,WPF 应用程序,就像任何其他能够发送 HTTP 请求和接收响应的应用程序一样,能够使用 ASP MVC 控制器操作。

毕竟,ASP MVC 框架只是解析 URL,推导出路由信息(区域、控制器、动作、参数等),最后在向您发送 HTTP 响应之前调用带有参数的关联动作。

来自MSDN

相比之下,用户与 ASP.NET MVC 应用程序的交互是围绕控制器和操作方法组织的。控制器定义动作方法。控制器可以根据需要包含尽可能多的操作方法。动作方法通常与用户交互具有一对一的映射关系。用户交互的示例包括在浏览器中输入 URL、单击链接和提交表单。这些用户交互中的每一个都会导致将请求发送到服务器。在每种情况下,请求的 URL 都包含 MVC 框架用来调用操作方法的信息。

因此,即使是一个简单的 HttpClient 也足以与 ASP MVC 控制器操作进行交互。但是您也可以使用您选择的框架或库来帮助您构建 HTTP 请求和/或将 HTTP 响应转换为更适合您的应用程序的内容。

这不是强制性的,但它可以节省一些时间!

话虽如此,请注意所有需要身份验证的场景,这可能会使事情变得更加困难:

  • 如果您需要表单身份验证,则可以先检索您的身份验证 cookie,然后将其包含在以后的 HTTP 请求中(有关更多信息,请参阅此帖子)
  • 如果您需要 Windows 身份验证,则必须提供您的凭据(请参阅asp.net 网站上的此页面)
于 2013-10-14T14:39:49.117 回答