Visual Studio 2017 年和 angular 整合
Visual Studio 2017 and angular integration
这是一个基本问题,但我想了解 Visual Studio 如何处理 Angular 项目。
通过使用 Visual Studio 2017 (C#) 中提供的 Angular 模板,您能否解释一下 angular 应用程序的工作原理?
对于开发环境,我相信Visual Studio运行两台服务器:一台是用于Web API调用的IIS,另一台是node.js对于 Angular 项目(我说得对吗?)
但是,在开发环境中,应用程序使用WebAPI项目(例如localhost:5000
)的地址,而不是Angular应用程序提供的地址node.js(例如 localhost:66328
)。这是怎么发生的?
生产环境呢? Web API (C#) 和 Angular 都在 IIS 中工作吗?
如果 Angular 项目是在 Visual Studio 之外开发的,例如使用 Eclipse/Visual Studio Code/Webstorm 怎么样?我如何将这两个项目集成到生产环境中?
我知道这些是非常基本的问题,但如果您能提供答案/参考资料/链接,我会很高兴。
我的所有 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 开发服务器。
这是一个基本问题,但我想了解 Visual Studio 如何处理 Angular 项目。
通过使用 Visual Studio 2017 (C#) 中提供的 Angular 模板,您能否解释一下 angular 应用程序的工作原理?
对于开发环境,我相信Visual Studio运行两台服务器:一台是用于Web API调用的IIS,另一台是node.js对于 Angular 项目(我说得对吗?)
但是,在开发环境中,应用程序使用WebAPI项目(例如
localhost:5000
)的地址,而不是Angular应用程序提供的地址node.js(例如localhost:66328
)。这是怎么发生的?生产环境呢? Web API (C#) 和 Angular 都在 IIS 中工作吗?
如果 Angular 项目是在 Visual Studio 之外开发的,例如使用 Eclipse/Visual Studio Code/Webstorm 怎么样?我如何将这两个项目集成到生产环境中?
我知道这些是非常基本的问题,但如果您能提供答案/参考资料/链接,我会很高兴。
我的所有 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 开发服务器。