【问题标题】:Using MVC5 and Web API 2 in the same project在同一个项目中使用 MVC5 和 Web API 2
【发布时间】:2013-11-15 07:38:39
【问题描述】:

我即将在 ASP.NET MVC5 中开始一个新项目,它也有一些 Web API。我还需要一个调用 API 的 Windows 窗体客户端。此客户端有一个文件系统观察程序,可检测文件何时更改,并将内容发布到 API。

API 收到数据后会进行一些计算,理想情况下会通过 SignalR 将结果发送到浏览器并更新显示。

我在尝试进行身份验证时遇到了困难。我想使用个人用户帐户,因此用户可以使用 Windows 窗体客户端登录(并获取令牌)并在浏览器中查看数据。

我已经到了文件 -> 新建 -> 项目,并尝试了一个选中了 Web API 框的 MVC 项目,以及一个选中了 MVC 框的 Web API。查看它们生成的两个AccountController 类,它们似乎完全不同。

我猜选项是

  1. 尝试让这两个控制器一起工作
  2. 从 Windows 窗体客户端调用 MVC 控制器
  3. 解决方案中有两个项目,并尝试找出如何使用 SignalR 在它们之间进行对话。
  4. 更好的方法?

我怀疑是最后一个。我以前没有使用过 Web API,所以我可能做错了。我应该采取什么方法?

【问题讨论】:

    标签: c# asp.net-mvc authentication asp.net-web-api


    【解决方案1】:

    我会说,创建 2 个不同的项目,1 个用于 MVC,1 个用于 API。 使用 1 个 BLL,这两个 BLL 都引用了它们并承载了它们的逻辑,并且不会处理单独的控制器。

    当然,如果您需要其他层,如 DataAccess 或 Repository,您必须创建一次,它们将在 BLL 中被引用,随后在 MVC 和 API 接口中都会引用。

    【讨论】:

    • 抱歉,我来晚了,但我必须将产品架构从 WCF 转移到 Web API。以前的架构包括 BLL,我们可以在应用程序内部调用方法。现在使用 WEB API,因为一切都通过 HTTP 公开,我应该省略 BLL。如果没有,我如何在我的应用程序内部调用 BLL 方法。
    猜你喜欢
    • 2014-01-20
    • 2018-12-06
    • 2014-01-02
    • 2016-07-06
    • 2014-02-17
    • 1970-01-01
    • 2017-05-02
    • 2019-09-18
    • 2017-06-11
    相关资源
    最近更新 更多