.NET 6.0与Angular入门指南

在本系列文章中,将探讨如何使用Visual Studio 2022中的Angular模板开始.NET 6.0和Angular的学习。.NET 6.0在性能上有了显著提升,包括智能代码编辑等优势,被称为最快的全栈Web框架。此外,.NET 6.0在文件流性能方面也有所提升。

当使用Visual Studio 2022创建一个新的Angular模板项目时,会发现使用了ASP.NET Core 6.0和Angular 13版本,这两个都是新版本,学习并使用这些新工具无疑会非常有趣。

在开始之前,需要确保已经安装了以下先决条件:

  • Visual Studio 2022
  • Node.js - 如果还没有安装Node.js,请下载并安装

使用代码

创建ASP.NET Core与Angular模板:

安装完上述所有先决条件后,点击桌面上的Visual Studio 2022图标。点击“新建”>“项目”。搜索Angular模板并选择ASP.NET Core with Angular,然后点击“下一步”。输入项目名称并点击“下一步”。现在可以看到框架是.NET 6.0(长期支持)。点击“创建”按钮。

创建项目后,可以看到解决方案结构如下:

在这里,可以看到一些有趣和新的文件已经被添加,也可以看到在Visual Studio中没有Startup.cs文件,这是2019版本ASP.NET Core项目的主要类。

Visual Studio 2022不需要Startup.cs

当创建ASP.NET Core 6.0和Angular应用程序时,Startup.cs类文件将缺失。是的,现在所有的Configure和ConfigureService相关的服务都将被添加到Program.cs文件中。

例如,如果需要添加连接字符串并添加DBContext,那么可以在Program.cs文件中使用builder.Service.AddDbContext()来添加。要添加所有服务,可以使用builder对象,如添加DBContext服务时,使用builder.Service.AddDbContext()。

可以看到Program.cs文件中没有main方法、类和using头文件,不要惊慌,是的,现在在.NET 6.0中,代码变得更简单,智能代码支持似乎更先进,现在编写代码和项目的工作更容易,减少了时间。

顶级语句

这被称为顶级语句,因为从C# 9开始不需要main方法。顶级语句的主要目的是减少代码并提高性能。main方法和类将由编译器创建,不需要为它编写单独的代码。

新的Angular文件部分

aspnetcore-https.js:这个JavaScript文件为应用程序设置HTTPS,这些应用程序旨在使用ASP.NET Core HTTPS证书。

proxy.conf.js:这个JavaScript文件用于添加HTTPs端口,WEB API URL作为目标,在上下文中,将添加所有的控制器和方法,以便在Angular应用程序中访问。

构建和运行应用程序

当运行应用程序时,可以看到默认的主页。计数器和获取数据组件已经被添加到菜单中,可以导航到每个菜单并查看组件结果。

当前月份项目销售详情制作

现在让制作一个简单的WEB API控制器来获取项目销售详情。

首先,需要添加一个类文件来创建模型类。右键点击项目,点击“添加”>“新建项”。选择“类”并将其命名为ItemDetails.cs,然后点击“添加”。

在类中,添加如下属性变量:

public class ItemDetails { public string ItemCode { get; set; } public int SaleCount { get; set; } }

右键点击“控制器”文件夹,点击“添加”>“控制器”。选择“API”>选择“API控制器 - 空”,然后点击“添加”:给空API控制器命名为ItemDetailsController.cs,然后点击“添加”。

在控制器中,添加Get方法,它将创建随机的10个项目代码以及从20到100的随机销售计数值范围。

[ApiController] [Route("[controller]")] public class ItemDetailsController : ControllerBase { private readonly ILogger _logger; public ItemDetailsController(ILogger logger) { _logger = logger; } [HttpGet(Name = "GetItemDetails")] public IEnumerable Get() { var rng = new Random(); int ivale = 0; return Enumerable.Range(1, 10).Select(index => new ItemDetails { ItemCode = "ITM_" + rng.Next(1, 100), SaleCount = rng.Next(20, 100), }).ToArray(); } }

Angular部分

在这里,使用默认的主页Angular组件来更新显示项目详情和销售计数。

在主页组件中,通过添加HTTPClient导入部分和注入导入部分来更新代码。然后,使用与模型类中相同的ItemDetails创建接口。

在构造函数方法中,使用http.get方法,获取API JSON结果并将其绑定到itemsdetails,以在HTML页面上显示结果。

import { Component, Inject } from '@angular/core'; import { HttpClient } from '@angular/common/http'; @Component({ selector: 'app-home', templateUrl: './home.component.html', }) export class HomeComponent { public itemsdetails: ItemDetails[] = []; constructor(http: HttpClient, @Inject('BASE_URL') baseUrl: string) { http.get(baseUrl + 'ItemDetails').subscribe(result => { this.itemsdetails = result; }, error => console.error(error)); } } interface ItemDetails { itemCode: string; saleCount: number; }

在HTML中,添加以下代码以显示API的结果ItemCode和salescount。

项目代码 销售计数
{{ itemdetail.itemCode }} {{ itemdetail.saleCount }}

构建和运行

构建并运行应用程序。在主页上,可以看到以下结果,可能会注意到看不到itemdetails和salecount值。这是因为还没有在proxy.config.js文件的上下文数组中添加控制器类和方法。为了在Angular应用程序中使用WEB API,需要在Proxy.config.js上下文数组中添加WEB API控制器和方法。

可以看到,从下面的图片中,现在在proxy.config.js文件的上下文数组中添加了控制器,命名为ItemDetails。

运行应用程序以查看结果。现在,可以看到WEB API结果已经绑定到主页上,显示项目代码和销售计数。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485