Asp.net core实战5: 项目文件结构分析

1.项目文件包括以下几个部分:

根目录是一个解决方案

Dependencies是依赖项文件

Properties存储 launchSetting.json,是涉及到如何编译、运行项目的相关配置文件

wwwroot是ASp.net core项目唯一可以被直接访问的项目位置

Controllers、Models、Views是传承了Asp.net 的传统,MVC文件夹

appsettings.json用于配置项目的运行时等相关信息

Program.cs及Startup.cs相当重要,后文详细分析

2.详解.csproj文件

跟asp.net 项目相比,它的变化是,

不再含有guid了!

隐式文件编译,不需要一个个列举出来!

无需提供路径!

根节点<Project>向SDK指明,本项目是一个web项目。

<TargetFramework>是设置的目标Framework运行版本,我们运行在netcore2.0版本上,所以设置netcoreapp2.0,因为asp.net core项目也可以运行在.net framework上,如果你要运行在.net framework 4.6.1上,你可以直接改为net461

<PackageReference>是你所引入的NuGet包

最后是一些附加的工具

3.Asp.net core项目的Entry Point ---Program.cs文件解析

实际上,Asp.net core Web应用程序最终是一个命令行程序,这也是Asp,net core能够跨平台的主要原因!(传闻Asp.net core3.0版本将支持Winform及WPF,你觉得在Linux上能实现么?那岂不是微软实现桌面程序大一统了?!Winform和WPF能托管在命令行么?显然不现实了!)

Main函数直接调用BuildWebHost函数创建并配置托管程序了,最后直接启动HTTP服务器进行监听,我们直接看下面的函数。

BuildWebHost使用了WebHostBuilder创建了一个配置了相关的托管信息。CreateDefaultBuilder包含了很多默认的配置信息。

UserStartup函数让一些配置托管在了Startup.cs类中去配置了。

最后调用Build()配置完成。

基本上,Program.cs配置的是一些基础的设置,包括日志、应用配置、代理服务器配置、根目录配置、等等。

而涉及到的依赖注入,中间件及管道,MVC等相关配置都会在Startup.cs中进行配置

Program.cs基本上不怎么变化,Startup需要很多的配置。

4.Asp.net core项目Startup.cs文件解析

Startup.cs文件主要完成两个方面的配置:

在ConfigureServices()中配置你所提供的Service的注册

在Configure()中配置MVC管道的相关配置

注:在ConfigureServices中配置的服务,在Configure中均可使用(这里用到了反射的相关技术,也就是类似的DI)

猜你喜欢

转载自blog.csdn.net/Day_and_Night_2017/article/details/84203574