.NET Core 1.1 Preview 1 发布公告

[原文发表地址]: Announcing .NET Core 1.1 Preview 1

[原文发表时间]: October 25, 2016

 

今天,我们非常高兴地宣布.NET Core 1.1 Preview 1发布了。它包括了对其他Linux 发行版的支持,除此之外还有很多更新,并且是首个发布的”当前”版本。我将在下面介绍所有的更新。这个版本是预览版,其目的是作为.NET Core 1.1 发布版的早期版本。它并没有"正式上线",所以不建议用它进行用于生产工作负载。

ASP.NET Core 1.1 Preview 1Entity Framework Core 1.1 Preview 1 也会在今天发布,也请查阅这些发布版本。

现在, 你可以下载版本:

您可以在.NET Core 预览下载页上,找到完整的.NET Core 1.1下载集

microsoft/.NET 的Docker Hub资源库中,.NET Core 1.1 Preview 1 的Docker镜像是可用的。你也可以尝试从.NET Core Docker样本库.NET应用程序预览示例中,获得新的Docker 镜像。

你可以在 dot.net/core 页面上找到已有的.NET Core 1.0版本。此外,当NET Core 1.1版本比较稳定的时候,也将这个页面上列出来。

 

改进

.NET Core 1.1 版本是首个 1.x 版本的较小的更新版。主要是添加了对新操作系统发行版本的支持。

 

操作系统发行版本

添加了对下面几种操作系统发行版本的支持︰

  • Linux Mint 18
  • OpenSUSE 42.1
  • macOS 10.12
  • Windows Server 2016

之前的文章中有个错误信息:此版本支持 Fedora 24。实际上,在预览1阶段,我们还不能支持,可能会在以后支持。

您可以在.NET Core 1.1 Preview 1 发行说明中查看所支持的操作系统版本。

 

APIs

此版本添加了 1380 个API。你可以在应用程序接口差异:NET Core 应用程序 1.0 (ref) 与 .NET Core 应用程序 1.1 (ref)文档中,查看完整的API集合。

所增加的API是用来支持特定情形。API增加部分没有特定的主题。

此次发行版本中包括.NET 标准 1.6.1-preview1的发布。.NET 标准 2.0 的支持,还在进一步跟进中。

 

修复

已经做了很多特有的产品更改。你可以从.NET Core 1.1 Preview 1 更改记录里,了解到所有的更改。

早前关于 MSBuild 和 CSProj 的变化的声明,并不包括在此次发布中,不过会在后面加进来。

 

使用 .NET Core 1.1 Preview 1

.NET Core 1.1 Preview 1 是一个安全、 易安装的应用程序。它的工作方式与.NET Core 1.0相同。关于如何使用它有以下几点说明。

 

.NET Core 1.0- 并行安装

.NET Core 1.1 Preview 1 与.NET Core 1.0 并行安装。.NET Core 1.0 应用程序将继续使用.NET Core 1.0 运行。.NET Core 1.0 应用,几乎完全不会意识到是否安装了之后的版本。

使用命令dotnet new时需要注意。dotnet new将会创建新的工程,而这些工程是依赖于.NET Core 1.1 Preview 1,而不是.NET Core 1.0。因此,当你使用命令行工具进行.NET Core 1.0环境开发的话,你就要避免在机器上安装.NET Core 1.1。如果您是在 Windows上使用Visual Studio 来创建新工程,而不是使用dotnet new命令,那么安装.NET Core 1.1 就不会有什么影响。

我们很高兴看到大家关于这个设计的反馈。目前的设计是,donet new会创建基于安装的最新的.NET Core版本的工程。如果你认为这样的方式不可取,那么就告诉我们您所期望的方式。

 

尝试一下

你可以开始安装.NET Core 1.1 Preview版。安装成功之后,你就可以像之前使用.NET Core 1.0那样使用.NET Core工具。请尝试使用以下命令来创建、 编译和运行.NET Core 1.1 Preview 1 应用程序︰

image

你可以参考 .NET应用程序-预览示例,尝试在有Docker或者是没有Docker的情况下,创建.NET Core 1.1 Preview 1 应用程序。

 

升级已有项目

你可以将已有的使用.NET Core 1.0 的工程升级为使用.NET Core 1.1 Preview 1 工程。我会给你展示新的 dotnet new命令生成的 project.json 文件,这是查看需要复制/粘贴到已有工程的 project.json 文件中的新版本信息的最好方式。目前还没有自动化的工具,可以将已有项目升级为新版的.NET Core版本项目。

image

除了 netcoreapp1.1 和目标框架为1.1.0-preview1-001100-00的版本字符串不同之外,project.json 文件与.NET Core 1.0 的project.json文件是非常类似的。

您可以通过以下更改来帮助您暂时或永久的更新 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-preview1-001100-00。

你也可以省略具体的版本信息,简记为1.1.0-preview1-*。用这种方式也会使你能够更便捷地使用.NET Core 1.1 的新版本。当.NET Core 1.1 版本稳定之后,你可以将版本更改为 1.1.0,目标框架版本不会改变。

 

升级已有的 .NET 标准项目

没有必要更新.NET标准库工程。

我们发布了一个.NETStandard.Library 4.6.1 包。更新后的包被作为更新后的 Microsoft.NETCore.App 1.1 元包的依赖。

之前提到的建议更新标准库项目的引用为1.6.1,这个是不正确的。

 

升级到 .NET Core 1.1 Preview1的 Docker镜像

.NET Core 1.1 Preview1 镜像已经被发布到微软/.NET资源库。.NET Core 1.1,.NET Core 1.1 preview 1 SDK 和运行时镜像的两个新的标签,分别是: 1.0.0-preview2.1-sdk、 1.1.0-core。

最新的和那些没有版本的标签将不会更新到.NET Core 1.1,会仍然指向.NET Core 1.0。说明下,对于没有版本的标签是应该始终指向 LTS 版本 (见下面的说明)还是指向当前版本,我们还在考虑中。我们目前的想法是,它们应该指向 LTS 版本,而将当前版本作为一个可选项。对于这个问题,大家有任何想法都欢迎反馈给我们。

你可以尝试从.NET Core Docker样本库.NET应用程序预览示例中,获取新的Docker镜像。根据我上面提到的project.json文件的升级方法,可以轻松地修改其他示例来练习.NET Core 1.1 Preview 1 镜像的使用。

 

当前 版本

我们在 7 月宣布,我们将采取.NET Core 发布版本双列战略。当时,我们将两个不同产品称为"LTS"和"FTS"。发布条款已将其重新命名为”长期支持 (LTS)”和”当前版本”。这类似于其他平台所做的,比如像Red Hat企业版 Linux、 Ubuntu 和 Node.js。实际上,我们采用”当前”这个词,因为这个已经在使用了,而且也达到了预期效果。

我们称不同版本为"列车",因为用火车(金属轨道上长长的车辆)来类比软件版本还是很形象的。你也可以参考“列车按时间表运行”,所以我们有机会“赶下一班车”。我相信你可以在评论中收获更多。

实际上,事情并没有那么简单。LTS(慢)和当前(快)列车定义了不同的版本发布节奏、更新中可接受的变化的不同期望以及不同的时间支持跨度。基于我们在.NET框架中仅一列列车的经验,我们希望在版本上有更多的灵活性,并且能够更好地满足不同客户的期望。

在进行了深入和漫长的测试,采纳重要客户意见(在命名为LTS之前)以及稳定性提高之后,我们发布了LTS。一旦发布,目标是尽可能少地更新LTS版本,仅会针对安全性、重要的可靠性、性能问题以及罕见的重要功能添加等进行更新。他们的支持为期三年。多数保守派的客户告诉我们”我爱这个计划”。如果可以,他们更喜欢的是没有任何变化,尽管他们也意识到这是不太现实的。

当前发布的正是我们目前正在积极工作的版本。.NET Core 1.1就是这种版本。我们除了在这些版本里面实现我们的主要功能之外,还添加了对现行的新操作系统的支持。这些版本是稳定的,但同时更新太快,所以当你使用的时候,就需要做更多的测试。在下一个当前版本发布之后,它们只能支持三个月,在这三个月结束之前,为了一直保持能够使用支持的版本,您需要将工作移到下一个当前版本中。在当前版本里,你会快速获取新功能,但必须保证在该发布版本列车上。

在 LTS 版里也会包括对新操作系统发行版的支持,但是Windows Server2016和 macOS Sierra 除外。

一旦我们对当前版本比较满意,并且得到了足够的反馈,我们会将它的下一个版本标记为LTS版,然后再重复整个过程。这可能会在几个或多个当前版本后发生,其很大程度上取决于我们所获得的反馈。

从当前版本转到LTS的是“换车”的好机会。我们期望开发人员在开发一个较长项目期间,能够选择当前版本,以获得最新的功能和更广泛的更新程序集,然后在项目的后期发展中切换到 LTS(假设时间上允许), 为产品生产部署做好准备。

更多信息请查阅文章.NET 支持和版本控制

 

版本控制、 文件名和Docker标签

如果你的项目一直拥有大量的用户或多个发布版本,你就会知道产品命名和版本控制是特别困难的。.NET Core项目没有规避这个问题。事实上,似乎要欣然接受它,选择了并不那么直观的版本字符串。我们希望下文能够给您解释清楚这些版本字符串的意义,其实我们应该早点将这个分享给大家的。

.NET Core包括两部分︰ 运行时和一个包含运行时以及其他一些工具的 SDK。目前,主要问题是 SDK 是最受欢迎的部分,但是这部分不会与运行时共享相同的版本控制方案。所以挑战就在于,我们说说的产品版本是运行时的版本(包括本文),而 SDK 的版本是指它所包括的工具的版本。我们选择这样做,也是有各种各样原因的。

.NET Core安装程序、Docker 镜像以及project.json文件都携带版本号信息,这些信息是你会使用的。选择或写入正确的版本号还是极具挑战的,因为这些字符串看起来非常相似,却又代表着不同的意义。

以下是一些关键的版本以及所代表的意义。

  • 1.0.0-preview2-sdk – 是指.NET Core 1.0 的SDK,其中包括一个稳定的 1.0 运行时和预览 1.0 工具。这是.NET Core工具的第二个预览版本。
  • 1.0.0-preview2.1-sdk — 是指.NET Core 1.1 的SDK,其中包括一个预览 1.1 运行时和预览 1.0 工具。它被称为预览2.1是因为它是与预览2相关的.NET工具的版本,尽管它附带着新的运行时。
  • 1.1.0-preview1 — 是指.NET Core 1.1 运行时的第一个预览版本。

我们打算在明年发布最终的.NET Core工具1.0版。发布的版本将为1.0.0-sdk,而不需要预览这样的字符串。SDK和运行时的版本号仍然不匹配,我们正在讨论该怎么处理这个问题。我们知道 .NET Core工具的版本号会比运行时的版本号更新的快些,然而,我们会人为地控制它们成为相同的版本号,从而使得运行时和SDK更容易匹配,包括我们在博客中使用的产品的术语。

 

结语

请尝试.NET Core 1.1 Preview1。我们想听听你对.NET Core 1.1预览1的反馈意见,以做好准备发布.NET Core 1.1的最终版本。 如果您是在一个新的受支持的操作系统上安装的. NET Core,我们希望您有更多的反馈来帮助我们更深入地了解这个版本。

感谢大家的尝试和试用.NET Core。 我们非常感谢大家提出的反馈意见,对产品贡献和付出。谢谢!