最近项目上开始使用.net core,新的项目,熟悉的东西比较多,如今花点时间来梳理一下,重头开始搭建一个.net core项目。哈哈,这个相对老手来讲,估计会以为小儿科,没事,也就当一次分享总结罢了,但愿对有帮助的小伙伴有点帮助就好。web
环境准备:docker
为了开发.net core,微软已经明确终止.net core 2.2,因此咱们在实际开发中必需要用.net core3.1了吧,为了更好的使用,因此开发环境赶快升级上来:vs总得升级到vs2019了吧,.net core3.1赶忙装上。哈哈,其实想一想也就是这两个环境,不废话,简单搞定就开始撸代码啦。json
第一步:建立一个.net core 项目:服务器
其实建立一个.net core项目仍是很简单的,只要会.net项目的,那就是小儿科,若是刚刚入行,百度也是一大波大波的。下面也简单的来建立一下,供参考:app
按照以下框红的部分选择,继续下一步:框架
填写好项目名称,进入到以下界面,按照匡红选择便可一个.net core 项目的建立微服务
哈哈,是否是以为超级简单,有这个感受那就对啦!!!ui
第二步:简单介绍.net core 项目的目录结构编码
是否是看上去似曾相识的感受,嗯有这个感受就对了,只要会MVC和webform经验的小伙伴感受是否是更明显。上面就是.net core 项目的目录结构,在实际项目开发中,也就是按照这个目录接口进行本身的项目撸代码,好了,今天不说具体的撸代码了。下面简单介绍一下.net 的运行机制吧!url
第三步:简单梳理一下.net core项目的配置文件:
首先.net core 的配置文件都是.json后缀文件,主要由两个配置文件launchSettings.json和appsettings.json
launchSettings.json:简单的说就是项目配置文件,也就是单击项目属性可视化界面对应的json数据文件,里面主要配置一下环境变量等等,其主要仍是为调试须要。
appsettings.json:就是应用内配置,其实简单的说也就是至关于.net项目中的web.config配置文件,这样说是否是就懂啦,哈哈因此很少说了。
第四步:.net core项目启动方式:
,net core项目的启动大概有以下几种方式:
一、直接经过vs,以IIS为宿主进行启动(操做简单)
二、直接经过vs,自宿主启动
三、经过命令行启动
命令行启动其实也有两种方式:
直接经过源码启动:
进入到源码所在目录:执行以下命令便可:
dotnet run --urls "http://*9000"
经过编译文件启动:
进入到编译后的文件所在目录:执行以下命令便可:
dotnet /项目名称.dll --urls "http://*8000;https://*8001;"
四、固然是生成环境中,能够经过各类容器启动,好比:docker等等
第五步:.net core启动端口设置:
经过第四步,不一样方式把程序跑起来,你会发现,不一样的方式其端口也不经相同,那么是哪儿控制了其端口呢?
其实.net core能够经过以下4种方式来时设置程序端口:
环境变量:也就是经过launchSettings.json的以下节点来配置程序端口
硬编码:也就是直接将端口写在代码中,具体怎么操做,下面再说
应用配置:也就是经过appsettings.json的以下节点来配置程序端口
"urls": "http://*:9000"
命令行:这个就是经过命令行启动时的 -urls后队列的地址
以上4种方式的优先级是至上而下逐级升高
第六步:.net core的运行机制
首先梳理一下Program.cs文件的代码逻辑及其功能,有了这个概念后,就清楚了
public static void Main(string[] args) { /// 建立一个主机(配置信息、主机配置信息)->建立、启动 CreateHostBuilder(args).Build().Run(); } /// <summary> /// 建立主机 /// </summary> /// <param name="args"></param> /// <returns></returns> public static IHostBuilder CreateHostBuilder(string[] args) => /// 主机分两类:一类的默认主机(非web主机)、web主机 /// 建立一个默认主机 /// 加载主机配置,加载环境变量,加载命令行参数 /// 加载日志组件、启用IIS集成 Host.CreateDefaultBuilder(args) /// 配置web主机 /// 将kestrel设置为web主机服务器,并进行一些初始化配置 /// 加载前缀为aspnetcore的环境变量 .ConfigureWebHostDefaults(webBuilder => { /// 指定web应用的启动类 webBuilder.UseStartup<Startup>(); /// 修改主机配置项的地址 webBuilder.UseUrls("http://*:7000"); /// 程序的启动端口能够经过以下4种方式来设置: /// 命令行->应用配置->硬编码->环境变量 /// 其中每种设置的优先级是:从左至右逐级递减 /// 其余各类配置 }); }
下面在用一个来形象的描述其运行机制
总结:
哈哈,上面也是简单的总结了一下.net core的建立,固然对于老手来讲,简直就是小菜,哈哈,没事,就当回顾一下。作.net开发,.net core是一个必然的选择,因此还在作基于.net framework 开发的,最好迁移到.net core上来。
.net core 主要有以下一些特色:
跨平台、跨框架、支持命令行、部署灵活、兼容性强、轻量级、开源、微服务支持
说了半天,下面来一张图总结一下.net core 和 .net framework的关系:
END
若是以为还能够的,欢迎扫描公众号分享更改内容