(一) ASP.NET Core介绍

ASP.NET Core 是一个新的开源和跨平台开发框架,用于构建Web应用,不再基于System.Web.dll

改进如下:

1.一个统一的方式构建WebUI 和 WebAPIs

2.集成现代的客户端开发框架和开发流程

3.一个适用于云的,基于环境配置的系统

4.内置的依赖注入

5.新型的轻量级的模块化的HTTP请求管道

6.运行于IIS或者宿主(self-host)于你自己进程的能力

7.基于支持真正的side-by-side应用程序版本化的.NET Core构建

8.完全以Nuget包形式发布

9.新的用于简化现代Web开发的工具

10.可以在Windows,Linux,Mac上构建和运行ASP.NET应用

11.开源并且重视社区


一、ASP.NET Core应用

ASP.NET Core应用其实就是在Main方法中创建一个Web服务器的简单的控制台应用程序

UseKestrel()//使用Kestrel作为Web服务器
UseContentRoot(Directory.GetCurrentDirectory())//指定根目录内容

UseIISIntegration()//集成IIS

Bulid和Run方法构建了宿主应用程序的IWebHost,然后启动它来监听传入的HTTP请求。


二、StartUp类

StartUp类可以用来定义请求处理管道和配置应用需要的服务

StartUp类必须是public,并且默认要包含如下方法


        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
        }

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseBrowserLink();
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }


            app.UseStaticFiles();


            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });

        }

ConfigureServices 定义应用程序使用的服务(如ASP.NET MVC ,EntityFrameWork Core Identity等等)

Configure 定义HTTP请求管道中的中间件


三、服务

服务是应用中用于通用调用的组件。服务通过依赖注入获取并使用。ASP.NET Core 内置了Ioc容器,默认支持构造器注入,并且可以替换成其他Ioc容器(如Autofac),依赖注入使服务在整个应用中都可以使用,如Logging


四、中间件

ASP.NET Core中间件为一个HttpContext执行异步逻辑然后按顺序调用下一个中间件或者直接终止请求。在StartUp中的Configure中IApplicationBuilder上使用UseXYZ方法(XYZ为具体实例)。

如静态文件(Static Files)

路由(Route)

身份认证(Authentication)

五、服务器

ASP.NET Core托管模式并不直接监听请求,而是依赖于一个HTTP Server实现来转发请求到这个程序。这个被转发的请求会以一组feature接口的形式包装,然后被应用程序组合到一个HttpContext中去。ASP.NET Core包含了一个托管的跨平台Web服务器:Kestrel,它会被运行在一个如IIS或者Nginx的生产Web服务器之后。

六、内容根目录

内容根目录是应用程序所用到的所有内容的根路径,比如views和web内容,默认情况下,内容根目录是与宿主应用的可执行程序根目录相同,其他位置可通过WebHostBuilder来设置。


七、网站根目录

应用程序的Web根目录是项目中类似CSS,JS和图片文件公开静态的资源。静态文件中间件将默认只读取Web根目录和其子目录中的文件。web根目录默认为/wwwroot,但也可以通过WebHostBuilder来设置

八、配置

不再使用web.config,默认使用appsettings.json文件配置键值对的json字符串

{
  "ConnectionStrings": {
    "BUAConnection": "Data Source=DESKTOP-M6SJIFR;Initial Catalog=BUA;User ID=sa;Password=123456;MultipleActiveResultSets=true"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

九、环境


十、使用ASP,NET Core MVC构建Web UI 和 WebAPIs



猜你喜欢

转载自blog.csdn.net/ujm097/article/details/79997111