6

当前情况:一个 ASP.NET MVC 网站,其中包含许多控制器和操作方法,以及允许添加配方的视图。

现在,我必须创建一个 WPF 应用程序,它充当 UI 以添加食谱(与网站相同)。

我的问题是:我可以使用 ASP.NET MVC 站点来公开 WPF 应用程序使用的服务操作(以及如何做到这一点)?或者我应该更好地为此创建专用的 WCF 服务,并让 WPF 和 ASP.NET MVC 站点使用这些服务?

谢谢,路德维希

4

1 回答 1

3

我已经成功地使用 MVC 控制器和操作来为来自浏览器的 HTML 视图以及外部应用程序提供服务。它运作良好,但就目前而言,您需要一些工具:

  1. 我有一个动作过滤器,它以客户端请求的格式返回由动作产生的模型(通过检查 Accepts 标头,查找 application/json 或 text/xml)。因此,我可以将生成的模型序列化为 JSON 或 XML(我更喜欢 JSON)。
  2. 您将需要在您的客户端应用程序中找到或创建一个简单的 API 来为您的操作创建 WebRequest,然后处理结果。我创建了一个可以 POST 或 GET 的简单 API,然后将任何生成的 JSON 反序列化为一个对象(使用 JSON.NET)。您可以使用 REST 客户端 API。

但是,如果您采用 WCF-REST 路线,则可以避免使用这些额外的工具。更好的是,我会研究 ASP.NET MVC 4 的 WebApi 功能(这是我将迁移到的功能)。

郑重声明,我认为 WCF 功能强大,但我们的组织已经厌倦了转动所有旋钮并按下所有开关以使其正常工作以及从一个安装到另一个安装轻松设置是多么复杂。另一方面,MVC 可以正常工作……而且由于我们已经使用它来为我们的 HTML 视图提供服务,因此只需添加一些额外的代码就可以让它处理服务调用,这真是一种乐趣。当然,只是个人喜好。

于 2012-05-07T08:47:12.820 回答