ASP.NET Core 配置主要通过这3个文件设置:
1 项目文件也叫.csproj 文件
2 Program.cs
3 appsettings.json
这些配置告诉ASP.NET Core 应用程序基于用户的交互是如何工作的, 在本节中我们理解ASP.NET Core 项目配置文件,我们创建一下空的项目模版.
1 使用空模板创建项目
当你使用空模板创建一个项目时,自己手动做一些配置,这个过程有助于我们更好的理解内部的工作原理,包括:
1.添加Controllers,View&Models添加文件夹
2.添加appsettings.json文件
3.添加layouts,scripts 等
打开Visual Studio 并且选择ASP.NET Core Empty模板创建一个新的应用

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>
你可以使用csproj把NuGet包安装到你的ASP.NET Core项目,你只需要在csproj文件中指定引用包,Visual Studio会为你下载包,通常你如果从csproj文件中移除包,Visual Studio会将包从你应用程序移除
Json.NET 是一款针对.NET高性能的Json包,使用它来序列化和反序列化JSON, 我们在.csproj文件中引用这个包会为我们添加一个ItemGroup和PackageReference

|
|
|
|
|
|
|
|
|
|
|
|
NuGet Package Manager 是vs中一个包管理工具,通过一些简单的接口可以实现NuGet包的管理,选择 Tools ➤ NuGet Package Manager ➤ Manage NuGet Packages 针对你项目(也可以选择解决方案,会让你选择安装到具体项目), 点击Browse页在文本框中输入包的名称,当你看到搜索包的List时,选择它并点击Install按钮
在下面图片中我已经搜索Json.NET并且选择和安装它
Install-Package Newtonsoft.Json
Kestrel是一个开源,跨平台Web,高性能的服务器,它可以宿主ASP.NET 应用程序在任何平台上(Windows,Linux,macOS),当ASP.NET Core应用程序使用IIS时它会被自动使用,你可以单独使用Kestrel或者使用一个反向代理服务器,例如"IIS,Nginx或者Apache",反向代理服务从互联网接受HTTP请求并且经过原始处理后转发给Kestrel
Visual Studio 默认使用Kestrel,你也可以从绿色箭头的下拉框中选择"https"来完成,然而你也可以使用另外一些宿主模型例如IIS Express
为了使用IIS express 运行你的应用程序,你需要在Visual Studio绿色箭头旁边点击下拉框并且选择“IIS Express”,如下图所示

Program类默认代码如下:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
在上面代码中使用了预先的设置来配置应用程序,像提供程序、Web宿主环境等,接下来Build()函数构建应用程序,如果没有发生错误它将运行在浏览器中

Program.cs用于在应用程序上注册不同的服务,以便可以使用它们,我们在Programe类中注册的一些常用预定义服务包括:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
builder.Services.AddRazorPages();
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
UseDeveloperExceptionPage -> 添加异常处理中间件, 当应用程序出现未处理的异常时该中间件用来显示开发模式下异常的详细信息,该中间件用在开发环境中
在你的应用程序中添加所有需要的服务和中间件,如下图所示:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
builder.Services.AddRazorPages();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
这节我们主要介绍了ASP.NET Core基础模版、csproj文件、Kestrel Server以及Program类