带RESTAPI的ASP.NET MVC

带RESTAPI的ASP.NET MVC,asp.net,asp.net-mvc,asp.net-web-api,Asp.net,Asp.net Mvc,Asp.net Web Api,我已经在CakePHP和其他基于PHP的MVC框架上工作了多年,但是由于工作的变化,我现在需要使用ASP.NET——这很好。我遇到的问题是开发团队都是Win Forms开发人员,所以我想使用REST为我的MVC应用程序打开一个API,这样我们就可以使用相同的代码实例来访问我构建的任何东西 我遇到的问题是,我在网上读了很多书,很多人似乎认为应该将WebAPI和MVC应用程序放在两个独立的解决方案中。我不明白的是,我如何做到这一点,仍然使用我所知道和喜爱的MVC,而不会在代码上加倍 有什么建议、进一

我已经在CakePHP和其他基于PHP的MVC框架上工作了多年,但是由于工作的变化,我现在需要使用ASP.NET——这很好。我遇到的问题是开发团队都是Win Forms开发人员,所以我想使用REST为我的MVC应用程序打开一个API,这样我们就可以使用相同的代码实例来访问我构建的任何东西

我遇到的问题是,我在网上读了很多书,很多人似乎认为应该将WebAPI和MVC应用程序放在两个独立的解决方案中。我不明白的是,我如何做到这一点,仍然使用我所知道和喜爱的MVC,而不会在代码上加倍


有什么建议、进一步阅读或帮助吗

您可以使用某种服务层的共享代码创建一个项目,并使您的MVC和API项目使用该项目。这样就不会有代码重复


另外,我在同一个项目中使用了WebAPI和MVC,没有任何问题。将它们放在同一个项目中的缺点是什么?

您担心哪些代码加倍?主要是模型和控制器。。。因为虽然我知道它们不会完全相同,但它们是相似的。模型是绝对可以分享的。创建一个至少包含3个项目(MVC web app、WebAPI app和模型库)的解决方案。别紧张,这正是我想听到的!谢谢@BrianWarshawWell,我对这一点很陌生,但是在同一个项目中你能有两种不同的身份验证类型吗?这是我关心的问题。我的想法是按照常规构建MVC应用程序,然后创建某种路由,将响应格式化为JSON?还是说我离MVC太远了?MVC中的服务层将位于何处?或者我该如何把它放在同一个项目中呢?WebAPI和MVC都有自己的路由—WebAPI控制器和MVC控制器不能共享同一个路由。您可以为webAPI和MVC创建一个单独的项目和不同的身份验证类型。例如,webAPI可以使用oauth和MVC表单身份验证。我将为共享代码创建一个单独的项目,并从其他两个项目中引用此项目。噢,上帝。。。现在你进入了一个严肃的领域,哈哈。所以在我看来,模型将是唯一真正完全相同的代码,或者至少应该完全相同。那么MVC的M如何被两个项目共享呢?