消费ASP.NET MVC操作方法

6

当前情况:一个ASP.NET MVC网站,有多个控制器和动作方法,并具有视图以允许添加食谱。

现在,我需要创建一个WPF应用程序,用作添加食谱的用户界面(与网站相同)。

我的问题是:我能否使用ASP.NET MVC网站来公开服务操作,然后由WPF应用程序使用(如何实现)?或者我最好为此创建专用的WCF服务,并让WPF和ASP.NET MVC网站都使用这些服务来消费它们?

谢谢, 路德维希

1个回答

3

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

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

但是,如果您选择WCF-REST路线,则可以避免其中一些额外的工具。更好的是,我会研究ASP.NET MVC 4的WebApi功能(这就是我要迁移的内容)。

值得一提的是,我认为WCF很强大,但我们的组织已经厌倦了调整所有旋钮并打开所有开关以使其正常工作,并且轻松地从一个安装中设置另一个。另一方面,MVC只需要添加一点额外的代码即可处理服务调用,因为我们已经使用它为我们的HTML视图提供服务,所以这真是一种乐趣。当然,这只是个人偏好。


谢谢,Web API 看起来很有趣。然而,它仍处于测试阶段,可能对我来说在生产环境中使用还太危险了。创建一个包含所有需要公开的逻辑的特定控制器是否是一个好主意?那个逻辑将使用底层控制器逻辑。 - L-Four
它很快就会退出测试版。开始开发解决方案看起来是合理的,可以在正式版本发布时进行调整并获得利润 :) - moribvndvs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接