angular with asp.net core



目前,如果我想使用asp.net核心和angular,我会执行以下操作:

  • 使用angular cli创建客户端应用程序
  • 创建一个asp.net核心mvc应用程序
  • 将两者与微软联系起来。AspNetCore。SpaServices。扩展(spa策略=代理(
  • 如下修改mvc应用程序的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

<!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>

然后我启动angular服务器并运行mvc应用程序。正如你所看到的,在这种情况下,我使用mvc应用程序的Index.html,并将有角度的内容投影到其中。我将使用asp.net核心应用程序仅用于服务Rest api请求,因此没有视图等。

我有三个问题:

  • 上面描述的是一种使用angular的方便方法吗?在angular中,asp.net核心部分仅充当Rest api服务器?如果不是,那是什么
  • 我也可以使用angular客户端应用程序的index.html吗?我的意思是,asp.net的核心部分实际上只为api请求提供服务,而应用程序的入口点将是angular客户端应用程序的index.html

感谢您的回答/评论。

您所采用的方法比构建2个单独的应用程序更简单,对于小型项目来说,使用它是公平的。尽管它很简单,但它也有一些主要的缺点,IMO从更复杂的解决方案中消除了这种方法,例如

您的REST API应该只负责提供数据,并且通过您所遵循的解决方案,您将其与托管前端部分相耦合。如果您决定在系统中添加另一个UI部分,或者更改框架等,会发生什么?必须在前端和后端应用程序中修改代码。

这种方法的另一个问题是在一个代码库中保留两个应用程序。

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

最新更新