微软的.NET战略最近可能还不清楚,在熟悉的.NET Framework和新的开源.NET Core中有两个截然不同的发展阶段。 一组通用的.NET标准库旨在将两者结合在一起,从而为开发人员提供了一种从Windows到移动终端到Web的所有目标平台上使用任何不同.NET版本的单一方法。 但这仍然意味着必须考虑使用哪个.NET运行时:Core,Xamarin,Mono或Framework?

.NET 5简介,.NET的未来

在Build 2019上,Microsoft 宣布了.NET的未来计划 ,宣布.NET Core 3之后的下一个主要版本将是名为.NET 5的.NET的单个版本。在重构和恢复活力的.NET的快速增长的基础上作为核心, Microsoft的目标是在.NET 5上运行许多现有的.NET Framework 4.8 API和功能,以及新的API和服务 。 不仅基类库正在融合; 微软借此机会将其不同的.NET编译器整合在一起,同时改进了.NET Core的JIT(即时)和Mono的提前编译模型。

[ InfoWorld的2020年度技术奖获奖者:年度最佳软件开发,云计算,数据分析和机器学习产品 ]

这不是一个令人惊讶的决定。 .NET Framework的发展速度不如.NET Core快,受遗留代码的影响。 加上微软对跨平台开发的日益关注,确保了从近二十年历史的Framework到更新的Core的果断转移是不可避免的。 从名称中删除Core也是合乎逻辑的。 自从发布以来就添加了API并支持.NET标准库,.NET Core实际上不再是重构的精简核心。 随着.NET 5标志着.NET Framework的开发结束,现在是时候重新命名了。

即使这样,也不会一夜之间发生变化。 .NET Core 3仍在交付中,并且.NET 5直到2020年秋季才发布。计划的2020年11月交付日期使我们有将近18个月的时间准备好我们的代码,而预览版本则在2020年上半年。

.NET Framework会发生什么?

微软明确指出的一件事:.NET Core 3将是移植.NET Framework API的最新版本。 因此,.NET 5中将没有任何其他框架API,并且某些较旧的技术(例如Web窗体和Windows Communication Foundation)将不会成为新平台的一部分。 如果要从.NET Framework 4.8过渡,则需要找到替代的,受支持的技术。 当前,Microsoft建议Blazor替换Web窗体,而gRPC替换WCF 。 它们是明智的选择,可以为您提供跨平台支持,而这些跨平台支持是旧技术无法提供的,并且Blazor使用Web Assembly或在ASP.NET中提供服务器端控件,它们现在支持许多新的更高性能技术。

微软对开发人员的建议是开始对所有新应用程序使用.NET Core 3 ,但是必须注意,这并不是.NET Framework应用程序的终点。 Microsoft致力于对.NET Framework的长期支持,因此,如果您在.NET Framework 4.8上运行了代码,则在准备好进行转变之前,不需要对其进行更新。 毕竟,它目前正在交付使用.NET Framework构建的核心开发人员工具,包括Visual Studio。 即使这样,由于新的.NET和旧的.NET Standard之间在许多基础类之间具有兼容性,因此迁移也不会很麻烦,并且将使您有机会在更多地方运行该代码。

但是,仅迁移代码将失去为云和微服务重构和重新设计应用程序的机会。 .NET 5正在为当今的IT世界开发,其首要任务是混合云和容器化分布式系统,而不是在1990年代后期诞生原始.NET的客户端-服务器世界。

跨平台世界的跨平台运行时

通过将.NET Core,.NET Standard和Xamarin统一在一个平台上,Microsoft的目标是抢占跨平台的制高点。 您的代码(带有一些UI工作)将能够在Windows,Linux,iOS,Android等平台上运行,并支持许多不同类别的设备。 添加.NET Core 3对Windows桌面的支持后,可以在.NET 5中构建各种应用程序,尤其是如果您借助Uno和.NET第三方.NET工具的支持来利用随处运行的UWP控件,则尤其如此。其他。

随着.NET实现超出.NET Core的范围, .NET标准库仍将占有一席之地 。 通用库使从同一源代码定位多个.NET版本变得更加容易,并且您的所有.NET 5代码都将使用.NET Standard,从而简化了将代码从.NET Core的较早版本以及其他.NET实现(例如,单声道或Xamarin。

正确设置.NET的企业地位

.NET 5公告的一个方面是.NET 的常规发布时间表 。 将.NET置于年度节奏上,并每两年发布一次长期支持,应减轻对开发人员的额外压力,从而增加缺少的可预测性水平。 知道.NET 6将会在2021年问世,而一年后将推出.NET 7,并且有了对长期支持版本的四年支持,这将使规划新功能和应用程序生命周期变得更加容易。 它将使Microsoft和.NET Foundation的其余部分能够发布明确的路线图,说明预期的目标和预期的目标。

在.NET生态系统之外,Microsoft还有另一个机会,它专注于开发人员工具订阅。 随着Oracle对Java许可条件的变化,免版税的开源企业运行时将对许多现有的Java开发团队有吸引力。 .NET 5发布18个月的启动可以看作是时候培训您的开发人员新语言和新工具,并计划在.NET微服务中重新实现应用程序。

综上所述,其结果是企业对开发人员友好的.NET路线图。 Microsoft和.NET Foundation致力于定期更新和单个跨平台运行时,同时仍确保不放弃旧的.NET Framework应用程序。 长期支持应有助于开发团队规划应用程序生命周期,选择升级内容和升级时间。 您可以开始使用.NET Core 3的当前预览版,为2020版本做好准备。

From: https://www.infoworld.com/article/3394865/net-5-what-the-merger-of-net-framework-and-net-core-means.html

.NET 5:.NET Framework和.NET Core的合并意味着什么相关推荐

  1. 一套代码同时支持.NET Framework和.NET Core

    在.NET Core的迁移过程中,我们将原有的.NET Framework代码迁移到.NET Core.如果线上只有一个小型的应用还好,迁移升级完成后,只需要维护.NET Core这个版本的代码. 但 ...

  2. .NET Framework VS .NET Core

    本文对应的原文来至 c-sharpcorner 的一篇文章,文末有链接.如有错误,还请指正. 前言 你会为你的下一个应用程序选择哪一种开发平台 - .NET Framework 或者 .NET Cor ...

  3. 通俗易懂:什么是.NET?.NET Framework?.NET Core?(比较全面)

    什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NET的相关概念,这主要包 ...

  4. .NET Framework、 .NET Core、.NET Standard区别。

    感谢书籍<ASP.NET Core 技术内幕与项目实战>及其作者杨中科. .NET开发平台是:.NET Framework. .NET Core.Xamarin/Mono的统称 .NET ...

  5. 你注意到 .Net Framework 和 .Net Core 中使用 Session 的区别了吗?

    起因 在测试一个例子时发现的问题,这个示例实现的功能是刷新页面也能保持表格锁定列的状态,先看下页面的完成效果: 测试中发现,几乎相同的代码: 在 FineUIMvc(Net Framework)下没有 ...

  6. .net core Entity Framework 与 EF Core

    重点讲 Entity Framework Core ! (一)Entity Framework 它是适用于.NET 的对象关系映射程序 (ORM),现在的EF6已经是久经沙场,并经历重重磨难,获得一致 ...

  7. .net framework与java,分布式事务:.NET Framework与.NET Core

    我有以下代码示例: static void Main(string[] args) { TransactionManager.DistributedTransactionStarted += (sen ...

  8. 你注意到 .Net Framework 和 .Net Core 中使用 Session 的区别了吗?

    在测试一个例子时发现的问题,这个示例实现的功能是刷新页面也能保持表格锁定列的状态,先看下页面的完成效果: 测试中发现,几乎相同的代码: 在 FineUIMvc(Net Framework)下没有问题: ...

  9. WebApi系列(从.Net FrameWork 到 .Net Core)

    一. 简介  1. 什么是WebApi? WebApi是一个很广泛的概念,在这里我们特指.Net平台下的Asp.Net WebApi框架,它是针对各种客户端(浏览器.APP等)来构建Http服务的一个 ...

最新文章

  1. MySQL innodb_autoinc_lock_mode 详解
  2. RandomRooms:用于3D目标检测的无监督预训练方法(ICCV2021)
  3. 静态页面和动态页面的区别
  4. 在Bash中将字符串拆分为数组
  5. python3+requests库框架设计08-发送邮件
  6. 基于tiny4412的Linux内核移植 -- eMMC驱动移植(六)
  7. Oracle管理拾遗(长期更新)
  8. FlashInspector 【Firefox浏览器插件,flash分析工具】
  9. python怎么保存文件代码_Python文件读写保存操作的实现代码
  10. C#中一行代码实现18位数字时间戳转换为DateTime
  11. 一次Linux磁盘损坏导致系统不可用恢复实例
  12. RabbitMQ批量确认发布
  13. 线程池的原理和连接池的原理
  14. .Net对SQL数据库的web备份
  15. java jdbc 连接mysql数据库,Java 通过JDBC连接Mysql数据库
  16. SQL注入:5、SQL盲注
  17. Maven 插件开发
  18. 【Java并发编程】—–“J.U.C”:ArrayBlockingQueue
  19. 解决Odoo出现的Unable to send email, please configure the sender's email address or alias.
  20. python 第一课作用

热门文章

  1. 跟踪 Ring3 - Ring0 的运行流程
  2. 怎么把电脑彻底清理干净?电脑怎么清理彻底
  3. SHL、SHR指令的区别
  4. 汇编语言SAL SHL的比较
  5. 采用多项目共同目标 PMO的管理优势
  6. 可达性(tarjan)
  7. 计算机组装与维修2试卷,《计算机组装与维修》期末试卷(A) (2)
  8. 日加满:践行企业责任 公益暖心之旅
  9. FaceID-GAN:Learning a Symmetry Three-Player GAN for Identity-Preserving Face Synthesis论文翻译和解读
  10. [大数据]数据可视化 -- 练习卷(上)