2:Program.cs文件分析

1:如下图,Connected Services和依赖项,这两个东西在硬盘上是不存在的;Properties在硬盘上是存在的。如果使用其他模板,会有一个wwwroot,这个也是在硬盘上存在的。

2:appsettings.json就是个配置文件

3:Program.cs和Startup.cs,这两个文件控制着整个程序在运行时候的启动和配置

4:实际上还有一个项目文件,我们右键项目,选择scproj

5:这个文件里呢,包含了所有用来构建你这个项目的一些明细信息,比如项目所用的SDK,以及NuGet包等等

 

 6:Program.cs

  6.1:如下图所示,有个Main方法和控制台一样,这个Main方法可以传参数,所以我们有一些可以配置的参数可以通过命令行参数来传进来,由于它是控制台请求,那么他可以通过控制台来启动

  6.2:如果是命令行运行,如下图:运行这个项目,args就相当于参数,这个dotnet run 运行之后,他就会去找Program.cs里的Main方法,然后把参数传给CreateWebHostBuilder(也就是上图下面的那个方法)

  6.3:用这个CreateWebHostBuilder方法来构建一个webHost,也叫webServer,然后build一下,接着就运行了

  6.4:如果是用Visual Studio运行的话,原理也一样,也是找Main方法把参数传进去,但不同的是使用VS运行时默认情况下是使用IIS Express,

  6.5:VS运行web项目的时候他会把webServer(它构建出来的webServer),把他放到IIS Express的后面,所以IIS Express就相当于一个代理服务器,他会把外界的请求来转发给我们的web应用程序。

  6.5:我们这个web应用原来是运行在一个单独的进程,他有他自己的服务器,但是现在使用Inprocess之后呢,他就和IIS运行于同一个进程了,这样性能会有所提高。

7:CreateWebHostBuilder方法返回的是一个IWebHostBuilder,然后用这个builder进行build()一下,就出来这个webHost或者叫webServer,然后运行就可以了

  7.1:下面这个方法调用了WebHost的静态方法CreateDefaultBuilder(),在这里我们可以对他进行配置,比如下面使用Startup类

  7.2:这个UseStartup方法就是说,我们将使用Startup类来配置整个web应用,包括注册哪些服务了,按什么顺序使用中间件,都在这个类里进行配置

8:当走到Run之后,我们这个web应用就可以监听http或者https的请求了

9:整个program这个类,主要配置的是整个web应用的基础设施,例如http服务器以及如何集成到IIS和配置源等信息 

 

原文地址:https://www.cnblogs.com/Codemandyk/p/10900648.html