第 2 章 .NET Core 和 ASP.NET Core

2.1 .NET Core 简介

.NET Core 是一个通用的开发平台,最重要的特点是跨平台,同时也是一个开源平台

.NET Core 包含以下几部分内容:

  • CoreCLR:它是 .NET Core 的运行时,包含垃圾回收器、JIT 编辑器、原生数据类型、本机交互操作及底层类
  • CoreFX:它是 .NET Core 的基础类库,实现了 .NET Standard,包含集合、文件系统、JSON、异步等API
  • Roslyn 编辑器:用于将 C# 或 VB.NET 代码编译为程序集
  • .NET Core CLI 工具:用于构建 .NET Core 应用程序和类库

.NET Core 采用包化的管理方式,应用程序只需要获取需要的组件即可

2.2 .NET Standard 简介

.NET Standard 是一套 .NET 规范或标准,它定义了所有 .NET 平台都应该实现的接口

.NET 平台包括 .NET Core、.NET Framework、Xamarin

每个平台支持不同的应用模型,而且都基于相应的基础类库,通过 .NET Standard 可以实现类库共享

.NET Standard 2.0 的 API 主要包括以下几个方面:

  • IO
  • XML
  • Serialization
  • Threading
  • Data
  • Networking
  • Core

.NET Standard 2.1 新增3000多个 API,主要包括 Span、ValueTask、ValueTask、DbProviderFactories 等

2.3 ASP.NET Core 简介

ASP.NET Core 是免费、开源、高性能而且跨平台的 Web 框架,用来构建 Web 应用程序

ASP.NET Core 具有以下优点:

  • 跨平台,能够在 Windows、macOS 和 Linux 系统上开发、编译和运行
  • 统一 Web UI 与 Web API 开发
  • 集成新式客户端框架和开发工作流
  • 基于环境配置以及云就绪配置
  • 内置依赖注入
  • 轻型的高性能模块化 HTTP 请求管道
  • 能够在 IIS、Nginx、Apache 和 Docker 上进行托管或者在当前进程内自托管
  • 当目标框架为 .NET Core 时,支持并行应用版本控制
  • 简化新式 Web 开发工具
  • 开源和以社区为中心

ASP.NET Core 2.1 新增特性

  • SignalR
  • HTTPS
  • Razor 类库
  • [ApiController] 特性和 ActionResult 类
  • Identity UI 类库
  • Microsoft.AspNetCore.App

ASP.NET Core 2.2 新增特性

  • IIS 进程内托管
  • HTTP/2 支持
  • OpenAPI 分析器和约定
  • Kestrel 配置
  • 运行状况检查
  • SignalR Java 客户端
  • CORS 改进

2.4 设置开发环境

.NET Core Runtime 与 SDK 的区别:

  • .NET Core Runtime 仅包含 .NET Core 应用程序运行所需要的资源
  • .NET Core SDK 不仅包含了 .NET Core Runtime,也包含了开发程序时所依赖的库文件以及 SDK 工具等

.NET Core CLI 就是 .NET Core 命令行界面,它是一个开发 .NET Core 应用程序的跨平台工具链,安装完 SDK 之后就可以使用

.NET Core CLI 命令:

  • dotnet sln
  • dotnet add
  • dotnet remove
  • dotnet build
  • dotnet run
  • dotnet publish
  • dotnet ef
  • dotnet dev-certs https
  • dotnet test

2.5 创建第一个 API 项目

ASP.NET Core Web 应用程序包含以下若干文件:

  • launchSetting.json:应用程序运行配置文件,如 URL 和端口信息等
  • wwwroot:用于存储静态文件,如图片、CSS 和 JavaScript 等文件
  • 依赖项:当前应用程序所依赖的 NuGet 包和 SDK
  • Controllers:存储所有控制器类文件
  • appsettings.json:配置文件,用于存储在应用程序运行时要用到的一些配置项
  • Program.cs:程序入口类,ASP.NET Core 应用程序从这个类中的 Main 函数运行,这与控制台程序完全一样
  • Startup.cs:应用程序启动时的配置类,用于配置 ASP.NET Core 应用程序中的服务、中间件、MVC 和异常处理等

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

欢迎转载、使用、重新发布,但务必保留文章署名 郑子铭 (包含链接: http://www.cnblogs.com/MingsonZheng/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

如有任何疑问,请与我联系 (MingsonZheng@outlook.com) 。

《ASP.ENT Core 与 RESTful API 开发实战》-- 读书笔记(第2章)的更多相关文章

  1. Spring AOP (Spring 3.x 企业应用开发实战读书笔记第六章)

    从面相对象编程到面相切面编程,是一种代码组织方式的进化. 每一代的代码组织方式,其实是为了解决当时面对的问题.比如写编译器和写操作系统的时候的年代当然要pop,比如写界面的时候当然要oop,因为界面这 ...

  2. 使用ASP.NET Core构建RESTful API的技术指南

    译者荐语:利用周末的时间,本人拜读了长沙.NET技术社区翻译的技术标准<微软RESTFul API指南>,打算按照步骤写一个完整的教程,后来无意中看到了这篇文章,与我要写的主题有不少相似之 ...

  3. iPhone与iPad开发实战读书笔记

    iPhone开发一些读书笔记 手机应用分类1.教育工具2.生活工具3.社交应用4.定位工具5.游戏6.报纸和杂志的阅读器7.移动办公应用8.财经工具9.手机购物应用10.风景区相关应用11.旅游相关的 ...

  4. <<Java RESTful Web Service实战>> 读书笔记

    <<Java RESTful Web Service实战>> 读书笔记 第一章   JAX-RS2.0入门 REST (Representational State ransf ...

  5. Spring 3.x 实践 第一个例子(Spring 3.x 企业应用开发实战读书笔记第二章)

    前言:工作之后一直在搞android,现在需要更多和后台的人员交涉,技术栈不一样,难免鸡同鸭讲,所以稍稍学习下. 这个例子取自于<Spring 3.x 企业应用开发实战>一书中的第二章,I ...

  6. ASP.NET Core 2 High Performance 目录和读书笔记

    ASP.NET Core 2 High Performance 大概的翻看了一下这本书,这本C# 7 and .NET Core 2.0 High Performance内容要好很多,这里先放出对应目 ...

  7. HTML5 Canvas核心技术图形动画与游戏开发(读书笔记)----第一章,基础知识

    一,canvas元素 1 为了防止浏览器不支持canvas元素,我们设置“后备内容”(fallback content),下面紫色的字即为后备内容 <canvas id="canvas ...

  8. Javascript设计模式与开发实践读书笔记(1-3章)

    第一章 面向对象的Javascript 1.1 多态在面向对象设计中的应用   多态最根本好处在于,你不必询问对象“你是什么类型”而后根据得到的答案调用对象的某个行为--你只管调用行为就好,剩下的一切 ...

  9. Spring3.x企业开发应用实战读书笔记 —— 第三章IoC容器概述

    声明:    本篇博客绝大多数内容为<Spring3.x企业开发应用实战>一书原内容,所有版权归原书作者所有!,仅供学习参考,勿作他用! 3.2 相关Java基础知识 Java语言允许通过 ...

  10. jQuery 实战读书笔记之第二章:选择元素

    基本选择器 html 代码如下,后面的 js 使用的 html 基本大同小异. <!doctype html> <html> <head> <title> ...

随机推荐

  1. 【驱动】以太网扫盲(二)phy寄存器简介

    PHY 寄存器的地址空间为 5 位,从 0 到 31 最多可以定义 32 个寄存器(随着芯片功能不断增加,很多 PHY 芯片采用分页技术来扩展地址空间以定义更多的寄存器),IEEE802.3 定义了地 ...

  2. 深度学习基础课:“判断性别”Demo需求分析和初步设计(上)

    大家好~我开设了"深度学习基础班"的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序 线上课程资料: 本节课录像回放 扫码加QQ群, ...

  3. 每天学五分钟 Liunx 0110 | 服务篇:守护进程 systemd

    有些进程会在系统上运行较长时间,如前面的 Hello World 程序运行时产生的进程.有些进程运行瞬间就结束了,如执行 ps 命令产生的进程,也有的进程会常驻在内存中,提供相应的服务,这样的进程称为 ...

  4. spring,springBoot配置类型转化器Converter以及FastJsonHttpMessageConverter,StringHttpMessageConverter 使用

    转载请注明出处: https://i.cnblogs.com/posts/edit;postId=14045507 spring,spring boot 等框架项目通过@RequestBody,@Re ...

  5. Blazor开发小游戏?趁热打铁上!!!

    大家好,我是沙漠尽头的狼. 网站使用Blazor重构上线一天了,用Blazor开发是真便捷,空闲时间查查gpt和github,又上线一个 正则表达式在线验证工具 和几个在线小游戏,比如 井字棋游戏.扫 ...

  6. [转帖]细说:Unicode, UTF-8, UTF-16, UTF-32, UCS-2, UCS-4

    https://www.cnblogs.com/malecrab/p/5300503.html 1. Unicode与ISO 10646 全世界很多个国家都在为自己的文字编码,并且互不想通,不同的语言 ...

  7. [转帖]深入浅出分析LSM树(日志结构合并树)

    https://zhuanlan.zhihu.com/p/415799237 ​ 目录 收起 零.前言 一.LSM树数据结构定义 二.插入操作 三.删除操作 四.修改操作 五.查询操作 六.合并操作 ...

  8. SQLServer解决deadlock问题的一个场景

    SQLServer解决deadlock问题的一个场景 背景 公司产品出现过很多次dead lock 跟研发讨论了很久, 都没有具体的解决思路 但是这边知道了一个SQLServer数据库上面计划100% ...

  9. TiDB恢复部分表的方式方法

    TiDB恢复部分表的方式方法 背景 今天同事告知误删了部分表. 因为是UAT准生产的环境, 所以仅有每天晚上11点的备份处理. 同时告知 昨天的数据也可以. 得到认可后进行了 TiDB的单表备份恢复. ...

  10. [转帖]--build=arm-linux

    今天在arm上用configure生成makefile时报错:configure: error: cannot guess build type; you must specify one 问题: 不 ...