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 请求。

以下是core2的配置,这里用来做下对比

public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .Build();
    }

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-10-28 16:09:11

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

ASP.NET Core学习系列

.NET Core ASP.NET Core ASP.NET Core学习之一 入门简介 ASP.NET Core学习之二 菜鸟踩坑 ASP.NET Core学习之三 NLog日志 ASP.NET Core学习之四 在CentOS上部署.net core LINUX学习系列 DOCKER学习系列 微服务学习系列 原文地址:https://www.cnblogs.com/xcsn/p/8306854.html

ASP.NET Core 3.0 入门

原文:ASP.NET Core 3.0 入门 课程简介 与2.x相比发生的一些变化,项目结构.Blazor.SignalR.gRPC等 课程预计结构 ASP.NET Core 3.0项目架构简介 ASP.NET Core MVC 简介 Blazor SignalR Web API gRPC 发布 一. 创建项目 dotnet core 本质上是控制台应用 1. DI 依赖注入(Dependency Injection) IoC 容器(Inversion of Control)控制反转 注册(服务

ASP.NET Core 之 Identity 入门(三)

转自:http://www.cnblogs.com/savorboard/p/aspnetcore-identity3.html ASP.NET Core 之 Identity 入门(三) 前言 在上一篇文章中,我们学习了 CookieAuthentication 中间件,本篇的话主要看一下 Identity 本身. 最早2005年 ASP.NET 2.0 的时候开始, Web 应用程序在处理身份验证和授权有了很多的变化,多了比如手机端,平板等,所以那个时候为了适应这种变化就引入了ASP.NET

ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

原文:ASP.NET Core 入门教程 4.ASP.NET Core MVC控制器入门 一.前言 1.本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET Core MVC控制器操作简介返回类型示例 ASP.NET Core MVC控制器参数映射逻辑说明 ASP.NET Core MVC控制器参数映射/获取示例 2.本教程环境信息 软件/环境 说明 操作系统 Win

【目录】ASP.NET Core 2.1 入门教程

ASP.NET Core 2.1 快速学习.入门系列教程,这个入门系列教程为了帮助大家快速上手ASP.NET Core. 本教程包含且不限于: 使用VS Code开发ASP.NET Core应用 ASP.NET Core MVC 开发(路由.控制器.视图) EF Core(连接MySQL,基础数据库操作示例) NLog日志组件使用 ASP.NET Core 中间件等等 本教程示例代码:https://github.com/ken-io/asp.net-core-tutorial https://

【视频】ASP.NET Core MVC 2.* 入门

比较初级的入门教程,网址在B站:https://www.bilibili.com/video/av33728783/ 内容如下: 1. ASP.NET Core 简介和开发工具 2. ASP.NET Core 启动相关的基础知识 3. 使用Nuget & NPM 安装,优化第三方库 4. 配置MVC和其它中间件 5. 环境和Tag Helpers 1 6. Tag Helpers 2 7. 配置参数和View Component 8. 发布 9. 部署到Ubuntu (Nginx, 监控, HT

ASP.NET Core (二):入门

上一篇:ASP.NET Core(一):简介 下一篇:(待续) 英文原版:Getting Started 1. 安装 .NET Core 2. 创建 .NET Core 项目 在命令提示符窗口输入命令: mkdir aspnetcoreapp cd aspnetcoreapp dotnet new 3. 更新 project.json 文件,将 Kestrel HTTP 服务器程序包作为依赖添加到文件中 { "version": "1.0.0-*", "b

ASP.NET Core 之 Identity 入门(一)

参考页面: http://www.yuanjiaocheng.net/ASPNET-CORE/core-identity.html http://www.yuanjiaocheng.net/ASPNET-CORE/core-authorize-attribute.html http://www.yuanjiaocheng.net/ASPNET-CORE/core-identity-configuration.html http://www.yuanjiaocheng.net/ASPNET-COR

[转]ASP.NET Core 之 Identity 入门(一)

本文转自:http://www.cnblogs.com/savorboard/p/aspnetcore-identity.html 前言 在 ASP.NET Core 中,仍然沿用了 ASP.NET里面的 Identity 组件库,负责对用户的身份进行认证,总体来说的话,没有MVC 5 里面那么复杂,因为在MVC 5里面引入了OWIN的东西,所以很多初学者在学习来很费劲,对于 Identity 都是一头雾水,包括我也是,曾经在学 identity 这个东西前后花了一个多月来搞懂里面的原理.所以大