HTML5技术

ASP.NET Core 介绍 - .NETCore中国学习小组

字号+ 作者:H5之家 来源:博客园 2016-07-01 13:00 我要评论( )

ASP.NET Core 介绍 原文:Introduction to ASP.NET Core 作者:Daniel Roth、Rick Anderson、Shaun Luttin 翻译:江振宇(Kerry Jiang) 校对:许登洋(Seay)、魏美娟(初见)、姚阿勇(Mr.Yao) ASP.NET Core 是对 ASP.NET 的一次意义重大的重构。本文介绍了 ASP.N

ASP.NET Core 介绍

原文:Introduction to ASP.NET Core
作者:Daniel Roth、Rick Anderson、Shaun Luttin
翻译:江振宇(Kerry Jiang)
校对:许登洋(Seay)、魏美娟(初见)、姚阿勇(Mr.Yao)

ASP.NET Core 是对 ASP.NET 的一次意义重大的重构。本文介绍了 ASP.NET Core 中的一些新概念,并且解释了它们如何帮助你开发现代的 Web 应用程序。

章节:

什么是 ASP.NET Core?

ASP.NET Core 是一个新的开源和跨平台的框架,用于构建如 Web 应用、物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序。ASP.NET Core 应用可运行于.NET Core和完整的 .NET Framework 之上。 构建它的目的是为那些部署在云端或者内部运行(on-premises)的应用提供一个优化的开发框架。它由最小开销的模块化的组件构成,因此在构建你的解决方案的同时可以保持灵活性。你可以在 Windows、Mac 和 Linux 上跨平台的开发和运行你的 ASP.NET Core 应用。 ASP.NET Core 开源在GitHub上。

为什么构建 ASP.NET Core?

ASP.NET 的首个预览版作为 .NET Framework 的一部分发布于15年前。自那以后数百万的开发者用它开发和运行着众多非常棒的 Web 应用,而且在这么多年之间我们也为它增加和改进了很多的功能。

ASP.NET Core 有一些架构上的改变,这些改变会使它成为一个更为精简并且模块化的框架。ASP.NET Core 不再基于System.Web.dll。当前它基于一系列颗粒化的,并且良好构建的NuGet包。这一特点能够让你通过仅仅包含需要的 NuGet 包的方法来优化你的应用。一个更小的应用程序接口通过“只为你需要的功能付出”(pay-for-what-you-use)的模型获得的好处包括更可靠的安全性、简化服务、改进性能和减少成本。

通过 ASP.NET Core,你可以获得的改进:

应用程序剖析

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

using System; using Microsoft.AspNetCore.Hosting; namespace aspnetcoreapp { public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseStartup<Startup>() .Build(); host.Run(); } } }

Main调用遵循 builder 模式的WebHostBuilder ,用于创建一个 web 应用程序宿主。这个 builder 有些用于定义 web 服务器 (如UseKestrel)和 startup 类型(UseStartup)的方法。在上面的示例中,web 服务器 Kestrel 被启用,但是你也可以指定其它 web 服务器。我们将会在下一节展示更多关于UseStartup的内容。WebHostBuilder提供了一些可选方法,其中包括寄宿在 IIS 和 IIS Express 中的UseIISIntegration和用于指定根内容目录的UseContentRoot。Build和Run 方法构建了用于宿主应用程序的IWebHost然后启动它来监听传入的 HTTP 请求。

Startup

WebHostBuilder的UseStartup方法为你的应用指定了Startup类。

public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseStartup<Startup>()//手工高亮 .Build(); host.Run(); } }

Startup类是用来定义请求处理管道和配置应用需要的服务。Startup类必须是公开的(public)并且包含如下方法:

public class Startup { public void ConfigureServices(IServiceCollection services) { } public void Configure(IApplicationBuilder app) { } } 服务(Services)

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

中间件(Middleware)

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

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

你也可以创建你自己的自定义中间件。

你也可以在 ASP.NET Core 中使用任何基于OWIN的中间件。查看OWIN获取更多信息。

服务器(Servers)

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

内容根目录(Content root)

内容根目录是应用程序所用到的所有内容的根路径,例如它的 views 和 web 内容。内容根目录默认与宿主应用的可执行程序的应用根目录相同;一个替代的地址可以通过WebHostBuilder来设置。

Web根目录(Web root)

你的应用的Web根目录(Web root)是你项目中所有公共的、静态的资源,如 css、js 和 图片文件的目录。静态文件中间件将默认只发布 Web 根目录(Web root)和其子目录中的文件。 Web 根目录(Web root)默认为/wwwroot,但是你也可以通过WebHostBuilder来指定另外一个地址。

配置(Configuration)

ASP.NET Core 使用了一个新的配置模型用于处理简单的键值对。新的配置模型并非基于System.Configuration或者web.config;而是从一个有序的配置提供者集合拉取数据。内置的配置提供者支持多种不同的文件格式如(XML,JSON, INI)和用于支持基于环境的配置环境变量。你也可以实现你自己自定义的配置提供者。查看Configuration获取更多信息。

环境(Environments)

环境,如 “Development” 和 “Production”,是 ASP.NET Core 中的第一级概念而且它可以设置成使用环境变量。查看Working with Multiple Environments获取更多信息。

使用 ASP.NET Core MVC 构建 web UI 和 web APIs 客户端开发

ASP.NET Core 在设计时已考虑到和各种客户端框架(AngularJS,KnockoutJS和Bootstrap)的无缝集成。查看Client-Side Development获取更多信息。

后续步骤

Building your first ASP.NET Core MVC Application
用 Visual Studio Code 在 Mac OS 上创建首个 ASP.NET Core 应用程序
用 ASP.NET Core MVC 创建你的第一个 Web API
Fundamentals

返回目录

posted @

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Dora.Interception: 一个为.NET Core度身定制的AOP框架 - Artech

    Dora.Interception: 一个为.NET Core度身定制的AOP框架 - Artech

    2017-05-02 11:00

  • 如何在 ASP.NET Core 中发送邮件 - Savorboard

    如何在 ASP.NET Core 中发送邮件 - Savorboard

    2017-05-02 08:02

  • 对于Bootstrap的介绍以及如何使用 - novai-L

    对于Bootstrap的介绍以及如何使用 - novai-L

    2017-04-29 09:00

  • 十二个 ASP.NET Core 例子 - Savorboard

    十二个 ASP.NET Core 例子 - Savorboard

    2017-04-27 16:01

网友点评
r