.NET Core 学习资料精选:入门
开源跨平台的.net core,还没上车的赶紧的,来不及解释了……
本系列文章,主要分享一些.net core比较优秀的社区资料和微软官方资料。我进行了知识点归类,让大家可以更清晰的学习.net core。
首先感谢资料原作者的贡献。
第一篇:.net core 学习资料精选:入门
介绍.net历史、开源之路、基础、路由、依赖注入、httpcontext、cookie|session、httpclient、grpc、单元测试、发布部署等等。
第二篇:.net core 学习资料精选:进阶&高级
这是第一篇,知识点如图:
.net 简介
#、.net 开源之路
2014.11月 .net core 项目启动,2016.06月 .net core 1.0 发布
#、.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安装
安装 .net core runtime 和.net core sdk
【微软官方文档】asp.net core *.* 个版本新特性
[坑]安装 .net core 2.2 sdk后,vs2017依然不能设置core2.2为目标框架
基础
.net core 运行程序注意事项(dotnet dll 与 dotnet run)
asp.net core 中使用多个环境(开发、预发布、生产)- 默认为 production
asp.net core 动作结果(actionresult)
asp.net core 中控制器操作的多路径返回类型(iactionresult)
.net core 3.0 新的system.text.jsonapi
配置
asp.net core 中的配置(json、xml、命令行、环境变量、内存变量等)
.net core 自定义配置源从远程api读取配置(configurationprovider)
路由、模型绑定
asp.net core webapi中,controller标注 [apicontroller] 特性,其路由只能使用[route]特性方式
asp.net core mvc 构建可读性更高的asp.net core 路由
asp.net core 中的自定义模型绑定(imodelbinder)
依赖注入(ioc、di)
什么是控制反转,和依赖注入:
控制反转的意思就是:平常我们需要一个类对象的时候需要new出来,而现在我们把new一个类对象的工作交给了ioc容器,当我们需要一个类对象的时候直接向ioc容器要,就可以了,这个就是控制反转。(控制权交个了ioc容器)
依赖注入的意思就是:当我需要一个类对象,ioc容器给我们这个类对象的过程其实就是依赖注入,依赖注入有构造函数注入和属性注入。
官方推荐通过构造函数。这也是所谓的显式依赖。asp.net core 的标准依赖注入容器不支持属性注入。(可以使用autofac或者其他来实现属性注入)
可以参考 osharp 框架,设计三个全局注入接口,来实现自动化注入:isingletondependency 和 itransientdependency 、 iscopeddependency ( 单例、瞬时、范围)。
案例1:使用nlog时,想根据需要使用不同的配置文件nlog.config 写日志时,就可以使用文章中介绍的 factory 命名注入方案来实现
案例2:使用分布式缓存 idistributedcache 时,想根据需要在一个项目中同时使用redis和sqlserver
asp.net core 中多个接口对应同一个实现的正确姿势
[osharp]使用 iserviceprovider.getservice<t>() 实现按需注入,优化性能
#、asp.net core 集合 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:mvc 与 razor pages
asp.net core mvc 静态文件目录配置与访问授权
新的 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 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、缓存、依赖关系注入
#、session
asp.net core 在通用数据保护条例规则下使用 session
#、cookie
asp.net core samesite 设置引起 cookie 在 qq 浏览器中不起作用
[github]asp.net core cookiemanager
通信
#、httpclient
asp.net core httpclient的各种用法、生命周期管理
dotnetcore 使用http请求及基于 polly 的处理故障
dotnetcore 中 httpclientfactory 类源码分析
#、grpc
asp.net core 3.0 上的grpc服务模板初体验(多图)
发布部署
asp.net core 使用supervisor进行托管部署
配置 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# 单元测试
==============================================================================
over,谢谢查阅,觉得文章对你有收获,请多帮推荐。欢迎向我提供更好的资料信息。
上一篇: Object(Asp.NET核心机制内置对象汇总)
下一篇: 开箱即用简单便捷的轻量级开源开发框架