如何设置ASP.NET API / AngularJS项目

我正在开始自己的Angular Web应用程序。 我有使用c#和angular进行编码的经验,但我从来没有设置过我自己的项目/解决方案。 在这种情况下,我想设置一个ASP.NET Web API,它将以JSON方式与Angular SPA前端通信(尽管它应该与前端无关,任何说JSON的应用程序都应该能够与它通信)。

另外,我听说过关于grunt的好东西,所以我想将它合并到项目中(至少要编译LESS并缩小和组合我的角度文件)。

我正在与visual studio professional 2013合作。我首先创建了一个Web API项目并下载了WebEssentials插件。

我对如何继续这里感到有点困惑。 我应该将我的角度分成同一个解决方案中的单独项目吗? 我如何包括咕噜声? 如何在visual studio的上下文中使用grunt将我的angular文件包含在index.html文件中?

该项目附带一个Scripts文件夹和一个Views文件夹。 我知道最好按function构造角度文件,以便将控制器和视图放在一起。 我应该在脚本文件夹中包含我的观点吗? 这对我的构建过程有何影响?

我意识到这些可能是非常幼稚的问题。 请耐心等待,在谈到这些任务时,我是一个完全的初学者。 我过去所做的一切基本上都是代码。

让我们一步一步走:

使用Web Api和Angular JS的Visual Studio解决方案

您可以将Web Api和Angular代码存储在同一解决方案和项目中。

在这种情况下,您可以安排这样的结构:

  • 内容
  • 控制器
  • 楷模
  • 脚本(使用app /文件夹和供应商脚本,如angular,jquery等)
  • 查看

index.html for angular application,你可以放入Scripts / app文件夹。 并且您可以将所有Angular视图放入Scripts / app / views文件夹中。

使用Grunt / Gulp

Grunt / Gulp / Cake / Broccoli – 这些工具只是一个javascript任务运行器,它允许您进行各种操作,例如将您的供应商脚本合并到一个文件中,缩小并将您的脚本组合成一个文件,将您的LESS转换为CSS等。

要使用这些任务运行程序,您可以使用项目构建事件 。 在项目构建事件中,您可以运行Grant / Gulp任务,这将为您完成所有的魔术。

还有一个名为Task Runner的 Visual Studio扩展。 此扩展允许您通过添加Task Runner Explorer窗口在Visual Studio中执行任何Grunt / Gulp任务或目标。

使用Task Runner在Visual Studio Project中使用Gulp的示例

要通过Task Runner自动运行Gulp任务,您需要在gulpfile.js开头添加一行

 ///  

此行将强制您的任务在每次重建项目后运行。

有用的信息

要获得有关ASP.NET上AngularJS的应用程序的其他信息,您可以查看John Papa撰写的video:“ 在ASP.NET上使用AngularJS构建丰富的应用程序

有用的Gulp模块:

  • gulp-useref – 在HTML文件中解析构建块以替换对非优化脚本或样式表的引用。
  • gulp-less – 少用于Gulp。
  • gulp-uglify – 使用UglifyJS缩小文件。