.NET Core 学习资料精选:进阶
2019.09月就要正式发布.NET 3.0了,对于前一篇博文《.NET Core 学习资料精选:入门》大家学的可还开心?这是本系列的第二篇文章:进阶篇,喜欢的园友速度学起来啊。
对于还在使用传统.NET Framework 框架的园友,可以通过《.NET项目迁移到.NET Core操作指南》把需要新生力量的旧项目速度迁移到.NET Core 中
本系列文章,主要分享一些.NET Core比较优秀的社区资料和微软官方资料。我进行了知识点归类,让大家可以更清晰的学习.NET Core。
首先感谢资料原作者的贡献。
第一篇:.NET Core 学习资料精选:入门
介绍.NET历史、开源之路、基础、路由、依赖注入、HttpContext、cookie|session、HttpClient、gRPC、单元测试、发布部署等等。
第二篇:.NET Core 学习资料精选:进阶
介绍.NET工程化、AOP、异常处理、缓存、日志、响应优化、上传下载、健康检查、后台任务、认证和授权、安全性(Https、CORS、CSRF)、EF Core 等等
第三篇:.NET Core 学习资料精选:高级&微服务架构
介绍性能、原理、微服务架构、DDD等知识
这是第二篇,知识点如图:
.NET 工程化
#、StyleCop编码规范
StyleCop规则汇总
在VS2017中使用StyleCop
netcore将StyleCop.Analyzers自定义规则应用到整个解决方案
#、Nuget包
安装NuGet 客户端工具
NuGet.Server
发布包
承载自己的NuGet 源
Nuget管理工具BaGet使用教程
Nuget管理工具FuGet使用教程
#、Swagger Api文档
Swagger 规范 (swagger.json)
Swagger+AutoRest 生成web api客户端(.Net)
Swashbuckle方式
Asp.Net Core 使用Swagger生成API文档并添加API分组
Asp.Net Core 使用Swagger生成API文档并添加文档描述、响应类型描述
NSwag方式
Asp.Net Core 使用NSwag生成Swagger Api文档
AOP面向切面编程
AOP(Aspect-Oriented Programming)是一种将函数的辅助性功能与业务逻辑相分离的编程范式(programming paradigm),其目的是将横切关注点(cross-cutting concerns)分离出来,使得程序具有更高的模块化特性。
AOP体现原则:单一职责原则 和 开放封闭原则
在ASP.NET Core中可使用三种方式实现AOP:中间件Middleware、过滤器Filter、代码织入(静态织入和动态代理)
#、中间件Middleware
中间件就是嵌入到应用管道中用于处理请求和响应的一段代码,ASP.NET Core 中使用了大量的中间件。eg:全局异常、路由、响应缓存、响应压缩、身份认证、CORS、日志记录等等
ASP.NET Core Middleware 的实现(Conventional Middleware 和IMiddleware)
ASP.NET Core Middleware 的实现(Run,Map,Use,内置中间件)
【机翻】 【人工翻译】
#、过滤器Filter
ASP.NET Core 被低估的过滤器
ASP.NET Core MVC Filter的定义、注册和各种Filter执行顺序
#、代码织入
l 编译时静态织入
框架:PostSharp、Fody
特点:[编译型]性能高,缺点是缺乏灵活性
实现思想:给语言的编译器做扩展,使得在编译程序的时候编译器将相应的Aspect代码织入到业务代码的指定连接点,输出整合的结果。
l 运行时动态织入(动态代理)
框架:Castle DynamicProxy,
特点:[运行时动态代理]灵活性高,性能相对“静态织入”低
实现方式:将扩展添加到运行虚拟机而不是编译器。Aspect和业务代码分别独立编译,而在运行时由虚拟机在必要时进行织入。
.Net AOP代码织入介绍
.Net AOP代码织入实现类型及原理(静态、动态、优缺点)
.Net AOP代码织入之《拦截方法》(包含案例:数据事物、多线程)
.Net AOP代码织入之《单元测试切面》
.Net AOP代码织入之《案例:构建一个汽车租赁应用》
演示了清晰的业务代码,因为非功能性需求(eg:logging,防御性编程,事务,重试,和异常处理等)导致代码变得冗长、难懂、不易维护。通过使用AOP来让业务代码重新清晰化
.NET Core 原生DI+AOP实现注解式编程
.NET Core 泛型仓储和声明式事物实现最优雅的crud操作
异常处理
Restful API 中的错误处理设计
ASP.NET Core 应用的错误处理[1]:三种呈现错误页面的方式
使用UseStatusCodePages 根据Status选择处理方式(跳转页面)
ASP.NET Core 自定义ErrorHandlingMiddleware 全局异常捕获
缓存
.NET Core 缓存使用、配置、依赖策略
.NET Core MemoryCache 缓存过期策略(绝对、滑动、依赖、过期回调)
ASP.NET Core 使用分布式缓存(redis、sqlserver)
windows redis安装和设置密码
ASP.NET Core 使用RedLock.net 实现分布式锁
日志
玩转ASP.NET Core 中的日志组件
[github]ASP.NET Core Microsoft.Extensions.Logging 默认log组件
ASP.NET Core 中使用Nlog 记录日志
在ASP.NET Core 中使用Serilog 进行日志记录
ASP.NET Core 中使用log4net 记录日志
分布式日志
.NET Core中使用Exceptionless分布式日志框架
.NET Core 快速搭建Docker-ELK分布式日志中心
响应优化
在ASP.NET Core 中的响应压缩
ASP.NET Core 中使用ResponseCache 响应缓存
上传下载
ASP.NET Core 中的文件上传(IFormFile)、流式处理上传大文件
ASP.NET Core 下载断点续传
健康检查
ASP.NET Core 中的运行状况检查(IHealthCheck)
[github]ASP.NET Core HealthChecks(健康检查,异常webhooks通知)
使用案例:
使用ASP.NET Core实现Docker的HealthCheck指令
Kubernetes liveness and readiness probes using HealthChecks
其他特性
#、对象池ObjectPool
.NET Core 中Object Pool的简单使用
#、WebHooks
ASP.NET Webhook 概述
WebHooks with ASP.NET Core – DropBox and GitHub
后台任务
基础知识
服务宿主是IIS,需要注意IIS的回收策略对后台任务的影响
Cron表达式
cron表达式在线生成
ASP.NET Core 中使用托管服务实现后台任务(后台任务、作用域任务、队列任务)
.NET Core 3.0 创建Windows服务项目(BackgroundService)
使用Topshelf 创建Windows 服务
#、Hangfire(5024 stars)
特点:不需要Windows服务或单独的进程
ASP.NET Core 中使用Hangfire任务管理(含Dashboard)
Hangfire 授权、自定义路由、只读Dashboard、多数据库源、设置主应用
Hangfire 队列任务、计划任务、周期性任务
ASP.NET Core 中使用Hangfire.Redis.StackExchange存储
ASP.NET Core 中Hangfire.Cronos 结合BackgroundService 实现任务调度
使用Hangfire.HttpJob实现调度与业务分离
使用ASP.NET Core和Hangfire实现HTTP异步化方案
#、Quartz.NET(3404 stars)
Quartz.Net几种部署模式(IIS、Exe、服务部署【借助TopSelf、服务类】)
ASP.NET Core2.2+Quartz.Net 实现web定时任务
Quartz.NET 配置文件详解(quartz.config 和quartz_jobs.xml)
----quartz.config可以合并到App.config和Web.config中
quartz.net 3.x版本如何通过xml文件进行Job配置
CrystalQuartz
配置Quartz.NET Cluster以及远程管理(CrystalQuartz)
Quartz.NET 可视化Job管理(CrystalQuartz)
CrystalQuartz 在线 Demo
认证和授权
#、ASP.NET Core Identity身份认证
命名空间:Microsoft.AspNetCore.Identity
ASP.NET Core Identity框架简介
创建完整的ASP.NET Core Identity基架(多图)
ASP.NET Core Identity配置(声明类型、锁定策略、密码策略、登录策略等等)
ASP.NET Core 中注册确认电子邮件和重置密码
ASP.NET Core Identity身份验证支持OAuth2第三方验证提供程序
ASP.NET Core Identity中自定义模型
ASP.NET Core Idendity自定义存储提供程序(Azure表存储、Dapper)
#、基于Cookie的身份认证
命名空间:Microsoft.AspNetCore.Authentication.Cookies
ASP.NET Core中使用Cookie身份验证
ASP.NET Core Cookie身份验证支持OAuth2第三方验证提供程序
#、授权
命名空间:Microsoft.AspNetCore.Authorization
ASP.NET Core 简单授权
ASP.NET Core 基于角色的授权
ASP.NET Core 基于声明的授权
ASP.NET Core 基于策略的授权
ASP.NET Core 自定义授权提供程序
ASP.NET Core web api基于JWT自定义策略授权
#、IdentityServer4 认证授权
[阮一峰]理解OAuth 2.0
[晓晨Master]IdentityServer4 中文文档与实战
[免费视频]IdentityServer教程视频
安全性
检查HTTP Header 是否安全
.NET项目安全设置向导
ASP.NET Core 在强制实施 HTTPS
#、CORS
跨域资源共享CORS 详解
ASP.NET Core 中启用跨域请求 (CORS)
#、CSRF
浅谈CSRF攻击方式
SameSite Cookie,防止CSRF 攻击
ASP.NET Core 防止跨站点请求伪造(XSRF/CSRF) 攻击
ASP.NET Core WebAPI 中防御跨站请求伪造攻击(CSRF)
ASP.NET Core 启用客户端IP 安全列表
EF Core
EF Core 微软官网教程(非常全)
Linq入门详解(Linq to Objects)
3分钟了解数据库事务(ACID、事务隔离级别)
EF Core DbFirst:从数据库生成实体类(反向工程)
EF Core CodeFirst:从实体创建新数据库
EF Core CodeFirst:实体修改后迁移数据库架构
EF Core 启用SQL日志记录
模型配置
EF Core 实体类型、查询类型、数据注解、Fluent API
EF Core 自动生成值配置
EF Core 实体间关系
EF Core 生成跟踪列(eg:CreatedAt,CreatedBy等列)
并发
EF Core 并发检查
EF Core 并发冲突处理
数据查询
EF Core 关联数据加载策略(预先记载、显示加载、延迟加载)
EF Core 跟踪与非跟踪查询
EF Core 全局查询筛选器(软删除、多租户等)
EF Core 使用like 函数实现模糊查询
批量数据操作
[收费]使用Entity Framework Extensions 实现批量增、删、改
[免费]Entity Framework Extensions 提供功能缩减版:EntityFramework-Plus
EF Core 执行SQL语句和存储过程
看完”入门”和”进阶”两篇文章,对.NET Core的常用特性基本是掌握了的。接下来的”高级”篇,会介绍性能、原理、微服务架构、DDD等知识,不过这篇文章会过几个月整理出,中间打算研究一些开源框架,并分享给大家。
原文链接:https://www.cnblogs.com/heyuquan/p/dotnet-advance-learning-resource.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
.NET Core 学习资料精选:进阶相关推荐
- .NET Core 学习资料精选:入门
开源跨平台的.NET Core,还没上车的赶紧的,来不及解释了-- 本系列文章,主要分享一些.NET Core比较优秀的社区资料和微软官方资料.我进行了知识点归类,让大家可以更清晰的学习.NET Co ...
- 自然语言处理与机器学习技术博客、学习资料精选[附网盘地址]
自然语言处理与机器学习技术博客.学习资料精选! 首先,恭喜点开了这篇文章的读者,本文所提供的资料是免费的,小编不卖资料,是赠送资料! 今天咱们的学习社区里有学员提出要推荐一些NLP方面的博客.站点,因 ...
- 来领.NET Core学习资料,7天整理了30多个G(适合各阶段.Net开发者)
干货分享 2020/07/27 大家好,我是CSDN的小黑,2020年的唯一跳槽季,金九银十马上到来,今天这波干货必须学习起来!前后整理了半个月,从零基础到就业,进阶高级开发,走向架构,三阶段核心资料 ...
- React学习资料+css进阶资料总结
# Awesome ## 最佳实践 * [React + Redux 最佳实践](https://github.com/sorrycc/blog/issues/1) * [Redux 最佳实践-译]( ...
- .Net Core 学习资料
官方网站:https://www.microsoft.com/net/core#windows 官方文档:https://docs.asp.net/en/latest/intro.html 中文翻译小 ...
- Flutter学习资料集合(开发必备)
最近整理了下Flutter学习资料,包含了Flutter学习社区.入门学习资料.进阶学习资料.性能优化.面试资料和书籍等资料.在这里推荐给大家,欢迎大家点赞收藏. 废话不多说,先献上Flutter学习 ...
- 人工智能、机器学习、深度学习从入门到进阶学习资料整理
最近整理了下在这里分享给大家,欢迎大家点赞收藏. 学习社区 神力AI(MANA):国内最大的AI代码平台. Learn AI:一个AI学习交流中心. AI研习社:一个专注于AI开发者和学术青年求知求职 ...
- 太赞了!没想到一个Handler还有中高级几种问法,进阶学习资料!
缘起 经过近十年的发展,Android技术优化日新月异,如今Android 10.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS.到了各大厂商手里,改源码.自定义系统, ...
- 2021Java进阶学习资料!java自学宝典pdf下载
一.一面 1小时40几分钟,基本会的被问完了 1.介绍项目,考虑没考虑过服务器挂了怎么办 这里应该是考查系统架构 2.面向对象特性 3.怎么理解多态 4.接口和抽象类的区别 5.说说并发是怎么回事,有 ...
最新文章
- RDKit | 基于随机森林(RF)的机器学习模型预测hERG阻断剂活性
- FPGA跨时钟域处理的三大方法
- IFE JavaScript Task0002-1 小练习1:处理用户输入
- machine learning for hacker记录(3) 贝叶斯分类器
- Php学习准备(环境)
- cif判断字符串相等_leetcode 86 扰乱字符串(c++)
- 如何制作好一个提交按扭---我是个爱折腾的人
- Oracle实例解析:编码与字符集
- WeaveScope-容器监控
- 各种VC9 VC11版本的Apache
- 现代化智能一体化机柜
- 为Onda v820w CH (v1) DualOS平板刷写Remix单系统
- 知犀思维导图,在线免费创作思维导图
- 电脑上没有蓝牙图标找不到了?
- file.exists()方法,明明存在,
- 《算法竞赛入门经典(第2版)》——学习记录
- 【Matlab】Simulink系统仿真(了解)
- 《微观经济学》 第七章
- PHP 按一定比例压缩图片,保持清晰度
- Github标星5.3K,进阶学习工作最全指南
热门文章
- 如何用C#在Excel中生成图表?
- geek_愚蠢的怪胎技巧:在Windows 7中启用秘密的“ How-To Geek”模式
- 连续对焦 auto对焦_如何在Windows 10上使用对焦辅助(请勿打扰模式)
- 如何在Windows 10上设置默认Linux发行版
- facebook 文本分类_如何禁用和自定义Facebook的通知,文本和电子邮件
- javascriptjquery 判断滚动到页面底部
- 计算机安全专家建议:尽快为电脑升级打补丁
- 《版式设计——日本平面设计师参考手册》—第1章应用对象样式
- python引入模块时import与from ... import的区别
- ESXI转HYPER-V,问题接二连三啊(VMDK转VHD)