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

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

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

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

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

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

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

      

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

           640?wx_fmt=jpeg

 

.NET 简介

#、.NET 开源之路

640?wx_fmt=png

.NetFrameWork发展史

C# 语言版本发展史

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

微软 .NET Core3.0 规划蓝图

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

640?wx_fmt=jpeg

 

#、.NET Core提供的特性

1.开源、免费

2.轻量级、跨平台

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

4.高性能

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

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

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

  3. 6.可测试性

  4. 7.微服务、容器化支持

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

 

#、迁移到.NET Core

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

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

 

VS.NET Core安装

VS2019安装教学

VS2019正式版注册码秘钥

安装 .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 时,想根据需要在一个项目中同时使用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实现属性注入的代码片段

640?wx_fmt=png

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

 

状态管理

常见方式: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 类源码分析

#、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 进行选择性单元测试

 

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








本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习笔记~~~~~Set接口实现

Java中提供了HashSet、TreeSet、LinkedHashSet三种常用的Set实现&#xff0c;以下具体分析它们的用法和性能。 我们使用Set的原因是Set集合不包含重复元素&#xff0c;HashSet、TreeSet和LinkedHashSet三种类型什么时候使用它们&#xff0c;使用哪个这是一个很重要的选择性问题…

15句乔布斯经典语录(中英文)

1.Life is brief, and then you die, you know&#xff1f;人生短暂&#xff0c;过着过着你就没了&#xff0c;明白么&#xff1f;2.Innovation distinguishes between a leader and a follower.领袖和跟风者的区别就在于创新。3.Were here to put a dent in the universe. Oth…

mysql一些常用操作_mysql的一些常用操作(一)

1.启动Mysql服务net start mysql2.进入mysql环境中&#xff0c;由于自己没有设置密码&#xff0c;直接回车进入即可(要将bin加入到环境变量path中)mysql -u root -p3.创建一个数据库create database db_test default character set utf8 collate utf8_general_ci;显示数据库&am…

关于程序员的脑筋急转弯(附答案)

1、程序猿最常去的是哪间酒吧&#xff1f;2、程序猿什么情况下会选择离职&#xff1f;3、0是假&#xff0c;1是真&#xff0c;请问这是真还是假&#xff1f;4、你怎样才能知道一个计算机科学家是内向还是外向的&#xff1f;5、为什么大部分Java程序员都是戴眼镜的&#xff1f;6…

怎么确保一个集合不能被修改

集合&#xff08;map,set,list&#xff09;都是引用类型&#xff0c;所以我们如果用final修饰的话&#xff0c;集合里面的内容还是可以修改的。 可以使用 Collections. unmodifiableCollection(Collection c) 方法来创建一个只读集合&#xff0c;这样改变集合的任何操作都会抛…

以下十种性格的人不适合做程序员,你​赞同吗? ​

目录 1. 宁愿参加培训&#xff0c;也不愿意自学 2. 喜欢正常的上下班时间 3. 喜欢正常加薪而不是跳槽 4. 无法和同事和睦共处 5. 容易垂头丧气 6. 思想保守&#xff0c;不考虑他人建议 7. 不注重细节 8. 没有工作荣誉感 9. 不能做到三思而后行 10. 不喜欢极客类型的人 以下十种…

Iterator与ListIterator有什么区别

Iterator与ListIterator区别如下&#xff1a; 1、Iterator是ListIterator的父接口。 2、Iterator是单列集合(Collection)公共取出容器中元素的方式。 对于List&#xff0c;Set都通用。 而ListIterator是List集合的特有取出元素方式。 3、Iterator中具备的功能只有hashNext(),ne…

IT行业17条经典语录

1. 手表定律&#xff1a;一个人有一只表时&#xff0c;可以知道现在是几点钟&#xff0c;当他拥有两只表时&#xff0c;却无法确定。所以&#xff0c;对于任何一件事情&#xff0c;不能同时设置两个不同的目标&#xff1b;对于一个人&#xff0c;也不能同时选择两种不同的价值…

mysql_install_db卸载_MySQL数据库的卸载与安装

MySQL数据库的卸载与安装MySQL的完全卸载因为不知道什么原因&#xff0c;电脑里同时存在两个版本的mysql&#xff0c;所以决定卸载重新安装&#xff0c;但是大家都说MySQL很难清除干净&#xff0c;所以特地查找完全卸载MySQL的方法。首先&#xff0c;快捷键winr输入regedit进入…

前端:QuickJS到底能干什么

QuickJS 是一个轻量且可嵌入的 JavaScript 引擎&#xff0c;它支持 ES2019 规范&#xff0c;包括 ES module、异步生成器以及 proxies。除此之外&#xff0c;还支持可选的数学扩展&#xff0c;例如大整数(BigInt)、大浮点数(BigFloat)和运算符重载。主要特点&#xff1a;轻量而…

随机存取是什么意思_手机小白必看!12GB+256GB,同样是GB,它们到底有什么不同?...

导语本文适合对电子产品有深度兴趣的小白&#xff0c;详细介绍了信息世界的数据计量单位&#xff0c;以及RAM与ROM的&#xff0c;文末给出了购机建议&#xff0c;建议不了解手机或者说半懂的同学观看。看完如果您觉得还可以的话&#xff0c;点赞关注&#xff0c;给小编一个鼓励…

ES6 解构赋值的用法笔记

1、概念&#xff1a;解构赋值可以理解为对赋值运算符的一种扩展。它主要针对数组或者对象进行模式匹配&#xff0c;然后对模式中的变量进行赋值。2、特性&#xff1a;采用ES6解构赋值的方式可以代码的可读性更高、代码书写更加简洁、清晰。3、解构模型&#xff1a;分为解构源、…

收集12个经典的程序员段子

1bug 跟蚊子的相似之处&#xff1a;1、不知道藏在哪里。2、不知道有多少。3、总是在你即将睡觉休息的时候出现。2A&#xff1a;最近在看《一拳超人》&#xff0c;觉得咱们程序猿跟埼玉老师有点像啊&#xff01;B&#xff1a;哪里像了&#xff1f;A&#xff1a;越秃越强&#xf…

2020mysql安装教程_2020MySQL安装图文教程

MySQL安装图文教程(Windows10)1、MySQL下载可以去MySQL官网下载&#xff0c;或者在我提供的百度云链接下载。官网下载网速较慢&#xff0c;我从官网下载了将近四个小时&#xff0c;然后把下载好的放在了百度网盘&#xff0c;需要的而已自取。MySQL官网地址&#xff1a;MySQL官网…

说一下 runnable 和 callable 有什么区别?

主要区别 Runnable 接口 run 方法无返回值&#xff1b;Callable 接口 call 方法有返回值&#xff0c;支持泛型Runnable 接口 run 方法只能抛出运行时异常&#xff0c;且无法捕获处理&#xff1b;Callable 接口 call 方法允许抛出异常&#xff0c;可以获取异常信息 Runnable Ca…

几种常见的光纤接头(ST,SC,LC,FC)以及PC、APC和UPC的区别

一、几种常见的光纤接头(ST,SC,LC,FC)FC型光纤连接器&#xff1a;外部加强方式是采用金属套&#xff0c;紧固方式为螺丝扣。 一般在ODF侧采用(配线架上用的最多)SC型光纤连接器&#xff1a;连接GBIC光模块或普通光纤收发器的连接器&#xff0c;它的外壳呈矩形&#xff0c;紧固方…

python开发客户端_python用700行代码实现http客户端

本文用python在TCP的基础上实现一个HTTP客户端, 该客户端能够复用TCP连接, 使用HTTP1.1协议.一. 创建HTTP请求HTTP是基于TCP连接的, 它的请求报文格式如下:因此, 我们只需要创建一个到服务器的TCP连接, 然后按照上面的格式写好报文并发给服务器, 就实现了一个HTTP请求.1. HTTPC…

家里网线的接法和顺序

对于网线&#xff0c;大伙都熟悉吧&#xff0c;它是电脑连接时必不可少的一种设备。但是许多网友却和小编一样&#xff0c;不知道如何连接网线&#xff0c;导致电脑无法上网&#xff0c;下面我们就来详细介绍一下&#xff1a;如何接网线以及家里网线的接法和顺序&#xff1f;希…

String str=Hello 与 String str=new String(“Hello”)一样吗?

为什么会输出上边的结果呢&#xff0c;String x "Hello" 的方式&#xff0c;Java 虚拟机会将其分配到常量池中&#xff0c;而常量池中没有重复的元素&#xff0c;比如当执行“Hello”时&#xff0c;java虚拟机会先在常量池中检索是否已经有“Hello”,如果有那么就将…

盘点程序员最喜欢的15个网站

程序员作为一个经常和互联网打交道的人群&#xff0c;他们喜欢浏览哪些网站呢&#xff1f;不爱敲代码的程序猿整理了以下网站供大家参考&#xff0c;排名不分先后&#xff1a; 0. Google https://google.com 这个不用多说了吧。 1.GitHub 开发者最最最重要的网站&#xff1a;h…