HTML5技术

.Net大局观(2).NET Core 2.0 特性介绍和使用指南 - L.P.Y

字号+ 作者:H5之家 来源:H5之家 2017-08-17 17:01 我要评论( )

.Net大局观(2).NET Core 2.0 特性介绍和使用指南 .NET Core 2.0发布日期:2017年8月14日 前言 这一篇会比较长,介绍了.NET Core 2.0新特性、工具支持及系统生态,现状及未来计划,可以作为一门技术的概述来读,也可以作为学习路径、提纲来用。 对于.NET Co

.Net大局观(2).NET Core 2.0 特性介绍和使用指南

.NET Core 2.0发布日期:2017年8月14日

前言

这一篇会比较长,介绍了.NET Core 2.0新特性、工具支持及系统生态,现状及未来计划,可以作为一门技术的概述来读,也可以作为学习路径、提纲来用。

对于.NET Core 2.0的发布介绍,围绕2.0的架构体系,我想通过一个系列来全面介绍:

.NET Core 2.0发布最终版,基于.NET Core 2.0开发的项目可以放心用于生产环境。.NET Core 2.0开发不受开发工具影响,安装SDK之后便可以使用命令行工具,Visual Studio Code或者你喜欢的文本编辑器编写代码发布项目,当然对于重量级IDE需要更新到最新版:Visual Studio 2017 15.3、Visual Studio for Mac 7.1。

注意:VS 2017 15.3并没有包含SDK,需另外单独安装.NET Core 2.0 SDK。

个人更喜欢使用轻量级编辑器Visual Studio Code,对我而言更新Visual Studio 2017 15.3是一项不小的工程,但是这个最新版本提供的单元测试Live Unit Testing功能,是其他IDE不能相比的,这会成为TDD开发者的最爱!

.NET Core 2.0进行了多项重要改进,这使得.NET Core 2.0更加具备作为平台的能力。本文总结了.NET Core 2.0最新特性,详细改进细节,可以参考GitHub Issues:dotnet/core #812。

特性概述 Runtime(运行时) SDK Visual Studio 使用指南 快速使用 .NET Core 2.0

首先请安装.NET Core SDK 2.0。(SDK中已经包含Runtime)

安装完成之后就可以使用命令行或Visual Studio创建.NET Core 2.0应用程序了。

创建新项目是极其简单的操作,在Visual Studio 2017可以使用提供的项目模板,也可以使用命令dotnet new执行命令创建:

C:\samples>dotnet new console -o console-app C:\samples>cd console-app C:\samples\console-app>dotnet run Hello World! 项目和类库升级

可以将现有程序升级到 .NET Core 2.0。在Visual Studio中,更改目标框架为 .NET Core 2.0。

如果使用Visual Studio Code或者其他代码编辑器,手动编辑项目文件将目标框架改为netcoreapp2.0

<PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> </PropertyGroup> .NET Core 2.0和1.0/1.1之间的关系

三个版本是独立的,且可可以共存,并分别使用对应的运行时,项目不会自动升级,除非设置了对应的版本。

开发环境下,安装了多个SDK版本,默认使用最新的版本,在安装完.NET Core 2.0 SDK之后,用于所有新创建的项目,指定为1.0和1.1版本的项目仍然使用对应版本运行时。

在项目中添加global.json配置文件,可以指定使用特定的SDK版本。

.NET CORE Rumtime改进

有以下主要改进

性能改进

在.NET Core 2.0中有多项性能改进,开发团队发布了一系列文章说明.NET Core Runtime改进的细节:

.NET Core 2.0基于.NET Standard 2.0

.NET Core 2.0实现了.NET Standard 2.0规范。

参看diff between .NET Core 2.0 and .NET Standard 2.0理解.NET Core 2.0提供API和.NET Standard 2.0规范。

将Linux作为单个操作系统更容易实现

.NET Core 2.0将Linux作为单个操作系统来对待。(Linux的版本很多,这项支持意味着在我们眼中不同的版本都是Linux,无视差异,提高Linux系统上的兼容性。)现在有一个单独的Linux构建(基于芯片架构的构建),它适用于测试过的所有Linux发行版。到目前为止,支持仅限于基于glibc的发行版,特别是基于Debian和Red hat的Linux发行版。

计划还将支持更多其他的Linux发行版。

Windows和macOS也有类似的改进。您现在可以将项目发布为以下的“运行时”:

Linux和Windows ARM32构建现在可用(预览版)

.NET Core开发团队正在为.NET Core 2.0+开发ARM32构建支持。

这些构建非常适合在树莓派使用。这些构建还没有正式发布,现在只是预览版。提供为.NET Core 2.0 生成ARM32 Runtime(没有SDK)。因此,需要在另一个操作系统上构建应用程序,然后复制到树莓Pi(或类似的设备)上运行。

下面是两个非常棒的 .NET Core ARM32开发实例:

  • .NET Core on Raspberry Pi
  • 全球化模式

    .NET Core 2.0包含新的opt-in globalization mode,提供与操作系统和语言一致的基本的全球化相关功能。这种新模式的好处在于它的一致性、没有任何全球化依赖。

    参看.NET Core Globalization Invariant Mode了解更多关于这个特性的信息.

    .NET Core SDK 改进

    下面是主要改进

    dotnet restore 调整为隐式命令

    在需要的时候会自动调用,dotnet restore是命令中使用频率较高的,用于项目引用更新时,恢复依赖的引用包,尽管没有更新时会有提示执行,但这非常容易忘记。

    现在,当我们执行命令,如:run,build,publish时,会自动调用dotnet restore。

    下面的示例演示

    C:\Users\rich>dotnet new mvc -o mvcapp The template "ASP.NET Core Web App (Model-View-Controller)" was created successfully. This template contains technologies from parties other than Microsoft, see https://aka.ms/template-3pn for details. Processing post-creation actions... Running 'dotnet restore' on mvcapp\mvcapp.csproj... Restoring packages for C:\Users\rich\mvcapp\mvcapp.csproj... Restore completed in 32.3 ms for C:\Users\rich\mvcapp\mvcapp.csproj. Generating MSBuild file C:\Users\rich\mvcapp\obj\mvcapp.csproj.nuget.g.props. Generating MSBuild file C:\Users\rich\mvcapp\obj\mvcapp.csproj.nuget.g.targets. Restore completed in 2.26 sec for C:\Users\rich\mvcapp\mvcapp.csproj. Restore succeeded. C:\Users\rich>cd mvcapp C:\Users\rich\mvcapp>dotnet run Hosting environment: Production Content root path: C:\Users\rich\mvcapp Now listening on: :5000 Application started. Press Ctrl+C to shut down. Application is shutting down...

    创建项目后,会自动调用dotnet restore命令。

    在.NET Standard项目中引用.NET Framework类库

    这个功能将帮助我们将.NET Framework 快速迁移到.NET Standard或.NET Core,在迁移的过程中,先直接使用,那么随着时间的推移(从二进制文件开始,然后移动到源代码)迁移整个项目。

    这个功能也为.NET Framework类库提供一个新的运行框架支持。

    引用.NET Framework类库之后,类库中的类型仅限于使用在.NET Standard API集合中支持的类型,所以要谨慎对待,进行完整测试。

    类库支持.NET Framework 4.6.1,或更早的版本,甚至包括1.0的版本。下图展示了这项功能的使用:

    从应用程序的调用堆栈可以看出程序集的目标框架。

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 从.net到java,记录下这三个月的工作 - _liuxx

      从.net到java,记录下这三个月的工作 - _liuxx

      2017-08-09 15:01

    • 整理自己的.net工具库 - 缺水的水瓶座

      整理自己的.net工具库 - 缺水的水瓶座

      2017-08-07 17:03

    • 带你快速进入.net core的世界 - 农码一生

      带你快速进入.net core的世界 - 农码一生

      2017-08-07 10:02

    • .NET MVC与三层架构 - 追求沉默者

      .NET MVC与三层架构 - 追求沉默者

      2017-08-04 10:00

    网友点评