Visual Studio 2017 年和 angular 整合

Visual Studio 2017 and angular integration

这是一个基本问题,但我想了解 Visual Studio 如何处理 Angular 项目。

通过使用 Visual Studio 2017 (C#) 中提供的 Angular 模板,您能否解释一下 angular 应用程序的工作原理?

我知道这些是非常基本的问题,但如果您能提供答案/参考资料/链接,我会很高兴。

我的所有 Angular 开发都使用 VS Code,所以我无法回答你问题的第一部分。考虑在此处查阅有关 Angular 模板的 Microsoft 文档:https://docs.microsoft.com/en-us/aspnet/core/client-side/spa/angular?view=aspnetcore-2.2&tabs=visual-studio

我可以回答你问题的最后一部分。

How about if the angular project is developed outside of the visual studio such using eclipse/visual code/web storm? How can I integrate the two projects for production purposes?

您可以构建 Angular 生产应用程序。这会在 dist 文件夹中生成几个包和其他文件(例如 index.html 文件)。然后您可以获取这些文件并将它们部署到您的 IIS 或您用于生产的任何服务器。

您可以在这里找到一些一般信息:

https://angular.io/guide/deployment

虽然它主要是一般性的而不是特定于特定服务器的,但它确实有一些针对 IIS 的特定说明。

并确保按照此处的说明进行操作:https://angular.io/guide/deployment#the-base-tag 将基本标记设置到适当的 IIS 文件夹。

魔术没有在Visual Studio中完成。魔法在 .NET 中完成。

这就是为什么您可以使用 VS Code 甚至 vim!

在 Mac 上创建和开发 ASP.NET 核心 Angular 项目

为了简化,ASP.NET Core 所做的是:

  • 在开发中,他们将所有 URLs 重定向到 ng serve 的输出,但这种情况发生在所有路由都添加之后,因此 URLs 到控制器仍然有效
  • 在生产中,他们将这些 URL 重定向到一个静态文件处理程序,该处理程序查看 dist 文件夹,其中添加了 ng build 的结果。

代码并未完全对您隐藏。
请参阅我用作上述来源的 Startup.cs file from the project template

他们还使用 ASP.NET 节点服务(.NET <-> 节点互操作)来实现服务器端渲染。这意味着如果你使用它,你需要在服务器上安装 Node。有关详细信息,请参阅 server-side rendering docs

同一个文档页面还指出了他们如何有一个可选的开发代理,以防你想 运行 ng serve 手动,它只是代理(发送)所有 URL s(在所有路由根据 URL 检查后不匹配)到 Angular 开发服务器。