.Net Core项目目录
application.json
保存项目设置,如数据库连接等
wwwroot
该文件夹是个特殊文件夹,命名之后图标变成地球形状,存放的是前端静态资源,html、css、JavaScript以及图片等,文件夹内所有文件都会被服务器所托管。
Progarm.cs和Startup.cs
这两个文件是.Net项目中最重要的组成部分,分别主管了程序的入口Main函数和系统生命周期。
- Startup.cs是.Net Core SDK默认生成的,集中管理了系统的依赖注入、中间件(middleware)以及请求通道request pipeline。主要有两个作用:
- 在ConfigureServices里注入各种services组件的依赖,该方法在.net运行时被调,实际上asp.netcore提供了内置的ioc容器,ConfigureServices就是把我们的service注入到ioc容器中,通过参数IServiceCollection进行注入,注入的种类有两种:一种是自定义服务注入,另一种是.netcore自带服务的注入。
- 在Congigure方法中创建中间件middleware,设置http请求通道request pipeline,由Middleware进行处理,每个middleware都会接收上一个middleware的输出,并把自己的处理结果传递给下一个middleware,通过middleware的组合排列,就形成了http请求通道,所有中间件共用一个请求通道。middleware就是组装到应用程序管道中用来处理请求和响应的软件,asp.netcore自带很多middleware。请求通道都是通过Configure方法的IApplicationBuilder参数来创建的,每个middleware都可以截获、修改、传递请求对象和输出响应对象,在某些情况下,middleware可以做短路处理,直接向前端输出响应对象。使用IHostingEnvironment参数来配置虚拟主机的环境变量,在实际开发中,常把环境分为开发环境、集成环境、测试环境、预发布环境、生产环境。两种方式可设置:1、右键项目名,选择Properties,选择debug,Environment variables就是了。2、在launchSettings.json中设置
- Program.cs中的Main函数就是根据"CreateWebHostBuilder()"函数创建并运行一个虚拟的托管主机WebHost,CreateWebHostBuilder()做了四件事情:
- 加载主机和应用程序的配置信息;
- 配置日志记录;
- 设置web服务器;
- 设置.Net Core应用程序的托管形式。
IIS Express
托管服务器有两个:
1、IIS Express指的是Visual Studio自带的服务器
2、与项目同名的.Net Core服务器
二者都可以启动项目,区别在于IIS Express只能在Windows平台运行,而同名的.Net Core服务器支持跨平台。
Properties里的launchSettings.json
包含项目设置,如端口信息、运行环境等。
ASP.Net MVC路由系统
是为了解决动态路由url的映射所设计的。
特点如下:
- 文件无需保存在硬盘上(文件可以不存在,允许动态生成);
- 访问文件无需后缀(可以防止暴露技术栈);
- url结构与服务器文件夹结构无关(安全);
- url将会被映射给controller控制器请求资源,不会映射给静态文件。
- url的patterns:
{域名}/{Controller}/{Action}:www.xxx.com/Controller_xxx/Action_xxx
请求处理是由controller控制的,页面返回是由controller中的action函数处理。 - 分段路由Segments(自定义路由)的pattern
{域名}/{Controller}/{Action}/{id},id是action函数的参数
ASP.Net MVC如何定义URL与Controller之间的映射规则?
需要系统默认路由,使用中间件app.UseMvcWithDefaultRoute();
映射默认路由(输入域名会调用的路由):
{域名}/{Controller=Home}/{Action=Index}/{Value?}
ps:自己写的请求,必须放在根路径"/"之前