.NET Core 1.1发布公告
[原文发表地址]: Announcing .NET Core 1.1
[原文发表时间]: November 16, 2016
我们非常激动地宣布.NET Core 1.1 RTM发布了,这是第一个发布的当前版本。现在,你可以在Visual Studio 2015, Visual Studio 2017 RC, Visual Studio Code 和Visual Studio Mac版中创建 .NET Core 1.1的应用程序。
我们在发布的1.1版本中实现了如下改进:
- .NET Core: 添加了发行版,提高了性能
- ASP.NET Core:提高了对 Kestrel和 Azure的支持和效率
- EF Core:支持Azure和SQL 2016
简讯 : 谷歌云正在加入 .NET Foundation技术指导组。欢迎谷歌!
你可以在.NET Core 1.1发布说明中了解到所有.NET Core详细的更新。这是三周前发布的 .NET Core 1.1 Preview 1的一个更新版。
安装
你可以从.NET Core下载页面去安装最新的版本。.NET Core是发布的当前版本。请确保点击了“当前”按钮来查看.NET Core1.1的下载链接。
发行
添加了对以下OS的支持:
- Linux Mint 18
- OpenSUSE 42.1(服务器架设 42.1)
- Mac操作系统 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版本的公共语言运行库采用了叫做按配置文件优化(PGO)的性能优化技术。.NET框架已经使用这个技术很多年了,但是我们还没有给.NET Core使用这个技术。之前发布的.NET Core 1.1 Preview 1版本也没有包含这一技术。
按配置文件优化(PGO)根据所检测过程中所记录的应用程序信息优化C++编译器生成的二进制文件。我们把这一过程叫“培训”。PGO记录的信息包括,在二进制文件里使用了哪些代码路径以及使用的顺序。这次的版本发布,我们用简单的“Hello World”应用程序来进行培训。
在我们的实验室,我们发现通过PGO优化, ASP.NET的 MusicStore应用程序性能提高了15%。而且我们认为这个改进也可以代表其它网络应用程序。我们也希望,通过增加大批应用程序的培训,会有更大的改进。
对于Linux和mac操作系统,我们编译了带有Clang/LLVM的核心公共语言运行库。我们计划在下次的版本发布中使用Clang版本的 (PGO)。初步观察Clang PGO的结果表明我们是会从中获益的。
应用程序接口(API)
在 .NET Core 1.1中有1380个新的应用程序接口。许多新添加的应用程序接口可以支持产品本身,包括读Portable PDB,.NET Core 1.1可以支持.NET标准1.6.
在2017年发布的版本将会支持.NET标准2.0,它不是 .NET Core 1.1的一部分。
使用.NET Core 1.1
你可以从安装 .NET Core 1.1开始。你可以通过使用 .NET Core 1.1安装程序或者通过操作系统里的包管理器在全局范围内安装它,或者通过下载.NET Core的压缩包来进行独立安装(这种方式也易于卸载)。
并行安装
你可以在一个已经安装了.NET Core 1.0的机器上面安装.NET Core 1.1,这是完全没有问题的。
命令dotnet new会在机器上创建新的引用最新运行时的模板,这可能不是所期望的。如果不是期望的,你可以手动编辑 project.json生成的结果里的版本号。基于大家的反馈,我们将会在新版的工具中改变这一行为,同时会随着Visual Studio 2017最终版本来发布。如果你是用Visual Studio去创建新工程而没有使用dotnet new命令,那么你不会被影响的。
尝试它
你可以通过命令行工具尝试 .NET Core,在你的命令提示符或者终端使用下面这些命令。
你也可以通过我们为使用.NET CoreDocker创建的dotnet-bot样例去尝试.NET Core 1.1(虽然你不必使用Docker)
升级已有的.NET Core 1.0工程
你可以把已有的 .NET Core 1.0的工程升级到 .NET Core 1.1。我将会给你展示通过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等版本字符串。
你可以使用下面的替换来帮你暂时地或者永久地把 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 标准库项目
更新.NET标准库项目是没有必要的。
我们发布了.NET标准库1.6.1包,但是,工程库引用它是没有必要的。因为更新的包已经为Microsoft.NETCore.App 1.1包提供了依赖关系。
使用.NET Core 1.1 Docker 镜像
你可以通过 Docker来使用.NET Core 1.1。你可以在microsoft/dotnet找到更新的镜像。
最新的标签已经被更新到.NET Core 1.1 SDK。这背离了我们之前在1.1 预览版 1 发布中讨论的计划。我们查看了其他平台上的当前版本和LTS版本,发现已经更新到最新的版本了,这是合理的。
有两个新的.NET Core 1.1 运行时标签:
- Linux: 1.1.0-runtime
- Windows: 1.1.0-runtime-nanoserver
有两个新的.NET Core 1.1 SDK标签
- Preview 2-based SDK, 使用了project.json: 1.1.0-sdk-projectjson
- Preview 3-based SDK, 使用了CSProj: 1.1.0-sdk-msbuild, .
你可以通过.NET Core Docker样例资源库里的[dotnetapp-current sample][dotnetapp-current] 尝试 .NET Core 1.1。可以通过更新project.json和Dockerfile文件很里的版本字符来很容易地将其他样例修改为依赖.NET Core 1.1镜像。
当前版本
在之前.NET Core 1.1的博文中,我讲到我们采用了区分发布的行业惯例,包括“长期支持(LTS)”和“当前的”这两种版本。.NET Core 1.1是当前的版本,也是第一个当前的版本。一旦一个当前的版本发布出去,我们期望很少去更新它,希望只是安全方面的更新。
我们推荐大多数开发者使用LTS版本。这也是Visual Studio中默认的版本。我们也期待使用当前版本的用户给我们反馈。虽然很难去量化,但 .NET Core开发团队认为LTS版本和当前版本的用户比例为80/20还是比较合理的。
结束语
请尝试新的.NET Core版本并给我们反馈。.NET Core 1.1,ASP.NET Core和EF Core有很多重要的改进可以使你的应用程序更快更好。这是第一个当前的版本,可以提供给你更快的功能。
总结下,最大的变化就是:
- 性能改进,足以在TechEmpower基准上有第一条很积极的条目记录
- 添加四种操作系统的发行版
- 10多个新功能和100多个bug修复
- 文档更新
感谢每一个使用.NET Core 1.0和.NET Core 1.1 Preview 1并给我们提供反馈的用户。感谢所有的贡献和参与!请告诉我们你关于最新版本的意见建议。
现在,你可以开始用Visual Studio 2015, Visual Studio 2017 RC, Visual Studio Code或Visual Studio Mac版来创建.NET Core 1.1 应用程序了。