[译]关于.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.
[译]关于.NET Core1.1的通告的更多相关文章
- 【译】Dependency Injection with Autofac
先说下为什么翻译这篇文章,既定的方向是架构,然后为了学习架构就去学习一些架构模式.设计思想. 突然有一天发现依赖注入这种技能.为了使得架构可测试.易维护.可扩展,需要架构设计为松耦合类型,简单的说也就 ...
- RxJS + Redux + React = Amazing!(译一)
今天,我将Youtube上的<RxJS + Redux + React = Amazing!>翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: https:/ ...
- Entity Framework 6 Recipes 2nd Edition 译 -> 目录 -持续更新
因为看了<Entity Framework 6 Recipes 2nd Edition>这本书前面8章的翻译,感谢china_fucan. 从第九章开始,我是边看边译的,没有通读,加之英语 ...
- RxJS + Redux + React = Amazing!(译二)
今天,我将Youtube上的<RxJS + Redux + React = Amazing!>的后半部分翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: ht ...
- 「译」JUnit 5 系列:条件测试
原文地址:http://blog.codefx.org/libraries/junit-5-conditions/ 原文日期:08, May, 2016 译文首发:Linesh 的博客:「译」JUni ...
- CSharpGL(31)[译]OpenGL渲染管道那些事
CSharpGL(31)[译]OpenGL渲染管道那些事 +BIT祝威+悄悄在此留下版了个权的信息说: 开始 自认为对OpenGL的掌握到了一个小瓶颈,现在回头细细地捋一遍OpenGL渲染管道应当是一 ...
- [译]基于GPU的体渲染高级技术之raycasting算法
[译]基于GPU的体渲染高级技术之raycasting算法 PS:我决定翻译一下<Advanced Illumination Techniques for GPU-Based Volume Ra ...
- Entity Framework 6 Recipes 2nd Edition(9-4)译->Web API 的客户端实现修改跟踪
9-4. Web API 的客户端实现修改跟踪 问题 我们想通过客户端更新实体类,调用基于REST的Web API 服务实现把一个对象图的插入.删除和修改等数据库操作.此外, 我们想通过EF6的Cod ...
- Entity Framework 6 Recipes 2nd Edition(10-1)译->非Code Frist方式返回一个实体集合
存储过程 存储过程一直存在于任何一种关系型数据库中,如微软的SQL Server.存储过程是包含在数据库中的一些代码,通常为数据执行一些操作,它能为数据密集型计算提高性能,也能执行一些为业务逻辑. 当 ...
随机推荐
- CCF 模拟B 无脑循环+输入输出外挂
http://115.28.138.223:81/view.page?opid=2#code 代码一有WA点80分 #include<iostream> #include<cstdi ...
- Dex动态加载
Dex动态加载是为了解决什么问题? 在Android系统中,一个App的所有代码都在一个Dex文件里面. Dex是一个类似Jar的存储了多个Java编译字节码的归档文件. 因为Android系统使用D ...
- SNMP报文抓取与分析(二)
SNMP报文抓取与分析(二) SNMP报文抓取与分析(二) 1.SNMP报文表示简介 基本编码规则BER 标识域Tag表示 长度域length表示 2.SNMP报文详细分析(以一个get-respon ...
- HTML之文本框关键字显示
文本框默认显示 "请输入关键字",当鼠标点击输入框的时候, "请输入关键字"这几个字消失,移出文本框又显示出来 <!DOCTYPE html> &l ...
- django中抽象基类的Foreignkey的定义
class base(models.Model): user = models.ForeignKey(User) class Meta: abstract =True 以上是抽象基类的定义,只有一个公 ...
- ZJOI day1总结
虽然没人看,虽然滚了大粗,但还是这样勉励一下自己.. 今年大约是进队无望了. before ZJOI 感觉自己时间很充裕,与lyx大爷一起颓颓颓.. day -3 到xj. day -2 听课.感觉洲 ...
- Python连接MySQL的准备工作
首先要安装MySQL,64位的win7可以安装64或者32位的MySQL版本,安装之后,python需要一个工具才能连接MySQL,这个工具叫MySQL-python,去这里或者这里下载1.2.3版本 ...
- SVN里常见的图标及其含义
- 已忽略版本控制的文件.可以通过Window → Preferences → Team → Ignored Resources.来忽略文件.A file ignored by version con ...
- 如何区分SNAT和DNAT
从定义来讲它们一个是源地址转换,一个是目标地址转换.都是地址转换的功能,将私有地址转换为公网地址.要区分这两个功能可以简单的由连接发起者是谁来区分: 内部地址要访问公网上的服务时(如web ...
- Max Subsequence
一个sequence,里面都是整数,求最长的subsequence的长度,使得这个subsquence的最大值和最小值相差不超过1. 比如[1,3,2,2,5,2,3,7]最长的subsequence ...