.netcore项目

目录

一、为什么要学习NetCore:

 二、.net core 执行过程

三、netcore中间件执行过程

四、创建netcore项目

1.新建一个项目

2、删除IIS相关配置

五、项目整体结构分析


一、为什么要学习NetCore:

.NET Core是为了重新启动某些Framework组件而为其他人提供跨平台工作的机会。由于.NET Framework主要以托管 (C#)代码为基础构建,因此这些部分不需要更改代码即可移至NET Core。

 二、.net core 执行过程

 首先浏览器发送一个请求 经过IIS/Apache/Nginx的代理转发,然后再到我们的.NET Core

它自带的web应用Kestrel通过中间件管道进入API再反推回去

三、netcore中间件执行过程

四、创建netcore项目

1.新建一个项目

2、删除IIS相关配置

实现跨平台默认使用kestrel服务器,摆脱IIS束缚

五、项目整体结构分析

 这里默认,有一个WeatherForecastController.cs,打开后:
1、当前控制器继承了 ControllerBase 基类;
2、有一个路由特性,可以配置当前路由规则,比如当前的是[Route("[controller")],表示 Ur 路径为localhost:5000/weacherforecast/get
如果你配置[Route([controller//laction]")]表明 Url 路径为: localhost:5000/weacherforecast/get
3、发现有一个默认的构造函数,里边已经注入了日志lLogger,这个依赖注入相关内容,以后会讲到

4、默认提供了一个get方法,随机生成了一个天气集台

 

 接下来点开appsetings,json文件,这里就是整个系统app的配置地址,更类似以前的web.config,以后会用到。继续往下,打开Startup.cs 文件这里是整个项目的启动文件,所有的启动相关的都会在这里配置,比如 依赖注入,跨城请求Redis缓存等.

 六、重要文件

1、program.cs

namespace netTest2
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var builder = WebApplication.CreateBuilder(args);

            // Add services to the container.

            builder.Services.AddControllers();
            // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
            builder.Services.AddEndpointsApiExplorer();
            builder.Services.AddSwaggerGen();

            var app = builder.Build();

            // Configure the HTTP request pipeline.
            if (app.Environment.IsDevelopment())
            {
                app.UseSwagger();
                app.UseSwaggerUI();
            }

            app.UseAuthorization();


            app.MapControllers();

            app.Run();
        }
    }
}


这个Program是程序的入口,看起来很眼熟,是因为asp.net core application实际就是控制台程序(console application).
它是一个调用asp.net core 相关库的console application.
Main方法里面的内容主要是用来配置和运行程序的。
因为我们的web程序需要一个宿主,所以CreateHostBuilder这个方法就创建了一个HostBuilder.而且我们还需要Web Serverasp.net core 自带了两种http servers,一个是WebListener, 它只能用于windows系统,另一个是kestrel, 它是跨平台的kestrel是默认的web server 就是通过UseKestrel()这个方法来启用的但是我们开发的时候使用的是IIS Express,调用UsellSIntegration0这个方法是启用IIS Express,它作为Kestrel的Reverse Proxyserver来用

webBuilder.UseStartup<Startup>();,这句话表示在程序启动的时候,我们会调用Startup这个类Build()完之后返回一个实现了lHost 接口的实例(HotBuilder).然后调用Run0就会运行Web程 并阳止这个调用的线程 直到程序关闭.项目最终的 Services:

 2、Startup.cs

其实Startup算是程序真正的切入点,是配置服务和中间件的启动类
startup 默认构造函数,注入了配置项IConfiguration。
ConfigureServices方法是用来把services(各种服务,例如identity,ef, mvc等等包括第=方的,或者自己写的)加入(registerl到continerlasp.net core的容器中去并配周这些services 这container是用来进dependency iniection的(依赖注入)所有注的services(此外还包括-些框架已经注册好的services)在以后写代码的时候.都可以将它们注入/iniect)进去.例如上面的Confiqure方法的参数appenv,loggerFactory都是注入进去的services.

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值