1..NET的发展历史
a.NET 早期其实我们常指的就是指.NET Framework
.NET Framework其中有一套名为公共语言运行时(CLR)的虚拟执行系统和一组统一的.Net框架类库(FCL)
.Net拥有公共语言基础结构(CLI),其中包括与语言无关的运行时和语言互操作性。
b.2016年.NET Core问世
.NET Core是.NET Framework的新一代版本,微软开发的第一个跨平台(Windows,Linux,Mac)能力的应用程序开发框架。
由于.NET Core的开发目标是跨平台的.NET平台,因此.NET Core会包含.NET Framework的类库。与.NET Framework不同的是.NET Core采用包化(packages)的管理方式,应用程序只获取需要的组件即可,与.NET Framework大包式安装的做法截然不同,并且各包亦有独立的版本线,不再硬性要求应用程序跟随主线版本。
这个阶段.NET生态系统有三个主要的高级组件.Net Framework,.Net Core,XAMARIN
.Net Framework 1:包含开发window桌面应用的WPF和Winform技术
2:开发Web应用的Asp.Net技术
.Net Core 1:包括能够开发出在Windows10环境通用应用的技术的UWP(跨平台)
2:开发Web应用Asp.Net Core技术(跨平台)
XAMARIN 1:提供开发针对iOS,Android.OS X等移动端的技术
c:2020年11月.NET 5.0发布
.NET5.0是 .NET Core 3.0 之后的下一个版本,将来只会有一个 .NET,您将能够使用它来开发 Windows,Web,Clound,Mobile,Gaming,IoT,AI等等;NET5 实现了.NET Framework和.NET Core和 Xamarin的统一化,无论构建的是那种类型的应用程序,编写的代码和项目文件都将是相同的。
2.ASP.NET Core
ASP.NET Core是.NET Core组件中主要用来开发Web应用的跨平台/高性能框架
ASP.NET Core包含ASP.NET Core Razor Pages,ASP.NET Core MVC,ASP.NET Core Blazor,ASP.NET Core Web API等技术开发Web应用
Asp.Net Core的优点以及特性
3.开发第一个ASP.NET Core应用程序
eg1:创建第一个ASP.NET Core项目,运行项目在浏览器中输出“Hello World!”,要求使用空项目模板
创建完项目启动后会在浏览器中输出"Hello World!"
4.两个核心的类和一个配置文件
Program类:ASP.NET Core应用程序最初作为控制台应用程序启动,而Program.cs文件中的 Main( )方法就是入口
StartUp类:Web程序的配置类
appsettings.json:应用程序的配置文件,可用来配置数据库连接串信息等;
读取appsettings.json文件
a:第一步:通过依赖注入获得IConfiguration对应实现类的实例
b:第二步:通过_configuration["Key"]就可以获取指定的值
5.中间件
中间件是一种装配到应用管道以处理请求和响应的组件。 每个组件:
- 选择是否将请求传递到管道中的下一个组件。
- 可在管道中的下一个组件前后执行工作。
ASP.NET Core请求管道由一系列中间件组成,如果我们的ASP.NET Core应用程序不设置任何中间件那么应用程序不会产生任何作用,你设置怎么样的中间件决定了您的Web应用程序产生什么样的作用。下图演示了中间件的执行顺序,跟随黑色箭头。
上图展示了中间件的执行过程:所有的请求处理都会在每个中间件组件调用next()方法之前触发。请求按照图中箭头的所示方向,依次穿过所有管道。当中间件处理请求并产生响应时,请求流程会在管道开始反向传递。所有的响应处理都会在每个中间件组件调用next()方法之后触发。响应按照图中箭头的所示方向,依次穿过所有管道。
向StartUp.Configure方法添加中间件组件的顺序定义了针对请求调用这些组件的顺序,以及响应的相反顺序。 此顺序对于安全性、性能和功能至关重要。
终端中间件:该中间件可以处理请求,并决定不调用管道中的下一个中间件,从而使管道短路,因为这样可以避免不必要的工作;例如Run中间件,处理响应的,响应每一个HTTP请求;UseStaticFiles静态文件中间件可以通过处理对静态文件的请求并短路管道的其余部分来充当终端中间件。
普通中间件:
- UseDefaultFiles():默认文件中间件
- UseFileServer():中间件相当于UseStaticFiles和UseDefaultFiles和UserDirectoryBrowser的整合,不建议使用
- UseDeveloperExceptionPage():应用在开发环境中,如果存在异常,此中间件被调用,显示开发异常界面
- UseExceptionHandler():应用在生产环境中,异常处理程序中间件
- UseHttpsRedirection():将HTTP请求重定向HTTPS的中间件
- UseCookiePolicy():Cookie 策略中间件
- UseRouting():向中间件管道添加路由匹配。此中间件会查看应用中定义的终结点集,并根据请求选择最佳匹配
- UseAuthentication():身份验证中间件,尝试对用户进行身份验证,然后才会允许用户访问安全资源。
- UseAuthorization():用于授权用户访问安全资源的授权中间件
- UseSession():会话中间件(如果应用程序需要使用Session则需要使用此中间件)
- UseEndpoints():向中间件管道添加终结点。它会运行与所选终结点关联的委托
总结:
本章的内容就介绍到这里,本章主要就是对ASP.NET Core做一个了解,中间件在我们ASP.NET Core应用程序中的意义十分重要,希望大家通过这里的介绍能有所认识。下一章介绍ASP.NET Core MVC技术创建Web应用