[译]关于.NET Core1.1的通告

以下翻译可能会有不准确的地方, 想看原文的童鞋移步到Announcing .NET Core 1.1, 微软的开源真心喜欢, 希望有更多的童鞋关注微软, 关注.NET Core


我们很兴奋地宣布.NET Core 1.1 RTM的发布, 这是"当前的"第一个发布版. 从今天起, 你能够在Visual Studio 2015, Visual Studio 2017 RC, Visual Studio Code和Visual Studio for Mac, 开始创建.NET Core 1.1应用程序了.

我们通过1.1发布版取得以下改进:

  • .NET Core: 增加发行版和提高性能

  • ASP.NET Core: 改善Kestrel, Azure的支持和生产力

  • EF Core: Azure和SQL 2016得到支持

简讯: 由Kestrel托管的ASP.NET Core 1.1在TechEmpower的纯文本基准测试上被评为最快的主流全站web框架

简讯: Google Cloud刚刚加入.NET 基金会技术指导工作组. 欢迎你, Google!

你能在.NET Core 1.1发布说明中查看它的所有更改细节. 它在我们3周之前装配的.NET Core 1.1 Preview 1 发布版中, 算是一个小的delta版.

安装

你能从.NET Core下载页安装新的版本. .NET Core是一个当前的版本. 确认点击"当前"按钮来看到.NET Core 1.1下载链接.

分发

支持一下新增的发行版:

  • Linux Mint 18

  • OpenSUSE 42.1

  • macOS 10.12(也增加了对.NET Core 1.0的支持)

  • Windows Server 2016(也增加了对.NET Core 1.0的支持)

你能在.NET Core 1.1发布说明中查看所支持发行版的完整列表.

文档

.NET Core 文档已经为这次发布做了更新, 并且将持续更新. 我们也正在对.NET Core文档做可视化和内容更新的工作之中, 以便这些文档更加易于使用和引人注目.

ASP.NET Core 和 Entity Framework, C#和VB文档被移动到docs.microsoft.com作为这个发布版的一部分, 而F#是在几个月之前添加进来的.

在docs.microsoft.com上的文档都是开源的. 你能够帮助我们通过在GitHub上把问题归档和做贡献来完善它. 想要参与, 你可以从dotnet/docs和aspnet/docs开始.

性能

最近TechEmpower上有好心人告诉我们, 由Kestrel托管的ASP.NET Core 1.1在TechEmpower的纯文本基准测试上被评为最快的主流全站web框架. 这是一个非常棒的结果, 是一个象征设计上取得成就的结果.

我们为.NET Core 1.1 Windows版采取了CoreCLR运行时性能优化, 这个优化被称为Profile-Guided Optimization(PGO). 我们把这项技术用于.NET Framework已经有很多年了, 但是还没有用到.NET Core上. 而这个改进还不包含在早期的.NET Core 1.1 Preview 1发布版中.

PGO优化用于生成二进制代码的C++编译器, 它通过从在我们实验室中观察的那些应用程序中记录信息来达到优化目的. 我们把这个过程称为"训练". 它将会同冬夜里6点钟到来一样令人兴奋. PGO记录的信息有在一个二进制程序中哪些代码路径被用到, 和以一个什么样的顺序被用到. 对于这个发布版, 我们将一个简单的"Hello World"程序用于训练.

用一个在我们实验室中实现PGO优化过的CoreCLR来运行ASP.NET应用程序MusicStore, 我们观测到了15%的性能改善, 并且相信这些改善对其他Web应用程序也适用. 因为我们扩增了用于训练的应用程序数量, 所以我们希望在将来能看到更大的改善.

对于Linux和macOS, 我们用Clang/LLVM编译CoreCLR. 我们打算在下一个发布版中适用PGO的Clang版本. Clang PGO的初步试用表明了我们将会看到同样的好处.

APIs

在.NET Core 1.1里新增了1380个API, 很多新增的API是用来支持产品本身, 包括读取PDB文件数据. .NET Core现在已经支持.NET Standard 1.6.

.NET Standard 2.0将会在即将到来的版本(在2017年)中出现. 它不属于.NET Core 1.1的一部分.

使用.NET Core 1.1

你能够从安装.NET Core 1.1开始. 你或者也能通过使用跟你的操作系统对应的.NET Core 1.1安装器或包管理器来全局安装它, 或者在一个独立的(很容易移除)环境中通过下载一个.NET Core ZIP包来尝试它.

安全地并行(side-by-side)安装

你能在一台已经有.NET Core 1.0的机器上安全地全局安装.NET Core 1.1(两者不冲突)

dotnet new命令会创建一个引用机器上最新的运行时的新模板. 这也许不是你要的. 如果不是的话, 你能在刚才命令生成的project.json文件中手动将版本号编辑为早期版本. 基于反馈, 我们将在Visual Studio 2017最终版发布的同时, 在dotnet工具的新版本中改变这一行为. 如果你不用dotnet new来创建新项目, 而是依赖Visual Studio, 那么你就不会受到影响.

尝试

你能用命令行工具来尝试.NET Core, 可以在命令提示符或终端窗口中, 使用下面这些命令:


    dotnet new

    dotnet restore

    dotnet run

你也能够用dotnet-bot例子来尝试.NET Core 1.1, dotnet-bot这个例子是我们为了用Docker使用.NET Core而创建的(尽管你不必使用Docker)

升级已有的.NET Core 1.0项目

你能把已有的.NET Core 1.0项目升级到1.1. 我将给你展示新的project.json文件, 这个文件是由现在更新后的dotnet new命令生成的. 最好的方式就是看看新版本project.json文件的值, 你需要把这些值复制并粘贴到已有的project.json文件中. 没有自动化工具来将项目升级到更新的.NET Core版本上.

默认的.NET Core 1.1的project.json文件如下:

这个project.json文件相对于你的.NET Core 1.0的project.json文件看起来非常相似, 除了netcoreapp1.1和1.1.0目标框架和源数据包版本号字符串分别不同(with the exception of the netcoreapp1.1 and 1.1.0 target framework and meta-package version string, respectively).

你能使用如下替换来帮助你更新project.json文件, 你想要把它临时或永久地转到.NET Core 1.1版本下:

  • 更新netcoreapp1.0目标框架为netcoreapp1.1

  • 更新Microsoft.NETCore.App的包版本号从1.0.x(例如1.0.0或者1.0.1)为1.1.0

升级.NET Standard类库项目

没有必要更新.NET Standard类库项目

我们已经发布了.NET Standard 类库 1.6.1的包, 然而, 给生产(相对于开发或测试等)库引用这个包没有好处. 这个包已经作为更新的Microsoft.NETCore.App 1.1包的一个依赖而被提供了.

使用.NET Core 1.1 Docker镜像

你能通过Docker来使用.NET Core 1.1. 你能在microsoft/dotnet中找到最新的镜像.

最新的标签(tag, 以下tag都译为标签, 这个tag应该是版本控制系统里trunk, branch, tag中的tag)已经被更新, 来指向.NET Core 1.1 SDK. 这跟我们早期在1.1Preview 1的推送中讨论的计划不太一样. 我们看了其他的平台, 它们都有当前版和长期支持版, 并且也看到了最新的版本确实指向最新的版本. 这么做合乎情理.

.NET Core 1.1有2个新的运行时标签:

  • Linux: 1.1.0-runtime

  • Windows: 1.1.0-runtime-nanoserver

.NET Core 1.1有2个新的SDK标签:

  • 基于Preview 2的SDK, 使用project.json: 1.1.0-sdk-projectjson

  • 基于Preview 3的SDK, 使用CSProj: 1.1.0-sdk-msbuild

你能用[dotnetapp-current sample][dotnetapp-current]来试用.NET Core 1.1, [dotnetapp-current sample][dotnetapp-current]在.NET Core Docker 例子仓库中. 其他的例子很容易被修改为也依赖于.NET Core 1.1镜像, 只要用合适的版本号字符串(需要修改的字符串上面都有提到)来更改project.json和Dockerfile这俩文件即可.

当前版本

在早一些时间里发表的.NET Core 1.1博客文章里, 我表明了我们已经采纳用不同版本的行业规范, 这些不同版本就有我们称之为"长期支持版(LTS)"和"当前最新版". .NET Core 1.1 是一个当前版, 并且也是第一个当前版. 一旦一个当前版被发布出来, 我们几乎不再进行更新, 或者仅仅只有安全方面的更新.

我们推荐广大开发者采用长期支持版. 它也会是包含在Visual Studio中的默认体验. 我们也特别希望你们开发者中有一些人能够采用当前最新版以便给我们一些新版的使用反馈. 很难说要有多少人用长期支持版, 有多少人用当前最新版, 不过基于整个.NET Core开发者人数上, 在长期支持版和当前最新版的使用人数比例能够满足二八法则, 基本就可以了.

结语

请享用新版的.NET Core吧, 并记得给我们反馈. 在.NET Core 1.1, ASP.NET Core和EF Core上有大量关键型的改进, 这些改进能是你的应用程序更好更快. 这是第一个"当前最新版", 当前版跟长期支持多年的版本相比, 能更快地带给你新特性, 也会带给你更快更新.NET Core的愉悦.

综上所述, 最大的更新如下:

  • 性能改进, 主动进入TechEmpower benchmarks这个评测网站, 就能得到足够的证据

  • 新增4种操作系统的发行版

  • 10余项新特性和100多项bug修复

  • 更新的文档

感谢每个采用.NET Core 1.0和.NET Core 1.1 Preview的开发者给我们的反馈. 我们对所有贡献者和参与者表示感激! 请告诉我们你们在最新版本中想要得到的功能.

今天你们能够开始在Visual Studio 2015, Visual Studio 2017 RC, Visual Studio Code, 和Visual Studio for Mac中创建.NET Core 1.1.

posted @ 2016-12-02 13:36  守护晴天  阅读(242)  评论(0编辑  收藏  举报