net core 2.0快速入门笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
core2.0默认教学计划-基础入门篇笔记
------------又名七日速成
本笔记是个人学习期间整理,因水平有限,不对之处敬请指教!
教程分初级篇、高级篇。本文都是基于该视频教程整理,这是基础篇,购买高级篇的基础篇自动就可以看了,不需要单独购买基础篇,付费后会邀请加入微信讨论群,像张善友等大佬都在其中。视频地址在文末。
第1章: 介绍与引入
任务1:课程介绍
任务2:环境安装
VS2017 + Core 2.0
任务3:在控制台创建 Core应用程序
控制台下创建 Core应用程序的常用命令学习
任务4:在VS2017中创建 Core应用程序
略。
任务5:部署到IIS
IIS环境配置。
任务6:准备CentOS和Nginx环境
虚拟机安装CentOS,安装网卡、Nginx,开启http、https,开启80端口命令。
任务7:在CentOS上安装.NET Core运行时
微软文档:https:///net/learn/get-started/windows#create
任务8:部署到CentOS
FTP上传至服务器;Nginx 80端口映射至.NET Core的端口,如5000端口,实现转发。
第2章: 配置管理
任务9:配置介绍
任务10:命令行配置
1.VS2017创建控制台应用程序
2.NuGet引用microsoft.aspnetcore.all程序包
ing 命名空间,定义builder,拿到configuration
4.修改程序,使用默认值
5.运行示例:程序目录>dotnet CommandLineSample.dll name=jim age=22
任务11: Json文件配置(控制台示例)
1.建立class.json文件
2.路径问题需要修改一下class.json文件属性,确保编译时拷贝到编译目录中。
3..AddJsonFile("class.json");
4.注意数组的的读取方法
任务12: Bind读取配置到C#实例(MVC架构实现)
通过Bind方法将.json配置文件内容映射(赋值)到.class实体类
1.类
2.Json文件
3.program文件中WebHost.CreateDefaultBuilder(args)语句自动将settings.json文件加
入到配置池中。
4.Startup
构造函数
输出
任务13:在Core Mvc中使用Options
通过Options将.json配置文件内容映射(自动匹配)到.class实体类
1.建立MVC架构,如Controllers、Views等文件夹
2.创建控制器、视图页
控制器依赖注入
视图页调用
3.将配置文件数据匹配到实体
4.引入中间件services.AddMvc();默认路由eMvcWithDefaultRoute();
任务14:配置的热更新
热更新:即修改相关配置文件(如appsettings.json等)不需要重新启动应用程序就能读取到最新的配置信息。
热更新默认是开启的,但是要将Ioptions替换为IoptionsSnapshot后才能读取到最新配置信息。
public HomeController(IOptionsSnapshot
在控制台应用程序中,Add方法(如AddJsonFile等)的第三个参数默认值为true,即启用热更新功能。
MVC中关闭默认热更新的方法,修改Program.cs文件,如下:
任务15:配置框架设计浅析
1.创建:配置建造器(ConfigurationBuilder)
2.准备source(json,内存,xml等等)
3.将source资源指针(文件名)添加到ConfigurationBuilder,此时只是将所需的资
源罗列给配置建造器(ConfigurationBuilder),并未真正加载。
builder.Add(“source”)
4.实例化配置文件:var configruation=builder.Builder()
将所有source内容加载到运行时的配置文件中configruation
5.获取配置文件中的数据内容。
✓configruation[“key”]或数组configuration["Students:0:name"] //直接使用✓services.Configure
✓Configuration.Bind(myclass)//Bind方法
现有Source及支持驱动,如果需要自定义,必须继承相应的接口去实现。
第3章: 依赖注入
任务16:介绍
简易理解:
来自: https:///question/32108444
https:///coderder/article/details/51897721
背景:需求发生变化的时候,代码是肯定需要改动的,那么怎么改,改哪里就
有技巧了。使用依赖注入的方式可以保证代码的改动压缩在最小的范围之内。这大概
就是DI出现的原因。
概念:依赖注入(Dependency Injection)是用于实现控制反转(Inversion of Control)的最常见的方式之一。(要注意的是,依赖注入只是控制反转的一种实现方式。控制反转还有一种常见的实现方式称为依赖查找。)
依赖注入(DI)和控制反转(IOC)基本是一个意思,因为说起来谁都离不开谁。
解析:简单来说,A依赖B,但A不控制(A的代码段不会出现)B的创建和销毁,仅使用B,那么B的控制权交给A之外处理,这叫控制反转(IOC)。
而A要依赖B,必然要使用B的instance(实例),那么
✓通过A的接口,把B传入;
✓通过A的构造,把B传入;
✓通过设置A的属性,把B传入;
这个传入过程叫依赖注入(DI)。
那么什么是IOC Container?(IOC容器)
随着DI的频繁使用,要实现IOC,会有很多重复代码,甚至随着技术的发展,有更多新的实现方法和方案,那么有人就把这些实现IOC的代码打包成组件或框架,
来避免人们重复造轮子。所以实现IOC的组件或者框架,我们可以叫它IOC Container。
视频作者文章:/2017/11/06/di-in-aspnetcore/
视频作者文章精要:
✧一个设计原则:依赖于抽象,而不是具体的实现。