.NET Core 1.0自发布两年以来,得到了开发者群体相当高地认可。 下图来自Stack overflow survey 2018的统计:

.NET Core已经成为前五的主流框架工具,现今借鉴了优秀的设计原则和开发体验可谓站在巨人肩上。这一切归功于.NET团队认识和总结了大量过往的经验教训,看到了跨平台的重要性。关于.NET Core的一些介绍:

Developing token authentication using ASP.NET Core

Implementing SOLID REST API using ASP.NET Core

Unit testing ASP.NET Core Identity

.NET Core还在快速迭代,每次更新都有一些特性的增强。下面介绍一些.NET Core 2.1和ASP.NET Core 2.1的新功能。

.NET Core 2.1

相较于重视基础构建的.NET Core 2.0,.NET Core 2.1更像是一个面向反馈的版本。

Span , Memory介绍

.NET Core推出了一些高性能的新数组和内存类型,例如在 System.Memory.dll中的Span<T>Memory<T>,.NET Standard 1.1可以在NuGet找到兼容的预览版本。实际上Span<T> 和Memory<T>的想法来自于调用方的使用需要。这些新类型在框架体系中将非常实用。例如用在HttpClient中改进性能。更多的内容参见:All About Span: Exploring a New .NET Mainstay。

Windows 兼容包

The Windows兼容包将造福于那些想把基于.NET Framework的代码迁移至.NET Core的开发者,为此新的框架增加了成吨的API接口(你可以从这里下载:https://www.nuget.org/packages/Microsoft.Windows.Compatibility)。例如其中一个检测宿主操作系统类型的方法:RuntimeInformation.IsOSPlatform(OSPlatform.Windows),当需要根据不同平台来运行不同依赖的代码时非常有用。更有意思的还有API Analyzer,从NuGet包可以获取到这个来自Roslyn的分析器,项目中引用后会自动提供API使用和警告的实时反馈,对于那些存在潜在兼容问题或失效的API将有不错的体验。

构建时的性能提升

下图是.NET Core新老版构建时长的对比。可以看到较大的项目,其构建时长能节省一倍多,估计正式版本还会进一步优化。

ASP.NET Core 2.1

再看看2018年年中前后要发布的ASP.NET Core 2.1,改动将不限于Razor pages、SignalR、Webhooks、Security、Perfomance、MVC、Kestrel等。

HttpClientFactory

HttpClientFactory将为HttpClient内置一个依赖注入的实现,并提供了HttpClient实例化和管理的控制单元。HttpClientFactory还集成了Polly.NET。Polly拥有瞬时错误处理和恢复的类库,支持开发者以便捷、线程安全的方式实现一系列策略,类似重试、中断、超时、隔离和反馈等。HttpClientFactory有两种不同的处理模型:NamedClient, TypedClient

NamedClient

NamedClient是默认选项,它的AddHttpClient方法用来在客户端处为服务或控制器定义了一个命名空间。

TypedClient

这是一种直接通过类型引用的方式,可以在调用类的内部将HttpClient注入到构造函数中,对于喜欢IoC的开发者来说值得推荐。

如你所见,它允许你使用注册或注入客户端两种方式。

Kestrel: 基于libuv的Socket

当前Kestrel使用libuv作为底层实现,在Transport abstraction中将Kestrel的传输方式以抽象的方式解耦,顺便提一下,出于性能考虑,微软打算实现一个自定义的socket来替代libuv的异步IO,在Program.cs中以配置的形式获得socket传输能力。

HTTPS

如今HTTPS成了标配,像Chrome一类的浏览器, 在HTTP的Web应用背后都有安全策略,参见:Marking HTTP As Non-Secure。ASP.NET Core 2.1将默认HTTPS,也就是说,即使在本地开发环境监听http://localhost:5000,,Kestrel也将要求一个证书而监听https://localhost:5001,.NET Core SDK会在安装时默认会生成一个适当的证书。

综述

一句话总结,新的.NET Core 2.1版本提供了大量的实用提升,正如开头所说,这些和.NET开发者们积极地建议和反馈密不可分。更有一些新的东西加入,比如在不同适配器下的Web hookst和改头换面的SignalR。

更多高阶的研发计划和相关功能、问题信息参见:Announcements/issues/288.

或者你还想看看这些:

.NET Core 2.1 roadmap 
ASP.NET Core 2.1 roadmap 
All About Span: Exploring a New .NET Mainstay 
.NET 2.1 Roadmap Pt.1 - Channel9

(原文:.NET Core 2.1 highlights: standing on the shoulders of giants)

原文地址 http://www.cnblogs.com/BeanHsiang/p/8687787.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

站在巨人肩上的.NET Core 2.1相关推荐

  1. 我想站在巨人的肩上——记成都之行

    2018年3月7号,我如期而至的到学校进行报道注册,这是我第八次报道,也是本科阶段的最后一次报道. 经历了一夜上火车的颠簸,然后又到客运站坐上去学校的大巴,下了车,发觉天空白茫茫一片,空气中有股经历过 ...

  2. 站在巨人的肩上的好办法,简单高效!!!

    荀子在<劝学>曰:"吾尝终日而思矣,不如须臾之所学也.吾尝跂而望矣,不如登高之博见也.登高而招,臂非加长也,而见者远:顺风而呼,声非加疾也,而闻者彰.假舆马者,非利足也,而致千里 ...

  3. 站在巨人的肩膀上“思考”问题,重在思考而不是拿来主义

    米老师按:觉得值得讨论的小文!我还要认真地想一想 主题:围绕职责链设计模式-计算收费有效时间博客展开讨论 参与人: 讨论时间: 讨论内容 这次讨论主要分为以下几点: 一.职责链模式应用于机房收费系统计 ...

  4. 二本非科班30岁转行架构师的老徐:站在巨人的肩膀学习才是捷径

    公司新来了个同事,级别比大白高一级,技术一流,来了之后把现有项目的性能优化了一遍,给公司省了不少成本. 后来才知道,他竟然是个「把烂牌打出王炸」的存在.他叫老徐,大白希望通过他的故事,帮你找到些可复制 ...

  5. 站在巨人的肩膀上看Servlet——原来如此(更适合初学者认识Servlet)

    前言: 有段时间没更新博客了,这段时间因为要准备考试,考完试后又忙了一阵别的事,一直没能静下心来写博客.大学考试真是越来越恶心了,各种心酸,那酸爽,够味.不过还好,马上就要大三了,听大三学长学姐说大三 ...

  6. 站在巨人肩膀上的牛顿:Kubernetes和SAP Kyma

    这周Jerry在SAP上海研究院参加了一个为期4天的Kubernetes培训,度过了忙碌而又充实的4天.Jason,Benny和Peng三位大神的培训干货满满,借此机会,Jerry和过去的两位老领导P ...

  7. “站在巨人的肩膀上”

    站在巨人的肩膀上需要拥有巨人的实力 容易错误理解成:"盗取"巨人的成果并漠视了巨人

  8. 【Visual C++】游戏开发笔记三十五 站在巨人的肩膀上:游戏引擎导论

    看到在留言中很多朋友提到不太清楚DirectX与游戏引擎的区别的问题,在这里浅墨就专门把自己对游戏引擎的一些理解写成一篇文章,作为我们<Visual C++游戏开发>专栏的游戏引擎导论,也 ...

  9. 巨人肩上的矮企鹅:QQ旋风为什么抄袭迅雷

    牛顿有一句名言:"如果说我能看的更远一些,那是因为我站在巨人的肩膀上."很多人不知道,这句话不是自谦,而是用来讽刺同为科学家的胡克--因为胡克身材矮小,而且驼背.用这句名言形容今天 ...

最新文章

  1. Php 表单转json,form转json实现方法
  2. python3下载文件-使用Python 3从网上下载文件
  3. windows下带超时的telnet探测IP和端口
  4. leetcode20. 有效的括号
  5. 二叉树(多路平衡搜索树)-(代码、分析、汇编)
  6. linux自动读取麦克风,检测用户向麦克吹气
  7. c++interesting转换为uint_拆一款C转HDMI转换器,没想到一个简单的产品里面这么多芯片...
  8. 【CF453D】 Little Pony and Elements of Harmony(FWT)
  9. Anaconda3安装以及常用命令
  10. Linux C++线程池框架
  11. 揭秘:为何冬天成都游戏玩家整体水平会下滑?
  12. 产品需求分析工具和方法
  13. IE下载xlsx、docx、pptx文件时自动变成zip文件问题
  14. UNITY TUIO的使用
  15. pg8168改mac命令_使用PG8168修改8111b网卡MAC地址
  16. GCC编译器下C语言不定长参数宏##__VA_ARGS__和__VA_ARGS__的使用
  17. CAD/CASS依据等高线等距或随机加高程点插件(等高线等距加高程点、等高线随机加高程点、等高线手动加高程点)
  18. 互联网赚钱发展趋势,网赚案例精准分析
  19. python新版个人所得税_Python 小案例 计算个人所得税
  20. 【英语词组】恋恋不忘Day4-5

热门文章

  1. Java并发编程 - Executor,Executors,ExecutorService, CompletionServie,Future,Callable
  2. ASP.NET Core中的依赖注入(4): 构造函数的选择与服务生命周期管理
  3. NHibernate之旅(7):初探NHibernate中的并发控制
  4. 3D版的TagView,效果很赞
  5. [LeetCode]119.Pascal#39;s Triangle II
  6. 面向对象技术——UML
  7. svn 自动同步到web站点目录post-commit.bat
  8. .NET 开源免费图表组件库,Winform,WPF 通用
  9. Visual Studio SnippetDesigner使用
  10. Blazor VS 传统Web应用程序