.NET Core入门程序及命令行练习
用命令行一步一步新建项目、添加Package、Restore、Build、Run 执行的实现方式,更让容易让我们了解.NET Core的运行机制。
准备工作
- 安装.NET Core 运行环境,下载地址:https://www.microsoft.com/net/download
- 安装Notepad2替代notepad,Notepad2可以识别代码、以不同的颜色进行区分,下载地址:http://www.flos-freeware.ch/notepad2.html
- 了解几个cmd命令:
| C: | 打开C盘 | md supermva | 创建supermva文件夹 |
| color a | 命令行颜色改为绿色(更有逼格一些) | cd supermva | 打开supermva文件夹 |
| cls | 清除命令行 | dir | 查看文件目录 |
| cd.. | 返回上级目录 | notepad | 直接打开notepad |
| cd\ | 返回到跟目录 | Tab | 自动补全功能 |
| F7 | 查看历史命令 | exit | 退出cmd |
Dotnet Core信息
dotnet.exe是.NET Core SDK为我们提供的一个重要的命令行工具,我们在进行.NET Core应用的开发部署的时候将会频繁地使用它。dotnet.exe提供了很多有用的命令。
dotnet 查看已安装的dotnet信息
dotnet --version 查看dotnet版本
dotnet --help 查看dotnet命令帮助
创建Console程序
1)以下步骤实现了Console输出“Hello World”,也就相当于我们在VS中 创建控制台应用程序 → 还原Nuget包 → Build → 运行
- >md HelloWorld 创建HelloWorld 文件夹,
- >cd HelloWorld 定位到HelloWorld 文件夹
- >dir 查看文件夹内容(此时为空)
- >dotnet new 查看创建dotnet程序的说明和例子
- >dotnet new console 创建Console应用程序,supermva目录下生成了:Program.cs , supermva.csproj
- >notepad Program.cs 打开Program.cs文件,看到Main方法中输出了“Hello World”
- >notepad HelloWorld.csproj 打开.csproj项目文件,看到程序的基本属性:TargetFramework
- >dotnet restore 还原Nuget包
- >dotnet build 编译
- >dotnet run 运行程序,【该命令会自动触发编译操作,第9步可以省略】,Console输出"Hello World"
2) 可以修改代码,然后直接 dotnet run
3) 程序说明
.csproj项目文件:
对于传统的.NET Framework应用来说,即使是一个空的C#项目,定义该项目的.csproj文件在内容和结构上显得比较复杂。这个.csproj文件的结构并不是为一般的开发者设计的,我们也不会直接编辑这个文件,而是利用Visual Studio间接地修改它。但是对于一个.NET Core应用来说,这个.csproj文件的结构变得相对简单并清晰了一些,以至于一般的开发人员可以直接编辑它。对于上面我们执行脚手架命令创建的控制台程序,定义项目的这个helloworld.csproj文件的完整内容如下。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
</Project>
如上面的代码片段所示,这个helloworld.csproj是一个根节点为<Project>的XML文件,与项目相关的属性可以根据分组定义在相应的<PropertyGroup>节点下。对于这个helloworld.csproj文件来说,它实际上只定义了两个属性,分别是通过<OutputType>和<TargetFramework>节点表示的编译输出类型和目标框架类型。由于我们创建的是一个针对.NET Core 2.0的可执行控制台应用,所以目标框架为“netcoreapp2.0”,编译输出为Exe(对于Self Contained发布模式)。
dotnet build 编译:
默认采用Debug编译模式,所以编译生成的程序集(helloworld.dll)会保存在\bin\debug\目录下。除此之外,针对不同目标框架编译生成的程序集是不同的,所以最终生成的程序集会采用基于目标框架的目录结构进行组织,所以最终生成的这个程序集被保存在“\bin\Debug\netcoreapp2.0\”目录下。
包安装:
当我们安装了.NET Core SDK的时候,这些针对项目的SDK将被安装在“%programfiles% \dotnet\sdk\{version}\Sdks”
创建Web Application
web应用中,也就是用户向服务器发出HTTP请求,服务器响应然后返回给用户请求结果。
步骤同上,新建一个HelloWorld文件夹
1、dotnet new web
会自动生成以下文件

wwwroot 文件夹
包含静态文件,如 HTML 文件、JavaScript 文件和 CSS 文件。 有关详细信息,请参阅 ASP.NET Core 中的静态文件。
Program.cs
包含程序的入口点。 有关详细信息,请参阅 .NET 通用主机。
Startup.cs
包含配置应用行为的代码,例如,是否需要同意 cookie。 有关详细信息,请参阅 ASP.NET Core 中的应用启动。
namespace HelloWorld
{
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
} public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
}
一个ASP.NET Core应用构建在ASP.NET Core框架之上,后者利用一个管道式的构建完成了对HTTP请求的监听、接收、处理和最终的响应。ASP.NET Core管道由一个服务器和若干中间件构成,当宿主(Host)程序启动之后,该管道被成功构建出来并利用服务器开始HTTP请求的监听。
从编程层面来看,ASP.NET Core管道的构建主要涉及WebHost和WebHostBuilder这两个对象。我们可以根据命名将WebHost理解为Web应用的宿主,WebHost是由WebHostBuilder构建出来的。一般来说,我们会先创建一个WebHostBuilder对象,并将最终管道构建所需的各项设置通过相应的方法(绝大部分是扩展方法)注册到它上面。注册完成之后,我们直接利用这个WebHostBuilder创建出对应的WebHost,当后者被启动的时候,整个管道会根据我们预定义的设置被构建出来。
2、运行 dotnet run
打开浏览器:http://localhost:5000/
创建MVC
步骤同上,新建一个HelloWorld文件夹
1、dotnet new mvc
会自动生成以下文件,

2、运行 dotnet run
打开浏览器:http://localhost:5000/
.NET Core入门程序及命令行练习的更多相关文章
- .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门
2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...
- NET Core 环境搭建和命令行CLI入门
NET Core 环境搭建和命令行CLI入门 2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文 ...
- NET Core 环境搭建和命令行CLI入门[转]
NET Core 环境搭建和命令行CLI入门 时间:2016-07-06 01:48:19 阅读:258 评论:0 收藏:0 [点我收藏+] 标签: N ...
- C# 控制台程序(命令行程序)设置字体颜色,窗口宽高,光标行数
控制台程序(命令行程序)设置窗口宽度高度,如下代码: Console.WriteLine(Console.WindowHeight); Console.WriteLine(Console.Buffer ...
- 让.Net程序支持命令行启动
很多时候,我们需要让程序支持命令行启动,这个时候则需要一个命令行解析器,由于.Net BCL并没有内置命令行解析库,因此需要我们自己实现一个.对于简单的参数来说,自己写一个字符串比较函数来分析args ...
- 给go程序添加命令行参数
操作系统: CentOS 6.9_x64 go语言版本: 1.8.3 问题描述 需要应用程序根据不同的配置文件访问不同的服务器,希望程序启动时可以指定配置文件. 解决方案 package main i ...
- Win32程序支持命令行参数的做法(转载)
转载:http://www.cnblogs.com/lanzhi/p/6470406.html 转载:http://blog.csdn.net/kelsel/article/details/52759 ...
- Win32程序支持命令行参数的做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 首先说说Win 32 API程序如何支持命令行参数.Win 32程序的入口函数为: int APIENTRY _tWi ...
- 01-JAVA语言基础——课程作业1—编写一个程序,此程序从命令行接收多个数字,求和之后输出结果。
1.题目:编写一个程序,此程序从命令行接收多个数字,求和之后输出结果. 2.程序设计思想: 通过运行配置输入数字后,其保存类型为String类型,因此需要采用Integer.valueOf(arg)将 ...
随机推荐
- 用python批量添加保护站点
最近在测试的过程中,由于一个bug的复现需要添加1600个保护站点,手工添加谁知到要何年何月,因此想到了用python进行自动化批量添加保护站点! 具体代码如下: #!/usr/bin/env pyt ...
- KEPServerEX 6 配置连接 Allen-Bradley MicroLogix 1400
=============================================== 2019/7/28_第1次修改 ccb_warlock == ...
- C# vb .net实现颜色替换效果滤镜
在.net中,如何简单快捷地实现Photoshop滤镜组中的颜色替换效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第 ...
- sqlserver还原差异备份
因为之前遇到还原差异备份,最开始遇到SQLServer报错:"无法还原日志备份或差异备份,因为没有文件可用于前滚".查阅很多资料后,终于得到解决.收集整理成这篇随笔. 问题原因:出 ...
- html解决空格显示问题
在前端里面,大家都知道,html中输入空格或换行是识别不了是空格的,但是有时候需要实现,那么该如何解决呢?主要有以下几个方面: 1:常用的转义: 2:使用全角拼音,然后输入空格也可实现 3:用标签 ...
- Position定位相关知识了解
一.定位 position属性 1.默认定位: position:static; 元素框正常生成.块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其 ...
- Java 之 Servlet的urlPartten
Servlet 的 urlpartten urlpartten:Servlet 访问路径 1.一个 Servlet 可以定义多个访问路径,在使用@WebServlet注解时,可以发现里面的 urlpa ...
- Newtonsoft.Json.Linq.JObject 遍历验证每个属性内容
业务需求,拦截器验证每个请求inputstream(实际是application/json流)的数据,但是json反序列化实体格式不同. var req = filterContext.Request ...
- 基于Text-CNN模型的中文文本分类实战
Text-CNN 1.文本分类 转眼学生生涯就结束了,在家待就业期间正好有一段空闲期,可以对曾经感兴趣的一些知识点进行总结. 本文介绍NLP中文本分类任务中核心流程进行了系统的介绍,文末给出一个基于T ...
- 【Python】异常
捕获异常 try: num = int(input("请输入一个整数:")) result = 8 / num print(result) except ValueError: p ...