与asp.net核心成角度

时间:2020-10-06 18:48:43

标签: angular asp.net-core asp.net-web-api

当前,如果我想使用asp.net core和angular,请执行以下操作:

  • 创建具有角度cli的客户端应用
  • 创建一个asp.net核心mvc应用程序
  • 将两者与Microsoft.AspNetCore.SpaServices.Extensions(spa策略=代理)连接
  • 像这样修改mvc应用程序的 "php": "^7.2.5", "laravel/framework": "^7.24",

Index.html

  • 像这样修改@section scripts { <script src="runtime.js"></script> <script src="polyfills.js"></script> <script src="styles.js"></script> <script src="vendor.js"></script> <script src="main.js"></script> } <app-root></app-root>

_Layout.html

然后,我启动角度服务器并运行mvc应用程序。如您所见,在这种情况下,我使用了mvc应用程序的<!DOCTYPE html> <html lang="en"> <head> <base href="/"> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>App</title> </head> <body> <h2 class="bg-dark text-white p-2">App</h2> @RenderBody() @RenderSection("Scripts", required: false) </body> </html>并将角度内容投影到其中。我将只使用asp.net核心应用程序来处理Rest api请求,因此不使用视图等。

我有三个问题:

  • 以上是在asp.net核心部分仅充当Rest api服务器的情况下使用angular的便捷方法吗?如果没有,那是什么?
  • 我也可以使用角度客户端应用程序的Index.html吗?我的意思是,asp.net的核心部分实际上仅是为api请求提供服务,而应用程序的入口点将是有角度的客户端应用程序的index.html

感谢您的回答/评论。

1 个答案:

答案 0 :(得分:0)

您要遵循的方法比构建2个单独的应用程序更简单,对于小型项目,可以使用它。尽管简单,但IMO有很多不利之处,例如从更复杂的解决方案中消除了这种方法,例如

您的REST API应该仅负责提供数据,并且随着解决方案的发展,您正在将其与托管前端部件结合在一起。如果您决定将另一个UI部件添加到系统或更改框架等会怎样?在前端和后端应用程序中都必须修改代码。

这种方法的另一个问题是在一个代码库中维护2个应用程序。

我相信这种方法对于小型项目是公平的,但是对于更复杂的项目,您应该坚持关注点分离并构建两个单独的应用程序。