专栏首页漫漫全栈路.NET Core 实战笔记3 ASP.NET Core

.NET Core 实战笔记3 ASP.NET Core

期末告一段落,有一周的时间给我折腾折腾,那就继续dotNet Core吧,先列一下文章列表。

  • .NET Core 实战笔记1-介绍和安装
  • .NET Core 实战笔记2-从命令开始

ASP.NET Core 介绍

ASP.NET Core 是一个跨平台的高性能开源框架,用于生成基于云且连接 Internet 的新式应用程序。

使用 ASP.NET Core,可以:

  • 生成 Web 应用和服务、IoT 应用和移动后端。
  • 在 Windows、macOS 和 Linux 上使用喜爱的开发工具。
  • 部署到云或本地
  • .NET Core.NET Framework上运行。

数百万开发人员在使用(并继续使用)ASP.NET Core 来创建 Web 应用。ASP.NET Core 是重新设计的ASP.NET Core ,对体系结构进行了更改,提供更精简的模块化框架。

ASP.NET Core 具有如下优点:

  • 生成 Web UI 和 Web API 的统一场景。
  • 新式客户端框架与开发工作流的集成。
  • 基于环境的云就绪配置系统。
  • 内置依赖项注入。
  • 轻型高性能模块化 HTTP 请求管道。
  • 能够在 IIS 上进行托管或在自己的进程中进行自托管。
  • 可以在.NET Core上运行,支持真正的并行应用版本控制。
  • 简化新式 Web 开发的工具。
  • 能够在 Windows、macOS 和 Linux 进行生成和运行。
  • 开源和关注社区。

ASP.NET Core完全作为 NuGet 包的一部分提供。 这可优化应用,使其只包含需要的 NuGet 包。 较小的应用图面区域的优势包括:提升安全性、减少维护和提高性能。

ASP.NET Core 应用

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

如上图,Main方法调用遵循builder模式的WebHostBuilder,用于创建一个Web应用程序的宿主。这个builder具有定义Web服务器(如UseKestrel)和startup类型(UseStartup)的方法。

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

Startup

上面的Main方法中有写到WebHostBuilderUseStartup方法为应用制定了Startup类

Startup类

Startup类 可以用来定义请求和处理管道和配置应用需要的服务。Starup类必须是public的,内容实例如下:

ASP.NET Core中,Startup类 提供了应用程序的入口并充当为应用程序的启动点。ASP.NET会在主程序集中搜索名为Startup的类,Startup类能够选择性地在构造函数中接受通过依赖注入提供的依赖项,将要被配置的应用程序的方法应定义于Stratup类的构造函数中,如ConfigurationStartup类必须定义Configure方法,可以选择定义一个ConfigureServices方法,这些方法在应用程序启动时被调用。

Configure方法

Configure方法用于定义请求管道中的中间件,即指定ASP.NET应用程序将如何响应每一个HTTP请求,简言之,可以配置每个请求都接收相同的响应。事实上,大多数应用程序都需要更复杂的管道配置并将其封装与中间件(middleware)中,并通过扩展方法添加到IApplicationBuilder上。

ConfigureServices方法

ConfigureServices方法用于定义应用所使用的服务(如ASP.NET MVC Core Framework,Entity Framework Core,Identity等)。

服务

服务是应用中用于通用调用的组件。服务通过依赖注入获取并使用。ASP.NET Core内置了一个简单的控制反转(IoC)容器,它默认支持构造器注入,并且可以方便的替换成自己的选用的IoC容器。由于他的松耦合性,依赖注入(DI)使服务在整个应用中都可以使用。例如,Logging在整个应用中都可用。

中间件

ASP.NET Core中个可以使用中间件构建请求处理管道。ASP.NET Core中间件为一个HttpContext执行异步逻辑,然后按顺序调用下一个中间件或者直接终止请求。一般来说,要使用一个中间件,只需要在Configure方法中调用IApplicationBuilder上一个对应的UseXYZ扩展方法即可。

ASP.NET Core带来了丰富的内置中间件:

  • 静态文件(Static files)
  • 路由(Routing)
  • 身份验证(Authentication)

可以创建自定义中间件,或者在ASP.NET Core中使用任何基于OWIN的中间件。

服务器

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • .NET Core 实战笔记1-介绍和安装

    .NET Core介绍 按照国际惯例,先介绍一下什么是 .NET core(也写成dotNet core啦)。 .NET Core是 .NET Frame...

    李郑
  • .NET Core 实战1-介绍和安装

    按照国际惯例,先介绍一下什么是 .NET core(也写成dotNet core啦)。

    李郑
  • ASP.Net Core 开发笔记

    此处以一个Web API 项目为例, 针对不太大的项目,采用了一个划分为三层的结构。

    李郑
  • .net core实践系列之短信服务-为什么选择.net core(开篇)

    从今天我将会写.net core实战系列,以我最近完成的短信服务作为例子。该系列将会尽量以最短的时间全部发布出来。源码也将优先开源出来给大家。

    陈珙
  • 在 ASP.NET Core 程序启动前运行你的代码

    在进行 Web 项目开发的过程中,可能会存在一些需要经常访问的静态数据,针对这种在程序运行过程中可能几乎不会发生变化的数据,我们可以尝试在程序运行前写入到缓存中...

    程序员宇说
  • [翻译] ASP.NET Core 3.0 的新增功能

    全文翻译自微软官方文档英文版 What's new in ASP.NET Core 3.0

    梁规晓
  • .NET Core 学习资料精选:入门

    本系列文章,主要分享一些.NET Core比较优秀的社区资料和微软官方资料。我进行了知识点归类,让大家可以更清晰的学习.NET Core。

    梁规晓
  • 《从零开始学ASP.NET CORE MVC》课程介绍(一)

    大家好,欢迎来到52ABP学院,收看我们的 《从零开始学ASP.NET CORE MVC》。

    角落的白板报
  • .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了

    很多朋友看到.NET Core就认为是ASP.NET Core,其实这是有误区的,因为.NET Core 是开放源代码的通用开发平台 (是一个“平台”),基于这...

    依乐祝
  • ​(码友推荐)2018-09-18 .NET及相关开发资讯速递

    1.Redis 桌面管理工具 RedisDesktopManager 0.9.6 发布

    Rector

扫码关注云+社区

领取腾讯云代金券