【.Net Core从零开始前后端分离】(二)——后端项目搭建

前言

我之所以看得远,是因为我站在巨人的肩膀上 --牛顿

机缘巧合,学习了老张的哲学分享的《从壹开始前后端分离》系列文章。感觉受益匪浅,所以记录一下自己的学习。

这一章节主要学习了环境的安装以及项目的创建。

一、环境安装

首先需要安装 .Net Core的SDK环境。

下载 SDK 地址 :https://dotnet.microsoft.com/download

选择指定的平台即可安装
选择指定平台

打开命令窗口,直接运行命令【dotnet】,如果有结果证明成功了:

安装成功

二、新建项目

打开vs2019 ,创建一个新的项目,选择web应用程序模板:

在这里插入图片描述
创建项目名称,解决方案名称设置语项目不一致,方便区分
在这里插入图片描述
在这里插入图片描述

三、项目整体结构

在这里插入图片描述

1、项目启动文件配置

可以设置两种项目启动的方式,分为IIS调试以及项目自带的Kestrel web应用调式。一般我们都是使用项目的自带Kestrel web应用调式,将项目设置为启动项目,选择对应的项目运行即可
在这里插入图片描述

2、项目依赖和框架

这里放置项目所有的依赖和框架。可以使用NuGet包添加程序集

3、API控制器接口

在这里插入图片描述
这里默认,有一个 WeatherForecastController.cs ,打开后:

1、当前控制器继承了 ControllerBase 基类;

2、有一个路由特性,可以配置当前路由规则,比如当前的是[Route("[controller]")],表示 Url 路径为 :localhost:5000/weacherforecast

如果你配置 [Route("[controller]/[action]")] 表明 Url 路径为 :localhost:5000/weacherforecast/get

3、发现有一个默认的构造函数,里边已经注入了日志 ILogger,这个依赖注入相关内容

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

4、项目整体配置文件

后续可以在这里配置数据连接等全局的配置
在这里插入图片描述

5、项目整体配置文件

Program

在这里插入图片描述
这个Program是程序的入口, 看起来很眼熟, 是因为asp.net core application实际就是控制台程序(console application).

它是一个调用asp.net core 相关库的console application.

Main方法里面的内容主要是用来配置和运行程序的。

因为我们的web程序需要一个宿主,所以CreateHostBuilder这个方法就创建了一个IHostBuilder. 而且我们还需要Web Server.

asp.net core 自带了两种http servers, 一个是WebListener, 它只能用于windows系统, 另一个是kestrel, 它是跨平台的.

kestrel是默认的web server, 就是通过UseKestrel()这个方法来启用的.

但是我们开发的时候使用的是IIS Express, 调用UseIISIntegration()这个方法是启用IIS Express, 它作为Kestrel的Reverse Proxy server来用.

webBuilder.UseStartup();, 这句话表示在程序启动的时候, 我们会调用Startup这个类.

Build()完之后返回一个实现了 IHost 接口的实例(IHostBuilder), 然后调用Run()就会运行Web程序, 并且阻止这个调用的线程, 直到程序关闭.

Startup


    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    };

其实Startup算是程序真正的切入点,是配置服务和中间件的启动类。

Startup 默认构造函数,注入了配置项 IConfiguration。

ConfigureServices方法是用来把services(各种服务, 例如identity, ef, mvc等等包括第三方的, 或者自己写的)加入(register)到container(asp.net core的容器)中去, 并配置这些services. 这个container是用来进行dependency injection的(依赖注入). 所有注入的services(此外还包括一些框架已经注册好的services) 在以后写代码的时候, 都可以将它们注入(inject)进去. 例如上面的Configure方法的参数, app, env, loggerFactory都是注入进去的services.

Configure 方法是asp.net core程序用来具体指定如何处理每个http请求的, 例如我们可以让这个程序知道我使用mvc来处理http请求, 那就调用 app.UseEndpoints 这个方法就行,这个是一个短路中间件,表示 http 请求到了这里就不往下走了.

总结

好啦,项目搭建完成了,简单了解了.Net Core API是如何安装,创建,各个文件的意义以及如何运作,如何配置等。后续就可以愉快的开发了。

Github

https://github.com/Nick-Hoper/Blog.Core.Demo.git

posted @ 2020-12-22 16:08  凌云幽雨  阅读(1275)  评论(0编辑  收藏  举报