[翻译] 初看 ASP.NET Core 3.0 即将到来的变化
[翻译] 初看 ASP.NET Core 3.0 即将到来的变化
原文: A first look at changes coming in ASP.NET Core 3.0
在我们努力完成下一个 minor 版本的 ASP.NET Core 的同时,我们也在对下一个 major 版本进行更新,其中包括如何使用框架组合项目、更紧密的 .NET Core 集成以及第三方开源集成,所有这些事的目标都是为了让您更容易、更快速地开发。有关 .NET Core 3.0 的更多内容,我们建议您查看我们之前关于在 Windows 上添加对 .NET Core 3.0 的 WinForms 和 WPF 支持的公告。我们将在不久的将来发布有关 ASP.NET Core 3.0 中新功能的更多详细信息。
包 vs 框架
历史的原因,经过不同的版本和年代,ASP.NET Core 的项目引用和运行方式已经发生了变化。在 1.0 中,ASP.NET Core 本身就只是一个包,像引用其他 Nuget 包一样的出现在项目。这有利有弊,
随着时间的推移,我们已经改进了这个模型,试图平衡模块化引用与更大且必备框架之间的优劣势。在 2.1 中,ASP.NET Core 最终发展成为一个 .NET Core “共享框架”(就像 .NET Core 本身的基础框架 Microsoft.NETCore.App 一样)。ASP.NET Core 团队成员 Nate McMaster 撰写的这篇博客文章很好地解释了共享框架的工作原理,同时也了指出当前方法的一些问题。我们在 3.0 中引入的更新旨在为所有用户减少这些问题。
作为本次更新的一部分,将从 ASP.NET Core 3.0 共享框架中删除一些值得注意的子组件:
- Json.NET (Newtonsoft.Json)
- Entity Framework Core (Microsoft.EntityFrameworkCore.*)
有关在 .NET Core 中添加 JSON API 的更多详细信息,请参阅此公告。对于现在仍然依赖于 Json.NET 的地方(例如 MVC 中的 JSON 格式化),我们将继续提供该集成的软件包,但默认将改为使用即将推出的内置 JSON API。
Entity Framework Core 将作为 3.0 中的 “纯” NuGet 包发布。这使得其发布模式与 .NET 上的其他数据访问库相同,用最简单的方式保持持续更新,提供各种 .NET 平台的支持。注意,Entity Framework Core 移出共享框架对其作为 Microsoft 旗下开发、支持和维护的库的状态没有影响,并且它将继续被 .NET Core 支持策略所覆盖。
充分利用 .NET Core
正如本月早些时候在 .NET 博客上所宣布的那样,由于 .NET Framework 的更新策略以及可能对现有应用程序带来破坏,.NET Framework 将只会获得很少的 .NET Core 的新平台新语言特性。为了确保 ASP.NET Core 能够充分利用 .NET Core 未来的发展改进,ASP.NET Core 将从 3.0 开始仅支持在 .NET Core 上运行。展望未来,您可以简单地将 ASP.NET Core 视为 .NET Core 的一部分。
今天在 .NET Framework 上使用 ASP.NET Core 的客户可以继续使用完全支持的 2.1 LTS 版本。2.1 的支持和服务将持续到2021年8月21日。
有关从 .NET Framework 移植到 .NET Core 的更多信息,请参阅此文档。
通过专注的第三方开源集成提供更多价值
与此同时,我们对 3.0 中“平台”的构成做了更明确的区分,从该层中删除了第三方组件,我们认识到, 许多更高层次的方案都是由已建立、有能力且支持良好的开源组件提供最佳支持的, 我们可以帮助支持这些组件更好的集成到 ASP.NET Core 应用程序中。
这种支持将采取不同的形式, 包括我们团队构建的一流集成 API 和包、我们的工程师对现有库的贡献、使用这些库的默认体验中的项目模板、官方 ASP.NET Core上文档站点、以及处理关键问题和 bug 修复 (包括安全性) 的过程。
我们已经在 2.2 版本中开始了这一过程,为流行的 IdentityServer 库开发了新的集成,这将帮助我们在构建 ASP.NET Core 应用程序中的 API 授权时非常简单和实用,同时允许客户在需要时充分利用 IdentityServer 其功能。
我们还致力于简化构建 HTTP API 的体验,新的 API 约定和分析器可以更轻松地使用流行的 Open API库(如 Swashbuckle 和 NSwag),以及一个新的 API 客户端生成系统,可以非常简单与代码生成器集成,例如 AutoRest 和 NSwag。
如果你对我们新的健康检查功能感兴趣,BeatPulse 库的作者正在努力移植他们的库。
我们打算将这些经验汇集到一个新的项目模板中,以便在 2.2 发布之后提供。
尾声
请持续关注,我们会继续发布 ASP.NET Core 在 .NET Core 3.0 中的变化,包括我们在此版本中将要启用的新功能的简介。我们会定期在公告中发布变更详情和其他信息,我们鼓励您订阅。
[翻译] 初看 ASP.NET Core 3.0 即将到来的变化的更多相关文章
- ASP.NET Core 3.0中使用动态控制器路由
原文:Dynamic controller routing in ASP.NET Core 3.0 作者:Filip W 译文:https://www.cnblogs.com/lwqlun/p/114 ...
- 探索ASP.Net Core 3.0系列六:ASP.NET Core 3.0新特性启动信息中的结构化日志
前言:在本文中,我将聊聊在ASP.NET Core 3.0中细小的变化——启动时记录消息的方式进行小的更改. 现在,ASP.NET Core不再将消息直接记录到控制台,而是正确使用了logging 基 ...
- ASP.NET Core 3.0 上的gRPC服务模板初体验(多图)
早就听说ASP.NET Core 3.0中引入了gRPC的服务模板,正好趁着家里电脑刚做了新系统,然后装了VS2019的功夫来体验一把.同时记录体验的过程.如果你也想按照本文的步骤体验的话,那你得先安 ...
- [翻译] ASP.NET Core 3.0 的新增功能
ASP.NET Core 3.0 的新增功能 全文翻译自微软官方文档英文版 What's new in ASP.NET Core 3.0 本文重点介绍了 ASP.NET Core 3.0 中最重要的更 ...
- 【翻译】asp.net core 3.0基本概念
这篇文章描述了开发asp.net core所需要掌握的基本概念. 原文地址:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/?vie ...
- ASP.NET Core 1.0基础之日志
过年出去玩了一圈,回来继续翻译.前两天偷懒没有翻译,只是转了两篇C# 7计划中的新features,大家还是很支持的.现在继续完善这个系列. 来源https://docs.asp.net/en/lat ...
- ASP.NET Core 2.0 : 三. 项目结构
本章我们一起来对比着ASP.NET Framework版本看一下ASP.NET Core 2.0的项目结构.(此后的文章也尽量这样对比着, 方便学习理解.) 关注差异, 也为项目迁移做准备. 新建项目 ...
- 【翻译】介绍 ASP.NET Core 中的 Razor Pages
介绍 ASP.NET Core 中的 Razor Pages 原文地址:Introduction to Razor Pages in ASP.NET Core 译文地址:介绍 asp. ...
- 从ASP.NET Core 3.0 preview 特性,了解CLR的Garbage Collection
前言 在阅读这篇文章:Announcing Net Core 3 Preview3的时候,我看到了这样一个特性: Docker and cgroup memory Limits We conclude ...
随机推荐
- java国际化
import java.util.Locale; import org.junit.Test; /** * 使用指定的国际化文件 */ public class Demo { @Test public ...
- MyBatis笔记----报错:Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)解决方法
报错 Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound st ...
- java验证码的制作和验证
验证码作用: 没有验证码登陆,黑客会更加容易破解你的账号,通过组合码刷机等黑客技术来破取你的密码,有了验证码相当于加了一层很厚的屏障,安全系数很高. 验证码是一种区分用户是计算机和人的公共全自动程序. ...
- Linux CFS调度器之pick_next_task_fair选择下一个被调度的进程--Linux进程的管理与调度(二十八)
1. CFS如何选择最合适的进程 每个调度器类sched_class都必须提供一个pick_next_task函数用以在就绪队列中选择一个最优的进程来等待调度, 而我们的CFS调度器类中, 选择下一个 ...
- LeetCode算法题-Third Maximum Number(Java实现-四种解法)
这是悦乐书的第222次更新,第235篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第89题(顺位题号是414).给定非空的整数数组,返回此数组中的第三个最大数字.如果不存 ...
- python 列表 元祖
# # 1,写代码,有如下列列表,按照要求实现每⼀一个功能li = ["alex", "WuSir", "ritian", "ba ...
- Spark大数据平台安装教程
一.Spark介绍 Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎.Spark是开源的类Hadoop MapReduce的通用并行框架,Spark拥有Hadoop MapRe ...
- UVA690-Pipeline Scheduling(dfs+二进制压缩状态)
Problem UVA690-Pipeline Scheduling Accept:142 Submit:1905 Time Limit: 3000 mSec Problem Descriptio ...
- 已使用.netframework,version=v4.6.1 而不是目标框架netcoreapp,version=v2.1 还原包,此包可能与项目不完全兼容
已使用.netframework,version=v4.6.1 而不是目标框架netcoreapp,version=v2.1 还原包,此包可能与项目不完全兼容 NU1202: 包 System.Run ...
- pytorch例子学习——TRAINING A CLASSIFIER
参考:https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#sphx-glr-beginner-blitz-cifar1 ...