第一个,net core项目,一起入门 !!!
最近项目上开始使用.net core,新的项目,熟悉的东西比较多,现在花点时间来梳理一下,重头开始搭建一个.net core项目。哈哈,这个相对老手来说,估计会觉得小儿科,没事,也就当一次分享总结罢了,希望对有帮助的小伙伴有点帮助就好。
环境准备:
为了开发.net core,微软已经明确终止.net core 2.2,所以我们在实际开发中必须要用.net core3.1了吧,为了更好的使用,所以开发环境赶快升级上来:vs总得升级到vs2019了吧,.net core3.1赶紧装上。哈哈,其实想想也就是这两个环境,不废话,简单搞定就开始撸代码啦。
第一步:创建一个.net core 项目:
其实创建一个.net core项目还是很简单的,只要会.net项目的,那就是小儿科,如果刚刚入行,百度也是一大波大波的。下面也简单的来创建一下,供参考:
按照如下框红的部分选择,继续下一步:
填写好项目名称,进入到如下界面,按照匡红选择即可一个.net core 项目的创建
哈哈,是不是觉得超级简单,有这个感觉那就对啦!!!
第二步:简单介绍.net core 项目的目录结构
是不是看上去似曾相识的感觉,嗯有这个感觉就对了,只要会MVC和webform经验的小伙伴感觉是不是更明显。上面就是.net core 项目的目录结构,在实际项目开发中,也就是按照这个目录接口进行自己的项目撸代码,好了,今天不说具体的撸代码了。下面简单介绍一下.net 的运行机制吧!
第三步:简单梳理一下.net core项目的配置文件:
首先.net core 的配置文件都是.json后缀文件,主要由两个配置文件launchSettings.json和appsettings.json
launchSettings.json:简单的说就是项目配置文件,也就是单击项目属性可视化界面对应的json数据文件,里面主要配置一下环境变量等等,其主要还是为调试需要。
appsettings.json:就是应用内配置,其实简单的说也就是相当于.net项目中的web.config配置文件,这样说是不是就懂啦,哈哈所以不多说了。
第四步:.net core项目启动方式:
,net core项目的启动大概有如下几种方式:
1、直接通过vs,以IIS为宿主进行启动(操作简单)
2、直接通过vs,自宿主启动
3、通过命令行启动
命令行启动其实也有两种方式:
直接通过源码启动:
进入到源码所在目录:执行如下命令即可:
dotnet run --urls "http://*9000"
通过编译文件启动:
进入到编译后的文件所在目录:执行如下命令即可:
dotnet /项目名称.dll --urls "http://*8000;https://*8001;"
4、当然是生成环境中,可以通过各种容器启动,比如: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的关系:
明天会继续和大家分享.net core中的依赖注入相关的知识,感觉大家关注与分享!!

第一个,net core项目,一起入门 !!!的更多相关文章
- ASP.NET Core系列(二):创建第一个.Net Core 项目
前面讲过 .NET Core简介及开发环境安装,本章会讲一讲ASP.NET Core 2.0的项目结构,查看完整的ASP.NET Core系列文章:https://www.cnblogs.com/zh ...
- 《ASP.NET Core项目开发实战入门》带你走进ASP.NET Core开发
<ASP.NET Core项目开发实战入门>从基础到实际项目开发部署带你走进ASP.NET Core开发. ASP.NET Core项目开发实战入门是基于ASP.NET Core 3.1 ...
- .NET Core项目从xproj+project.json向csproj迁移简介
3月7日,微软发布了Visual Studio 2017 RTM,与之一起发布的还有.NET Core Runtime 1.1.0以及.NET Core SDK 1.0.0,尽管这些并不是最新版,但也 ...
- .Net Core 项目中添加统一的XSS攻击防御过滤器
一.前言 最近公司内部在对系统的安全进行培训,刚好目前手里的一个.net core 项目中需要增加预防xss的攻击,本文将大概介绍下何为XSS攻击以及在项目中如何统一的预防XSS攻击. 二.XSS简介 ...
- Jenkins 结合 Docker 为 .NET Core 项目实现低配版的 CI&CD
随着项目的不断增多,最开始单体项目手动执行 docker build 命令,手动发布项目就不再适用了.一两个项目可能还吃得消,10 多个项目每天让你构建一次还是够呛.即便你的项目少,每次花费在发布上面 ...
- ASP.NET Core 1.0 入门——了解一个空项目
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- .NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)
一.前言 本篇开发环境?1.操作系统: Windows 10 X642.SDK: .NET Core 2.0 Preview 二.安装 .NET Core SDK 1.下载 .NET Core下载地址 ...
- .NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)
一.前言 本篇开发环境?1.操作系统:CentOS7(因为ken比较偏爱CentOS7)2.SDK版本:.NET Core 2.0 Preview 你可能需要的前置知识1.了解如何通过Hyper-V安 ...
- 《ASP.NET Core应用开发入门教程》与《ASP.NET Core 应用开发项目实战》正式出版
“全书之写印,实系初稿.有时公私琐务猬集,每写一句,三搁其笔:有时兴会淋漓,走笔疾书,絮絮不休:有时意趣萧索,执笔木坐,草草而止.每写一段,自助覆阅,辄摇其首,觉有大不妥者,即贴补重书,故剪刀浆糊乃不 ...
随机推荐
- Nginx location配置 正则表达式
一. location 的匹配符 Syntax: location [ = | ~ | ~* | ^~ ] uri { ... }location @name { ... } 1. 语法格式 ...
- HSRP 详解
简介 HSRP(Hot Standby Router Protocol 热备份路由器协议)是Cisco的专有协议.HSRP把多台路由器组成一个“热备份组”,形成一个虚拟路由器.这个组内只有一个路由器是 ...
- 计算机网络 From Mr.Liu
引言 本博客摘自Mr.Liu,原帖请点击这里. 感谢Mr.Liu,这个文章很充分的描述了计算机网络的核心知识点. 我还在学习中,所以没有进行自己的转述.图片因为是copy代码而没有获得,想看更详尽的, ...
- 解决掉你心中 js function与Function的关系的疑问
前言 在网上有很多关于js function 与 Function直接关系的文章. 但是我感觉过于抽象化了,那么如何是具体化的解释? 正文部分为个人理解部分,如有不对望指出. 正文 <scrip ...
- RabbitMQ安装(发生系统错误5。拒绝访问。发生系统错误1067。进程意外终止。)
RabbitMQ安装步骤(windows) 1.RabbitMQ建立在强大的Erlang OTP平台上,因此我们首先需要安装Erlang. 2.接下来安装RabbitMQ服务rabbitmq-serv ...
- java自学:从零基础到入门系列--java环境变量的配置JDK的下载安装图解
一.首先去官网下载 Java 语言的软件开发工具包–JDK,下载JDK8即可,下载地址为:https://www.oracle.com/technetwork/java/javase/download ...
- VUE路径问题
import: html文件中,通过script标签引入js文件. 而vue中,通过import xxx from xxx路径的方式导入文件,不光可以导入js文件. "xxx"指的 ...
- PHP-CMS代码审计(4)
这次找了个发卡平台,url: https://files.cnblogs.com/files/b1gstar/kamiphp.zip 从52破解上下载的 : 先把网站搭建起来. 网站没有采用mvc框 ...
- JavaScript自学笔记(3)--- 用JS来实现网页浮窗
最近做个小项目,给网页加个浮窗,考验了基础的css,js技术,还是蛮有意思的,代码如下(部分代码来源于引用,见底部) <!DOCTYPE html> <html> <he ...
- 纪中21日c组T2 2117. 【2016-12-30普及组模拟】台风
2117. 台风 (File IO): input:storm.in output:storm.out 时间限制: 1000 ms 空间限制: 262144 KB 具体限制 Goto Proble ...