ASP.NET Core学习之一 入门简介

一、入门简介

在学习之前,要先了解ASP.NET Core是什么?为什么?很多人学习新技术功利心很重,恨不得立马就学会了。

其实,那样做很不好,马马虎虎,联系过程中又花费非常多的时间去解决所遇到的“问题”,是简单的问题,对,就是简单,就是因为觉得简单被忽略的东西,恰恰这才是最重要的。

1、学习资料

首先,介绍下哪里可以获得学习资料

英文官网,最好的文档,英语得过硬

https://docs.microsoft.com/en-us/aspnet/core/

可惜当年英语就是马马虎虎过来的,所以找了以下中午翻译,以下是中午目录的链接

http://www.cnblogs.com/dotNETCoreSG/p/aspnetcore-index.html

 以下开始正题,主要来自dotNETCoreSG博客,对有用的内容进行删减记录,少花时间看一些不想看的东西

2、什么是 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 上。

3、为什么构建 ASP.NET Core?

ASP.NET Core 有一些架构上的改变,不再基于 System.Web.dll 。当前它基于一系列颗粒化的,并且良好构建的 NuGet 包。这一特点能够让你通过仅仅包含需要的 NuGet 包的方法来优化你的应用。通过 ASP.NET Core,你可以获得的改进:

  • 一个统一的方式用于构建 web UI 和 web APIs
  • 集成 现代的客户端开发框架 和开发流程
  • 一个适用于云的,基于环境的 配置系统
  • 内置的 依赖注入
  • 新型的轻量级的、模块化 HTTP 请求管道
  • 运行于 IIS 或者自宿主(self-host)于你自己的进程的能力
  • 基于支持真正的 side-by-side 应用程序版本化的 .NET Core 构建
  • 完全以 NuGet 包的形式发布
  • 新的用于简化现代 web 开发的工具
  • 可以在 Windows 、Mac 和 Linux 上构建和运行跨平台的 ASP.NET 应用
  • 开源并且重视社区

二、入门基础

1.应用程序剖析

  一个 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 和用于指定根内容目录的 UseContentRootBuild 和 Run 方法构建了用于宿主应用程序的 IWebHost 然后启动它来监听传入的 HTTP 请求。

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

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

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
    }

    public void Configure(IApplicationBuilder app)
    {
    }
}

ConfigureServices 定义你的应用所使用的服务(在下面查看 服务(Services) )(例如 ASP.NET MVC Core framework、Entity Framework Core、Identity 等等)

Configure 定义你的请求管道中的 中间件(middleware)

更多内容请参考: Application Startup

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

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

你的应用的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

  • 你可以使用 Model-View-Controller(MVC)模式创建优秀的并且可测试的 web 应用程序。查看 MVC 和 测试
  • 你可以构建支持多种格式并且完全支持内容协商的 HTTP 服务。 查看 Formatting
  • Razor 提供了一种高效的语言用于创建 Views
  • Tag Helpers 启用服务器端的代码参与到 - Razor 文件的创建和 HTML 元素渲染
  • 你可以使用自定义或者内置的 formatters (JSON, XML)来构建完全支持内容协商的 HTTP 服务
  • Model Binding 模型绑定 自动的映射 HTTP 请求中的数据到 action 方法参数
  • Model Validation 模型验证 自动的执行客户端和服务器端验证

客户端开发

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

 

 

时间: 2024-11-05 16:32:19

ASP.NET Core学习之一 入门简介的相关文章

详解ASP.NET Core 之 Identity 入门(三)_实用技巧

前言 最早2005年 ASP.NET 2.0 的时候开始, Web 应用程序在处理身份验证和授权有了很多的变化,多了比如手机端,平板等,所以那个时候为了适应这种变化就引入了ASP.NET Membership,但是随着时间的发展一些社交网站或者程序聚集了大量的用户,比如Facebook,Twitter,QQ等,这个时候用户希望能够使用他们在这些社交站点身份来登陆当前网站,这样可以免除注册这些琐碎而又必要的操作,用户也不必记住大量的账户密码. 又随着互联网的发展,越来越多的开发者不只是关注具体业务

详解ASP.NET Core 之 Identity 入门(一)_实用技巧

前言 在 ASP.NET Core 中,仍然沿用了 ASP.NET里面的 Identity 组件库,负责对用户的身份进行认证,总体来说的话,没有MVC 5 里面那么复杂,因为在MVC 5里面引入了OWIN的东西,所以很多初学者在学习来很费劲,对于 Identity 都是一头雾水,包括我也是,曾经在学 identity 这个东西前后花了一个多月来搞懂里面的原理.所以大部分开发者对于 Identity 并没有爱,也并没有使用它,会觉得被绑架. 值得庆幸的是,在 ASP.NET Core 中,由于对模

详解ASP.NET Core 之 Identity 入门(二)_实用技巧

前言 在 上篇文章 中讲了关于 Identity 需要了解的单词以及相对应的几个知识点,并且知道了Identity处在整个登入流程中的位置,本篇主要是在 .NET 整个认证系统中比较重要的一个环节,就是 认证(Authentication),因为想要把 Identity 讲清楚,是绕不过 Authentication 的. 其实 Identity 也是认证系统的一个具体使用,大家一定要把 Authentication 和 Identity 当作是两个东西,一旦混淆,你就容易陷入进去. 下面就来说

ASP.NET Core学习之三 NLog日志

上一篇简单介绍了日志的使用方法,也仅仅是用来做下学习,更何况只能在console输出. NLog已是日志库的一员大佬,使用也简单方便,本文介绍的环境是居于.NET CORE 2.0 ,目前的版本也只有beta版. 一.安装和配置 1.安装 命令如下 PM> Install-Package NLog.Web.AspNetCore -Version 4.5.0-beta04 2.创建配置文件 在web项目根目录下,创建配置文件nlog.config ,并且将文件的属性"复制到输出目录"

ASP.NET Core学习之二 菜鸟踩坑

对于像我这样没接触过core的人,坑还是比较多的,一些基础配置和以前差别很大,这里做下记录 一.Startup 1.注册服务 // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc(); // services.Ad

ASP.NET MVC3学习心得-----入门和控制器

之前有学过ASP.NET MVC 3,但那也只是浮光掠影般的看了看而已,这次专门接了本书,系统的学习下,这里只是摘录总结一些重点而已,并非详细的介绍,算是读书笔记吧,希望可以对大家有所帮助. 第一章入门 1.1.2MVC模式简介 MVC(Model-View-Contorller)模式是一种用户界面模式,将应用程序的用户界面分为三部分: l 模型:组类,描述要处理的数据以及修改和操作数据的业务规则 l 视图:定义应用程序用户界面的显示方式 l 控制器:一组类,用于处理来自用户.整个应用程序流程及

学习ASP.NET Core,你必须了解无处不在的“依赖注入”

ASP.NET Core的核心是通过一个Server和若干注册的Middleware构成的管道,不论是管道自身的构建,还是Server和Middleware自身的实现,以及构建在这个管道的应用,都需要相应的服务提供支持,ASP.NET Core自身提供了一个DI容器来实现针对服务的注册和消费.换句话说,不只是ASP.NET Core底层框架使用的服务是由这个DI容器来注册和提供,应用级别的服务的注册和提供也需要以来这个DI容器,所以正如本文标题所说的--学习ASP.NET Core,你必须了解无

ASP.NET MVC Web API 学习笔记----HttpClient简介

  1. HttpClient简单介绍  依稀还记得那个时候用WebClient,HttpWebRequest来发送一个请求,现在ASP.NET MVC4中自带了一个类HttpClient,用于接收HttpResponseMessage和发送HttpRequestMesssage. 问题在于既然WebClient,HttpWebRequest可以完成相应的功能,为什么还要使用HttpClient类,.NET Framework中既然提出了这样一个类肯定是有其特别之处的,这里罗列几个不同之处: (

学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?

ASP.NET Core管道虽然在结构组成上显得非常简单,但是在具体实现上却涉及到太多的对象,所以我们在 "通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程"(上篇.中篇.下篇) 中围绕着一个经过极度简化的模拟管道讲述了真实管道构建的方式以及处理HTTP请求的流程.在本系列 中,我们会还原构建模拟管道时可以舍弃和改写的部分,向读者朋友们呈现一个真是的HTTP请求处理管道. ASP.NET Core 的请求处理管道由一个服务器与一组有序排列的中间件构成