.NET CORE 简介


  1. 什么是.net core?

开源通过的开发框架,支持跨平台、部署、开发、物联网、云服务

.net core模块化的管理方式,需要什么组件,获取什么组件(无需向.net framework必须获取所有底层类库)

  1. 跨平台、跨架构(x86\x64\ARM\)、支持命令行(vs code)、部署灵活、兼容性强(向下兼容framework)、开源
  2. .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
  1. Asp.net core 3.1
  • 启动流程、主机配置、依赖注入、服务、管道、中间件、应用配置、多环境、日志、路由、异常处理、静态文件、部署等
  • gRPC,高性能远程过程调用框架,微服务间的内部调用
  • 只能运行于Vs2019 16.4版本
  1. 启动方式
  • ISS
  • 自宿主方式

注:运行时由于HTTPS,需信任SSL

wwwroot文件夹,存放静态文件

  1. 启动流程

  1. 主机

 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创建主机生成器==》配置主机==》创建主机==》运行配置

 

 

  1. 自宿主启动方式配置访问地址
  • 正式配置
  • 调试时配置
    • 第一步:

首先禁用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"

      }

    }

  }

}

相关