- 什么是.net core?
开源通过的开发框架,支持跨平台、部署、开发、物联网、云服务
.net core模块化的管理方式,需要什么组件,获取什么组件(无需向.net framework必须获取所有底层类库)
- 跨平台、跨架构(x86\x64\ARM\)、支持命令行(vs code)、部署灵活、兼容性强(向下兼容framework)、开源
- .net framework与.net core的关系
- 从发展的角度看:core是framework的下一代产品,后代
- .net core 3.1 下一个版本 .net5
- 支持winfrom/wpf--不跨平台
- asp.net core 3.0\EF core 3.0
- 体积小,启动速度快,占用资源少,支持水平扩展
- 云原生和微服务,是.net core比较核心的东西,性能提升
- .net core适合做web
- Asp.net core 3.1
- 启动流程、主机配置、依赖注入、服务、管道、中间件、应用配置、多环境、日志、路由、异常处理、静态文件、部署等
- gRPC,高性能远程过程调用框架,微服务间的内部调用
- 只能运行于Vs2019 16.4版本
- 启动方式

注:运行时由于HTTPS,需信任SSL
wwwroot文件夹,存放静态文件
- 启动流程

- 主机
public static IHostBuilder CreateHostBuilder(string[] args) =>
//Host 两种,通用、webhost扩展
//默认配置
//环境变量
//加载命令行参数
//加载应用配置
//加载配置的默认日志组件--通用配置
Host.CreateDefaultBuilder(args)
//调用这里面的一些扩展方法,进行自定义配置,webhost扩展
//默认的配置,启用kestrel--跨平台的适用于asp.net core的web服务器,类似IIS,不是IIS
//kestrel 支持HTTPS HTTP,在linux下性能更好
//kestrel 功能少,不支持反向代理
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
});
}
负责应用程序的启动--web应用程序的启动和生存期管理,配置服务器和请求处理管理,
配置日志、配置依赖关系的注入
主机实际上是一个封装了应用资源的对象
注,Program.cs创建主机生成器==》配置主机==》创建主机==》运行配置


- 自宿主启动方式配置访问地址
首先禁用appsettings.json配置文件中配置,如下所示:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
//"ASPNETCORE_URLS": "http://*:7888", //环境变量
//"urls": "http://*:8888"
}
第二步
launchSettings.json,进行修改,可配置多个调试地址
如下所示:
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:39076",
"sslPort": 44358
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"MEAS": {
"commandName": "Project",
"dotnetRunMessages": "true",
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}