.NET Core 学习资料精选:入门

来自:滴答的雨-博客园

开源跨平台的.NET Core,还没上车的赶紧的,来不及解释了……

本系列文章,主要分享一些.NET Core比较优秀的社区资料和微软官方资料。我进行了知识点归类,让大家可以更清晰的学习.NET Core

首先感谢资料原作者的贡献。

第一篇:.NET Core?学习资料精选:入门

介绍.NET历史、开源之路、基础、路由、依赖注入、HttpContext、cookie|session、HttpClient、gRPC、单元测试、发布部署等等。

第二篇:.NET Core?学习资料精选:进阶&高级

这是第一篇,知识点如图:?

? ? ? ? ? ??clip_image002[8]

?

.NET?简介

#、.NET?开源之路

clip_image004[8]

.NetFrameWork发展史

C# 语言版本发展史

2014.11月 .NET Core 项目启动,2016.06月 .NET Core 1.0 发布

微软 .NET Core3.0 规划蓝图

.NET Core 3.0 下一个版本命名为:.NET 5

clip_image006[8]

?

#、.NET Core提供的特性

1.开源、免费

2.轻量级、跨平台

3.组件化、模块化、IOC+Nuget、中间件

4.高性能

5.统一了MVCWebAPI编程模型

a)??比如:ASP.NET Core?MVC?Web API?直接或间接继承同一个基类?ControllerBase,提供可使用的API也一致化

b)??比如:旧ASP.NET时代,写全局filter需要针对MVC?Web API?分别编写代码,但在ASP.NET Core,直接使用一套中间件代码即可

6.可测试性

7.微服务、容器化支持

8.标准化?.NET API?规范- .NET STANDARD

?

#、迁移到.NET Core

目前市面上还存在很多传统?.NET?旧项目,我们需要根据公司情况决定是否升级到.NET Core

如果需要进行旧项目升级的,可以参考文章:《
.NET项目迁移到.NET Core操作指南

?

VS.NET Core安装

VS2019安装教学

VS2019正式版注册码秘钥

修改nuget包默认存放路径,避免C盘膨胀

安装 .NET Core Runtime 和.NET Core SDK

【微软官方文档】ASP.NET Core *.* 个版本新特性

指定要使用的 .NET Core 版本

如何删除 .NET Core 过时的运行时和 SDK

[坑]安装 .Net Core 2.2 SDK后,VS2017依然不能设置core2.2为目标框架

?

基础

ASP.NET Core开发者路线指南

微软官方 asp.net core 教程文档

.NET Core 命令行接口 (CLI) 工具

.NET Core 运行程序注意事项(dotnet dll 与 dotnet run)

ASP.NET Core API 一览表

查询 NET API 及类库在各版本中实现情况

ASP.NET Core 项目目录结构介绍

ASP.NET Core 程序自定义IP和端口的几种方式

ASP.NET Core 中的Startup类

ASP.NET Core 中使用多个环境(开发、预发布、生产)- 默认为 Production

ASP.NET Core 动作结果(ActionResult)

ASP.NET Core 中控制器操作的多路径返回类型(IActionResult)

.NET Core 3.0 新的 System.Text.Json API

?

配置

ASP.NET Core 中的配置(json、xml、命令行、环境变量、内存变量等)

ASP.NET Core 中的选项模式

.Net Core 自定义配置源从远程API读取配置(ConfigurationProvider)

迈向现代化的 .Net 配置指北(配置到类自动映射)

?

路由、模型绑定

ASP.NET Core WebAPI中,Controller标注?[ApiController]?特性,其路由只能使用[route]特性方式

ASP.NET Core MVC 构建可读性更高的ASP.NET Core 路由

ASP.NET Core 中的模型绑定

ASP.NET Core 中的自定义模型绑定(IModelBinder)

ASP.NET Core 中的 URL 重写中间件

?

依赖注入(IOCDI

什么是控制反转,和依赖注入:

控制反转的意思就是:平常我们需要一个类对象的时候需要new出来,而现在我们把new一个类对象的工作交给了IOC容器,当我们需要一个类对象的时候直接向IOC容器要,就可以了,这个就是控制反转。(控制权交个了IOC容器)

依赖注入的意思就是:当我需要一个类对象,IOC容器给我们这个类对象的过程其实就是依赖注入,依赖注入有构造函数注入和属性注入。?

[官方]ASP.NET Core 依赖注入

全面理解 ASP.NET Core 依赖注入

官方推荐通过构造函数。这也是所谓的显式依赖。Asp.Net Core?的标准依赖注入容器不支持属性注入。(可以使用autofac或者其他来实现属性注入)

ASP.NET Core 中依赖注入的N种玩法

ASP.NET Core 自定义特性实现属性注入

ASP.NET Core 原生DI实现批量注册

可以参考?OSharp?框架,设计三个全局注入接口,来实现自动化注入:ISingletonDependency??ITransientDependency??IScopedDependency?( 单例、瞬时、范围)。

ASP.NET Core 中如何注入同一个接口的多个实现

案例1:使用nlog时,想根据需要使用不同的配置文件Nlog.config?写日志时,就可以使用文章中介绍的?Factory?命名注入方案来实现

案例2:使用分布式缓存?IDistributedCache?时,想根据需要在一个项目中同时使用redissqlserver

ASP.NET Core 中多个接口对应同一个实现的正确姿势

ASP.NET Core 依赖注入扩展库 Scrutor

[OSharp]使用 IServiceProvider.GetService() 实现按需注入,优化性能

?

#ASP.NET Core?集合?Autofac?的使用

AutoFac三种注入方式:按类型、按名称、按键

Asp.Net Core 2.0 之旅---AutoFacIOC容器的使用教程

Asp.Net Core 2.0 之旅---AutoFac仓储泛型的依赖注入(泛型注入)

Asp.Net Core 2.0 之旅---数据访问仓储模式的事务管理(uow+rp)

?

ASP.NET Core?中使用Autofac实现属性注入的代码片段

public?IServiceProvider?ConfigureServices(IServiceCollection?services)
{
????//?第一步:替换系统默认Controller创建器(否则Controller下面无法使用属性注入)
????//?在?services.AddMvc()?之前
????services.Replace(ServiceDescriptor.Transient());
????services.AddMvc();

????var?builder?=?new?ContainerBuilder();

????//?第二步:找到所有Controller的类型
????//?通过Autofac对Controller类型进行属性注册?PropertiesAutowired()
????var?assembly?=?this.GetType().GetTypeInfo().Assembly;
????var?manager?=?new?ApplicationPartManager();
????manager.ApplicationParts.Add(new?AssemblyPart(assembly));
????manager.FeatureProviders.Add(new?ControllerFeatureProvider());
????var?feature?=?new?ControllerFeature();
????manager.PopulateFeature(feature);
????builder.RegisterTypes(feature.Controllers.Select(ti?=>?ti.AsType()).ToArray()).PropertiesAutowired();
????//?第三步:配置?ContainerBuilder,返回?IServiceProvider?
????builder.Populate(services);
????return?new?AutofacServiceProvider(builder.Build());
}


ASP.NET Core WebAPI

创建ASP.NET Core Web API (ControllerBase、参数绑定源)

ASP.Net Core WebAPI 几种版本控制对比

使用 Web API 约定

使用 Web API 分析器告警缺失的约定

?

ASP.NET CoreMVC??Razor Pages

ASP.NET Core SignalR 入门

ASP.NET Core MVC 静态文件目录配置与访问授权

新的?Razor?机制

ASP.NET Core Razor SDK

ASP.NET Core 的 Razor 语法参考

ASP.NET Core 中的 Razor 页面介绍(OnGet、OnPost、单页多Handler方式)

ASP.NET Core 中 Razor 页面的IPageFilter

ASP.NET Core 中 Razor 页面的路由和应用约定

ASP.NET Core Razor 配置:预编译,动态编译,混合编译

WebForm & MVC & Razor Pages

[译]ASP.NET:WebForms vs MVC

ASP.NET Core Razor页面 vs MVC

[译]ASP.Net Core 2.0中的Razor Page不是WebForm

ASP.NET Core Razor页面简化了 ASP.NET MVC 应用程序

?

HttpContext

ASP.NET Core 中访问 HttpContext 的方法

ASP.NET Core 中通过IHttpContextAccessor实现公用静态HttpContext

?

状态管理

常见方式:CookieSessionTempData、查询字符串、HttpContext.Items、缓存、依赖关系注入

ASP.NET Core 中的会话和应用状态

#、session

ASP.NET Core 在通用数据保护条例规则下使用 session

ASP.NET Core 使用Redis存储Session

#、cookie

ASP.NET Core SameSite 设置引起 Cookie 在 QQ 浏览器中不起作用

[github]ASP.NET Core CookieManager

?

通信

对比 gRPC 服务和 HTTP API 服务

#、HttpClient

ASP.NET Core HttpClient的演进和避坑

ASP.NET Core HttpClient的各种用法、生命周期管理

DotNetCore 使用Http请求及基于 Polly 的处理故障

DotNetCore 中 HttpClientFactory 类源码分析

#、gRPC

ASP.NET Core 3.0 上的gRPC服务模板初体验(多图)

ASP.NET Core gRPC的配置

?

发布部署

ASP.NET Core 使用 IIS 进行托管部署

ASP.NET Core 部署到 Linux 进行托管

ASP.NET Core 使用Supervisor进行托管部署

ASP.NET Core 使用Docker进行容器化托管

配置 ASP.NET Core 以使用代理服务器和负载均衡器

?
使用 Nginx 在 Linux 上托管 ASP.NET Core

使用 Apache 在 Linux 上托管 ASP.NET Core

?

单元测试

.NET Core 和 .NET Standard 单元测试最佳做法

使用 dotnet test 和 xUnit 在 .NET Core 中进行 C# 单元测试

使用 dotnet test 和 NUnit 在 .NET Core 中进行 C# 单元测试

使用 dotnet test 和 MSTest 在 .NET Core 中进行 C# 单元测试

使用 dotnet test --filter 进行选择性单元测试

推荐↓↓↓
DotNet程序员
上一篇:ASP.NET Core 3.0中支持AI的生物识别安全 下一篇:.NET Core中的分布式缓存和负载均衡