用命令行一步一步新建项目、添加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 文件夹
ASP.NET Core 中的静态文件。
Program.cs
.NET 通用主机。
Startup.cs
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>(); } }