在 Visual Studio 2015 年使用 grunt 和 bower 与 WebSite 项目进行 HTML5 开发或创建 HTML5 Web 应用程序?

Do HTML5 development using grunt and bower with WebSite project or create HTML5 Web app in Visual Studio 2015?

我想构建一个自定义 PURE HTML5 Web 模板,用于 HTML5/CSS3/JavaScript 单页应用程序开发,然后将其用作 SPA HTML5 Web 开发的起点。

Microsoft 明确推荐使用 Web 应用程序,但没有提供纯 HTML5 Web 应用程序模板,因此这项任务留给了最终用户。

我不是在问我是否应该使用 ASP.NET Web Site or ASP.NET Web Application,而是我在问,我可以安排什么样的模板配置,让我使用最现代的 HTML5 工具和工作流程,是吗? Web 应用程序(带有 .csproj 或 .xproj 项目文件)或网站项目(基于文件夹的项目)?

对于开发人员需要构建纯 HTML5 SPA 的项目,可能使用 ExtJS 或 Angular,或类似的东西,第一个选择是文件 -> 新网站和文件 -> 新建 Web 应用程序。

如果以后我的HTML5项目可能会添加一些ASP.NET,显然我应该选择文件->新建Web应用程序,但是没有HTML5 提供的模板,所以我希望构建自己的模板并使用它。但它应该基于什么?

对于网站选项,您单击文件新建网站,您将获得一个基于文件夹的项目,但 none 的新 grunt/bower 支持。

我正在寻找一种方法来获得两种选择的最佳效果。如果我点击 File New WebSite,我可以获得 grunt/bower 支持吗?或者,如果我单击“文件”“新建项目”,我可以以某种方式进行纯粹的 HTML5 工作吗?

我可以自己编写一个纯 HTML5 Web 开发 .csproj + .sln 项目,从一些 examples that used to be on codeplex and are now on GitHub 开始 在我看来,基于 .csproj 或 .xproj 的根目录对于纯 HTML5 开发的好处是:

我可以使用 ASP.NET 5 (DNX) Web 应用程序模板 (.xproj) 之一,然后删除所有 C# 内容,以获得一个可用的纯 HTML5 开发模板,并且保留所有新的 javascript grunt/bower 工具?还是我必须坚持使用网站(文件夹级别)项目及其 visual studio 2005 时代的网站开发功能,以进行纯粹的 HTML5 html/css/javascript 开发?

更新:如果投票给 "opinion" 的亲密选民会非常友善地指出我在哪里征求任何意见,那就太好了。我正在寻求帮助开发 Visual Studio 的模板,我相信这是主题,而不是征求意见。要开发模板,您必须做出选择。哪一个将提供最完整的 HTML5 工具,包括 grunt 和 bower 以及完整的 javascript 语法突出显示、jslint、bundle、minify 等?

在开发模板时,我目前的研究表明:

  • 蚂蚱,耐心点,现在还为时尚早。 ASP.NET Core 1.0 刚刚发布,但不包括某些元素,包括一个新的 .xproj 样式项目集,用于基本纯 HTML 5 个 web 项目开发(名称尚未公布,但我们假设,它可能是称为核心页面),无论它是什么,Microsoft "franchise reboot" for Pure HTML5 Development with Microsoft Visual studio 要么尚不存在,要么处于内部开发的早期阶段。如果微软在这里采取行动,我今天制作的任何模板都可能在三周或三个月后过时。

  • 目前,对于可以接受它的人来说,文件 -> 新网站工作正常,我还没有找到任何技术文档说明为什么你不能将它用于新开发,只是来自 Microsoft 的警告,如果文件 -> 新项目模板可以满足您的需求,它可能不是最佳选择。您可以从 ASP.NET Core 1.0 今天的工作方式中看出(及时 automatic-recompile 无需重建 ASP.NET Core 最终将 WebSite 世界的核心功能带入 WebApp 世界)它的新工具和 dnx 和 dnvm 中的新 .NET Core 功能最终 "restore the Balance of Nature" 我觉得在过去 10 年中已经被 WebSite/WebApp 二分法分开了。还没有,但这是我通过研究 ASP.NET 核心架构了解到的核心设计元素的一部分。

  • 对于 ExtJS,Visual Studio 的 Sencha Ext JS 插件提供了一个文件 -> 新网站选项,这工作正常。我昨天晚上下载并测试了它,它工作正常。如果我想调用 grunt 或 bower,或 bundle 和 minify,或任何其他 web-dev 工作流任务,我也可以使用外部命令提示符 window 手动执行。因此,虽然它可能不如我期待的那么闪亮,但还是可以完成工作的。 Ext JS 插件提供完整的 Ext class 层次结构 code-completion,以及纯 HTML5(通过文件新网站)和 HTML5+ASP.NET 的入门模板(通过文件新项目)。在评估他们的插件时,我最初认为没有办法在 visual studio 中做一个纯 HTML5 应用程序,因为我完全不知道文件新网站选项,并且(错误地)想到了 VS 的这个区域已弃用。

  • 对于 Angular SPA 开发,包括 .NET,有 this 模板,看起来您可以使用它,只是不写任何 ASP.NET 服务器端的东西如果你想做一个纯粹的HTML5 SPA.

  • 我可能会建议从上面链接的 angular SP 开发模板开始并修改它以减去 angular 并插入 ExtJS,或者使用 ASP.NET 4.6加上 Sencha 的 IDE 插件提供的 ExtJS 模板,然后从该模板中减去所有 ASP.NET 代码。我还没有针对 ASP.NET Core 1.0 .xproj 世界的入门模板建议。

  • 使用 .NET Core 和 ASP.NET Core 作为纯 HTML5 开发环境工具的关键部分应该是可能的,而且似乎很容易。特别是 "dnx web" 是一种有用的本地开发方式,因为它比使用 IIS Express 更轻量级。使用 "DNX web" (kestrel) 作为纯 HTML5 的轻量级静态服务器开发 HTML5 应该是同样可行的,或者一个完整的 Visual Studio 2015 项目(或者website 或 webapp),或者只使用像 Visual Studio 这样的现代 web-editor 代码。

我希望其他仍然感到困惑的开发人员,就像我在 visual Studio 中关于新网站和新网站的 now-10-years-long split-personality 问题应用,也许终于看到了隧道尽头的曙光。

更新:Q4/2016:实际上看起来 VS 2015 中的双向人格分裂问题在 VS 2016 中会变得更糟(目前预览为 VS15),因为将有三种打开项目的方式,通过一个菜单项打开 solution/csproj,通过另一个菜单项打开 Web 项目,通过第三个菜单项打开文件夹。