Asp .Net Core项目文件
使用C#语言开发 .csproj是根据编程语言的文档使用
和之间的区别是项目文件和文件夹不包含在.csproj文件中,以前是指定好项目文件和项目文件夹的路径现在不需要指定这些。应该是和win10的文件管理器打通了。
不需要卸载项目就可以直接编辑文件
还有就是可以在项目文件夹中创建文件直接可以显示在项目中
TargetFrameWork:指定目标框架
AspNetCoreHostingModel:指定应用程序托管形式:
InProcess是指定我们要使用进程内托管模型,即在IIS工作进程(w3wp.exe)中托管我们的asp.net core程序
OutOfProcess是我们要使用进程外托管模型,就是将web请求转发到asp.net core中,而整个应用程序运行在.net core内置的Kestrel中
asp.net core默认是进程外的一个托管形式 OutOfProcess 这里的默认是指的删除csproj中的配置,所用的托管模型
PackageReference
配置包的引用,在NuGet中可以找到对应的NuGet。在NuGet中可以看到Microsoft.AspNetCore.App 引用了很多的其他的包。这个包我们叫做综合包(Metapackage)。目前只有一个这个包
这个包本身没有任何信息只是一个其他包的依赖列表。就是asp.netcore中可能用到的包的列表。你如果需要需要去NuGet中下载
如果这个引用包没有指定版本会根据你的sdk版本只默认指定版本
AspNetCore项目启动是通过一个控制台启动的
调用CreateWebHostBuilder方法返回一个web主机,Builder方法就是将程序托管到iis或者Kestrel
Run方法用来启动程序接受web请求
第一个方法用来配置应用程序需要的各种服务
第二个方法用了配置我们接受请求的管道处理。中间件的配置
进程内托管和进程外托管
上图为进程内托管。w3wp.exe为iis进程名称,而iisexpress.exe是我们的vs中iis的进程名称
上图会和进程内托管有相同的效率
然而这种模式会存在效率要比进程内托管效率低一些但是也有优点
就是让程序更加容易拓展,运维层面上可以使用不同的服务器。也使得程序更加安全