.NET Core 是开放源代码的通用开发平台 (是一个“平台”),基于这个开放平台我们可以开发像ASP.NET Core应用程序, Windows 10 通用 Windows 平台 (UWP),Tizen等等,而我们系列教程就是用.NET Core开发ASP.NET Core应用程序。而且由 Microsoft官方团队 和 .NET社区成员共同在 GitHub 上进行维护。 它跨平台(支持 Windows、macOS 和 Linux),并且可用于生成设备、云和 IoT 应用程序。
.NET Core 还具有以下特性:
跨平台: 可以在 Windows、macOS 和 Linux 操作系统上运行。
跨体系结构保持一致: 在多个体系结构(包括 x64、x86 和 ARM)上以相同的行为运行代码。
命令行工具: 包括用于本地开发和持续集成方案中的易于使用的命令行工具。
部署灵活: 可以包含在应用或已安装的并行用户或计算机范围中。 可搭配 Docker 容器使用。
兼容性:.NET Core 通过 .NET Standard与 .NET Framework、Xamarin 和 Mono 兼容。
开放源:.NET Core 是一个开放源平台,使用 MIT 和 Apache 2 许可证。 .NET Core 是一个 .NET Foundation 项目。
由 Microsoft 支持:.NET Core背后依托强大的Microsoft团队 进行维护。
.NET Core 包括.NET Core Runtime 和 .NET Core SDK:
.NET Core = 应用运行依赖的 .NET Core Runtime
.NET Core SDK = 使用.NET Core开发应用.NET Core Runtime 和 SDK+CLI(Software Development Kit/Command Line Interface) 工具
下载地址请到dotnet官方网站dot.net (dot dot net),非常的好记,这个网站也是你入门学.NET Core的入口网站,记住这是个必须要去网站。.NET Core 下载的具体地址:https://www.microsoft.com/net/download#core,这里还列出了注意事项:
虽然.NET Core Runtime 和基础库已经1.0 RTM,但是开发工具链(.NET Core CLI,Visual studio 和Visual Studio Code) 还是预览版,具体可以参看https://blogs.msdn.microsoft.com/dotnet/2016/05/06/net-core-rc2-improvements-schedule-and-roadmap/
在Windows Servers上部署应用 ,可以单独安装ASP.NET Core Module for IIS 而不需要安装.NET Core runtime,可以通过命令行DotNetCore.1.0.0-WindowsHosting.exe OPT_INSTALL_REDIST=0
Mac 系统的最低要求是macOS 10.11 (El Capitan)
.NET Core 在Red Hat 系列服务器上支持的要 RHEL 7 Server,包括CentOS 7 以上,具体参看 https://access.redhat.com/documentation/en/dot-net-core/
.NET Core 在Ubuntu上面的支持 需要 Ubuntu 14.04 LTS 和 Ubuntu 16.04 LTS
如果之前安装了.NET Core的beta,rc1,rc2的版本,在安装之前需要把他们卸载掉,具体参见 stack overflow 的文章。
dotnet restore命令使用NuGet还原在项目文件project.json 中定义的依赖关系和项目特定的工具。
[root@Mono ~]# dotnet restore --help
Usage: nuget3 restore [arguments] [options]
Options:
-h|–help Show help information
–force-english-output Forces the application to run using an invariant, English-based culture.
-s|–source Specifies a NuGet package source to use during the restore.
–packages Directory to install packages in.
–disable-parallel Disables restoring multiple projects in parallel.
-f|–fallbacksource A list of packages sources to use as a fallback.
–configfile The NuGet configuration file to use.
正如你可以看到从"用法:"上面的一行,还原命令只调用到 nuget3 可执行程序,通常您不需要修改这些选项,如果您使用的自定义软件包源,要么因为您正在使用预发布版本的 Microsoft 库或您的组织使用其自己的软件包源,您可能需要指定使用-s 参数的软件包源。
运行 dotnet 还原生成一个锁文件 (project.json.lock),其中包括有关所有被恢复的软件包的详细的信息。
dotnet build命令会把项目和他所依赖的项目编译成一个二进制文件,默认情况下二进制文件是Intermediate Language (IL) 和.dll 为文件扩展名。编译过程依赖于已经存在锁文件(project.json.lock),这是restore命令生成的。
为了生成一个可执行的应用程序,您需要确保该项目配置的编译选项设置应用的入口点︰
“buildOptions”: {
“emitEntryPoint”: true
},
运行命令可以看到使用方法:
dotnet build --help
.NET Builder
大多数情况下,你都是跳过上面的restore,build,直接使用dotnet run命令来运行程序,无论是否修改了应用程序,都是重新编译生成应用并运行。
dotnet run [-a|--arch <ARCHITECTURE>] [-c|--configuration <CONFIGURATION>]
[-f|--framework <FRAMEWORK>] [--force] [--interactive]
[--launch-profile <NAME>] [--no-build]
[--no-dependencies] [--no-launch-profile] [--no-restore]
[--os <OS>] [--project <PATH>] [-r|--runtime <RUNTIME_IDENTIFIER>]
[-v|--verbosity <LEVEL>] [[--] [application arguments]]
dotnet run -h|--help
使用提供的 framework 来运行,这个 framework 就是对应project.json文件中的 frameworks 节点
-c, --configuration [Debug|Release]
配置使用的环境是 Debug 还是 Release,默认为 Debug 模式。
-p, --project [PATH]
指定要运行的项目,它可以是project.json的文件路径,可以是包含project.json的路径,如果没有指定,默认是当前路径。
dotnet pack命令编译项目并生成NuGet包,该操作会生成两个NuGet程序包:
一个包括已编译代码的程序集文件
一个包括调试符号和已编译代码的程序集文件
项目依赖的NuGet项目添加到生成nuspec文件中,默认情况不打包项目之间的引用关系,但可以通过更改项目的相关性类型。
dotnet pack [<PROJECT>|<SOLUTION>] [-c|--configuration <CONFIGURATION>]
[--force] [--include-source] [--include-symbols] [--interactive]
[--no-build] [--no-dependencies] [--no-restore] [--nologo]
[-o|--output <OUTPUT_DIRECTORY>] [--runtime <RUNTIME_IDENTIFIER>]
[-s|--serviceable] [-v|--verbosity <LEVEL>]
[--version-suffix <VERSION_SUFFIX>]
dotnet pack -h|--help
发布命令会编译应用程序并读取项目文件,然后将结果集的文件发布到一个目录。生成目录的内容将取决于项目的类型,但可以包括一个跨平台的 IL 应用程序和他依赖项,这就是通常用的Portable部署方式,应用程序共享.NET Core运行时环境与程序集依赖,部署的目标机器上需要事先安装.NET Core SDK,然后用dotnet命令运行程序。或者是每个本机平台的子文件夹或自包含的应用程序,其中包括目标平台的运行时,这就是Self-contained部署方式。Self-contained部署方式就是每个应用程序自带.NET Core运行时环境与程序集依赖,部署的目标机器不需要安装.NET Core SDK,
测试命令用来运行测试项目,使用配置的测试运行程序中定义的测试套件。