C# 一个项目中的最佳实践webapi/网站

C# 一个项目中的最佳实践webapi/网站,c#,visual-studio,asp.net-web-api,C#,Visual Studio,Asp.net Web Api,我正在创建一个新网站和web api。使用VS2013模板,我选择webapi模板(个人登录)。该模板将创建一个mvc asp站点 将我的网站与web api放在同一个项目中有什么问题吗?或者我应该在解决方案中创建两个项目吗。一个用于API,一个用于网站 我正在考虑允许桌面应用程序也使用api。不,在ASP.NET MVC项目中包含WebAPI代码没有任何“错误”。最简单的说,在一个单独的项目中使用WebAPI仅仅是代码组织,在另一个项目中使用任何代码都是关于代码组织的。如果您的项目很小,将保持

我正在创建一个新网站和web api。使用VS2013模板,我选择webapi模板(个人登录)。该模板将创建一个mvc asp站点

将我的网站与web api放在同一个项目中有什么问题吗?或者我应该在解决方案中创建两个项目吗。一个用于API,一个用于网站

我正在考虑允许桌面应用程序也使用api。

不,在ASP.NET MVC项目中包含WebAPI代码没有任何“错误”。最简单的说,在一个单独的项目中使用WebAPI仅仅是代码组织,在另一个项目中使用任何代码都是关于代码组织的。如果您的项目很小,将保持很小的规模,并且您是唯一一个处理该项目的人,那么将API与ASP.NET MVC网站保留在同一个项目中就可以了

但是,如果您希望其他人参与项目,如果您希望代码库增长。您应该从一开始就很好地组织代码,并将WebAPI放在一个单独的项目中

但简单的回答是:这是错误的,你应该时刻严密地组织你的代码,否则它会失去控制,混乱不堪,将来很难维护


因此,将WebAPI放在一个单独的类库项目中。

正如Brian所说,这并没有错,但这不仅仅是关于代码组织,如果您将它们托管在同一个项目中,那么就没有必要启用CORS for API如果您正在构建SPA(从浏览器发出XHR请求),它们都将位于同一个域上。 从安全角度来看,这将变得复杂,因为MVC应用程序将使用cookie,API将使用承载令牌。我不太喜欢VS 2013 Web API模板和个人帐户,因为它添加了许多中间软件和样板代码,您可能需要使用它们,或者不知道它们的功能。 我的建议是从一开始就将它们分开,并控制这两个项目。
您可以阅读更多有关如何从头开始构建API和所需组件的信息。

谢谢,我知道这是一条可行的道路,但我试图证明采取简单的方法是正确的。谢谢您确认我不想接受的内容。:)我现在将使用模板,但也会检查你的文章。