MVC Web Api - 准系统最小的项目结构

时间:2014-01-24 01:51:03

标签: asp.net-mvc asp.net-mvc-4 asp.net-web-api

我正在查看this MVC WebApi starter kit(对于Angular / TypeScript)

忽略所有客户端代码,我注意到作者已经创建了一个非常简单的WebApi。已经取出了包括_ViewStart.cshtml,_Layout.cshtml在内的大多数脚手架,并放弃了Controllers文件夹中的控制器约定以及在控制器同名子目录下的View文件夹中的视图等。

他在Core文件夹中添加了一些我之前没见过的有趣的路由和验证类,并将控制器放在Api文件夹中,将Views直接放入Views文件夹中,并在根目录下放置了一个Index.cshtml。

对于独立的web api来说,它是非常干净和准系统的项目结构,除了向客户端繁重的应用程序提供数据之外什么都不做。我有点喜欢这种方式,但在跳船之前,我想知道这种方法有什么缺点,如果我实际上是通过这种方式放弃框架的任何核心功能。例如,显然MVC区域正在放弃,有利于灵活地创建自己的视图文件夹结构和应用程序部分的分离(我可以摆脱MVC区域,我很少使用它们)。另一件事是我不认为Controller动作方法可以return View(),它会按照控制器名称的约定在Views文件夹中找到它。我也没关系,因为我只会提供JSON数据,并将使用100%客户端模板。

是否还有其他任何我遗漏的核心功能可能让我对此项目结构感到后悔?

2 个答案:

答案 0 :(得分:2)

当我创建IIS中托管的Web API时,我的Web应用程序中的唯一文件是web.config,global.asax和global.asax.cs。其他一切都不是必需的。

答案 1 :(得分:0)

如果您尚未决定如何构建ASP.Net MVC / Angular项目,请查看此模板:

http://visualstudiogallery.msdn.microsoft.com/5af151b2-9ed2-4809-bfe8-27566bfe7d83

您可以随时将组件添加到项目中,因此我不会过多地使用它。我喜欢先从一个精益/大多数空项目开始,然后自己添加一些内容,以便我完全理解我正在添加的内容。