.NET Core 学习资料

简介: .NET Core 学习资料

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

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

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

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

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

第二篇:.NET Core 学习资料精选:进阶

   介绍.NET工程化、AOP、异常处理、缓存、日志、响应优化、上传下载、健康检查、后台任务、认证和授权、安全性(Https、CORS、CSRF)、EF Core 等等

第三篇:.NET Core 学习资料精选:高级&微服务架构

   介绍性能、原理、微服务架构、Docker、DDD等知识

 

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

image.png


.NET 简介

#、.NET 开源之路


image.png

.NetFrameWork发展史

C# 语言版本发展史

.NET 生态系统概览(开源&跨平台)

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

.NET Core 3.0 新特性:支持 Windows 桌面应用(windows only)


image.png

.NET Core 3.0 正式公布:新特性详细解读

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

image.png

.NET Core Roadmap

image.png

#、.NET Core提供的特性

1.免费和最宽松的开源协议

2.轻量级、跨平台

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

4.高性能

5.统一了MVC和WebAPI编程模型

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正式版注册码秘钥

使用VS Code 开发.NET CORE 程序指南

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

安装 .NET Core Runtime 和.NET Core SDK

Linux/MacOS 安装 .NET Core SDK 命令

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

指定要使用的 .NET Core 版本

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

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

 

基础

术语:

 程序员需要知道的缩写和专业名词

 后端开发术语大全

 一文读懂QPS、TPS、PV、UV、GMV、IP、RPS

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 3.0中使用动态控制器路由

ASP.NET Core 中的模型绑定

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

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

 

依赖注入(IOC、DI)

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

控制反转的意思就是:平常我们需要一个类对象的时候需要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 时,想根据需要在一个项目中同时使用redis和sqlserver

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

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

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

 

#、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<IControllerActivator, ServiceBasedControllerActivator>());
    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 几种版本控制对比

ASP.NET Core 构建带有版本控制的 API 接口

使用 ASP.NET Core WebAPI 小技巧

使用 Web API 约定

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

 

ASP.NET Core:MVC 与 Razor Pages

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

 

状态管理

常见方式:Cookie、Session、TempData、查询字符串、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 类源码分析

#、RPC

  Grpc

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

      ASP.NET Core 3.0 使用gRPC

      ASP.NET Core gRPC的配置

      [github]基于gRPC的实时网络引擎:MagicOnion

  DotNetty

      [github]Azure开源的网络通信框架DotNetty

#、SignalR

ASP.NET Core SignalR 简介

[如鹏网九节公开课].NET Core 中使用SignalR实现聊天服务器

SignalR 在5分钟内完成通信连接和消息发送

SignalR 中丰富多彩的消息推送方式

在后台主机中托管SignalR服务并广播心跳包

 

发布部署

.Net Core 跨平台:一个简单程序的多平台(windows、Linux、osx)发布

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

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

在Linux上使用Nginx + surpervisor部署ASP.NET Core程序

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

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

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

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

 

单元测试

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

.NET 测试篇之Moq框架简单使用

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

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

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

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

 

==============================================================================

相关文章
|
25天前
|
消息中间件 前端开发 小程序
一个基于.NET Core构建的简单、跨平台、模块化的商城系统
今天大姚给大家分享一个基于.NET Core构建的简单、跨平台、模块化、完全开源免费(MIT License)的商城系统:Module Shop。
|
25天前
|
算法 C# 数据库
【干货】一份10万字免费的C#/.NET/.NET Core面试宝典
C#/.NET/.NET Core相关技术常见面试题汇总,不仅仅为了面试而学习,更多的是查漏补缺、扩充知识面和大家共同学习进步。该知识库主要由自己平时学习实践总结、网上优秀文章资料收集(这一部分会标注来源)和社区小伙伴提供三部分组成。该份基础面试宝典完全免费,发布两年来收获了广大.NET小伙伴的好评,我会持续更新和改进,欢迎关注我的公众号【追逐时光者】第一时间获取最新更新的面试题内容。
|
25天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
2天前
|
开发框架 .NET 中间件
C#/.NET快速上手学习资料集(让现在的自己不再迷茫)
C#/.NET快速上手学习资料集(让现在的自己不再迷茫)
|
8天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
18 0
|
23天前
|
Linux API iOS开发
.net core 优势
.NET Core 的优势:跨平台兼容(Windows, macOS, Linux)及容器支持,高性能,支持并行版本控制,丰富的新增API,以及开源。
25 4
|
2月前
|
开发框架 人工智能 .NET
C#/.NET/.NET Core拾遗补漏合集(持续更新)
C#/.NET/.NET Core拾遗补漏合集(持续更新)
|
2月前
|
开发框架 中间件 .NET
C# .NET面试系列七:ASP.NET Core
## 第一部分:ASP.NET Core #### 1. 如何在 controller 中注入 service? 在.NET中,在ASP.NET Core应用程序中的Controller中注入服务通常使用<u>依赖注入(Dependency Injection)</u>来实现。以下是一些步骤,说明如何在Controller中注入服务: 1、创建服务 首先,确保你已经在应用程序中注册了服务。这通常在Startup.cs文件的ConfigureServices方法中完成。例如: ```c# services.AddScoped<IMyService, MyService>(); //
71 0
|
3月前
|
开发框架 前端开发 .NET
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
为了便于大家查找,特将之前开发的.Net Core相关的五大案例整理成文,共计440页,32w字,免费提供给大家,文章底部有PDF下载链接。
37 1
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
|
3月前
|
算法 BI API
C#/.NET/.NET Core优秀项目和框架2024年1月简报
C#/.NET/.NET Core优秀项目和框架2024年1月简报