.NET平台系列10 .NET统一平台愿景
2019年,微软分享了【统一的.NET堆栈和生态系统的愿景】。给开发者带来的价值是,将能够使用一组API,语言和工具来针对广泛的应用程序类型,包括移动,云,桌面和IoT。可能会意识到,如今已经可以使用.NET定位广泛的平台,但是,这些工具和API在Web和Mobile上并不总是相同的,例如它们不是同时发布的。
作为.NET 5.0和6.0的一部分,我们正在将.NET统一到一个单一的产品体验中,同时使您能够选择希望使用的.NET平台的各个部分。如果您希望以移动设备而不是WebAssembly为目标,则不需要下载WebAssembly工具,反之亦然。与ASP.NET Core和WPF相同。您还可以更轻松地从命令行获取所需的所有.NET工具、构建包和运行时包。我们正在为.NET平台组件启用包管理器体验(包括使用现有的包管理器)。这对于很多场景来说都很好。快速构建开发环境和CI/CD可能是最大的受益者。
我们本打算用.NET5.0实现整个统一愿景,但在全球流行之后,我们必须适应客户不断变化的需求。我们一直在与来自世界各地的公司的团队合作,这些公司需要帮助来加快云技术的采用。他们也必须适应顾客不断变化的需求。因此,我们在两个版本中实现了这一愿景。

实现这一愿景的第一步是整合.NET仓库,其中包括很大一部分的Mono。为运行时提供一个repo和为.NET提供一个库是在任何地方提供相同产品的先决条件。它也有助于做出影响运行时和库的广泛更改,因为以前存在repo边界。一些人担心大型回购会更难管理。事实证明并非如此。
在.NET 5.0版本中,Blazor是利用回购合并和.NET统一的最佳示例。Blazor WebAssembly的运行时和库现在是从合并的dotnet /运行时仓库中构建的。例如,这意味着服务器上的Blazor WebAssembly和Blazor使用与完全相同的代码,如:List<T>。.NET 5.0之前的Blazor并非如此。我们为Blazor WebAssembly采取的方法与在.NET 6.0中使用Xamarin的方法非常相似。
.NET Framework仍然是受支持的Microsoft产品,并且每个新版本的Windows都将继续支持.NET Framework。去年,我们宣布已停止向.NET Framework添加新功能,并已向.NET Core添加.NET Framework API。这意味着现在是考虑将.NET Framework应用程序移至.NET Core的绝佳时机。对于.NET Framework客户端开发人员,.NET 5.0支持Windows窗体和WPF。我们已经从许多开发人员那里听说,从.NET Framework进行移植非常简单。对于.NET Framework服务器开发人员,您需要采用ASP.NET Core才能使用.NET 5.0。对于Web Forms开发人员,我们认为Blazor通过高效且更加现代的实现方式提供类似的开发人员体验。WCF服务器和Workflow用户可以查看支持那些框架的社区项目。在从.NET框架到.NET核心移植文档是一个良好的开端。综上所述,如果您对自己的应用程序感到满意,那么将应用程序保持在.NET Framework上是一种很好的方法。
Windows团队正在研究Reunion,这是UWP和相关技术的下一步。我们一直在与Reunion团队合作,以确保.NET 5.0和更高版本可以与WinUI和WebView2很好地配合使用。Project Reunion回购是了解最新进展的最佳场所。

参考文献:https://devblogs.microsoft.com/dotnet/announcing-net-5-0/
.NET平台系列10 .NET统一平台愿景的更多相关文章
- .NET平台系列13 .NET5 统一平台
系列目录 [已更新最新开发文章,点击查看详细] 时机决定一切,对于 .NET5 也是如此.实际上微软.NET团队在开始开发 .NET Core 时,对 .NET Framework 的全面重写 ...
- .NET平台技术体系梳理+初学者学习路径推荐+我们的愿景与目标
文章出自:http://www.cnblogs.com/ice-river/p/3475041.html 一 .NET平台技术体系梳理 .NET平台应用领域众多(桌面开发,web开发,移动开发),不断 ...
- UWP 统一平台开发介绍
什么是UWP? 很多程序员都有一个梦想:希望自己开发的软件能够轻而易举的在所有平台上运行,而不是把同样的需求,用不同的技术.工具重新开发才能够运行在所有平台上.这就是跨平台,很多软件从业者都在为这个梦 ...
- [渣译文] SignalR 2.0 系列: 支持的平台
原文:[渣译文] SignalR 2.0 系列: 支持的平台 英文渣水平,大伙凑合着看吧,并不是逐字翻译的…… 这是微软官方SignalR 2.0教程Getting Started with ASP. ...
- Microsoft Azure 微软云平台系列新品发布
在移动为先,云为先的今天,微软为拥抱云文化的企业提供了技术和工具.利用创新且全面的移动解决方案和开发者工具,微软有独到之处,它帮助所有客户在云为先时代中发现潜在价值. 正如希望加快云创新步伐的你们所期 ...
- 容器云平台No.10~通过gogs+drone+kubernetes实现CI/CD
什么是CI/CD 持续集成(Continous Intergration,CI)是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每 ...
- .NET6 平台系列4 .NET开源之路
系列目录 [已更新最新开发文章,点击查看详细] .NET平台是微软于2000年推出的Windows操作系统的应用软件开发框架,发展至今形成巨大的技术栈,涉及多语言(支持C#.F#.VB.NET ...
- .NET平台系列5 .NET Core 简介
系列目录 [已更新最新开发文章,点击查看详细] 自1995年互联网战略日以来最雄心勃勃的事业 -- 微软.NET战略, 2000年6月30日. 微软公司于2002年2月13日正式推出第一代.N ...
- .NET平台系列21:云原生时代 .NET5 雄霸天下
系列目录 [已更新最新开发文章,点击查看详细] 随着互联网持续高歌猛进,相关技术名词也是层出不穷.微服务.容器化.DevOps.ServerLess.FaaS,这两年最火的当属云原生Cloud ...
随机推荐
- 走进springboot
SpringBoot基础 核心思想---自动装配---约定大于配置 开发环境:jdk1.8.maven.springboot.idea 一.快速构建一个springboot项目 1.1.进入sprin ...
- 亲测有效,解决80端口被svchost.exe进程占用的问题,网上的方法不行,可以试试这个
先说网上无效的方法(个人尝试无效,不具有代表性): 网上第一个说法:把IIS给关了,Windows10系统本身IIS是处于禁用状态的,并且没有额外安装IIS和启动IIS. 网上第二个说法:和SQL S ...
- Vue3教程:Vue 3 + Element Plus + Vite 2 的后台管理系统开源啦
之前发布过一篇文章<Vue3教程:开发一个 Vue 3 + element-plus 的后台管理系统>,文中提到会开发并开源一个 Vue 3 + Element Plus 的项目供大家练手 ...
- Java学习笔记--文件IO
简介 对于任何程序设计语言,输入和输出(Input\Output)都是系统非常核心的功能,程序运行需要数据,而数据的获取往往需要跟外部系统进行通信,外部系统可能是文件.数据库.其他程序.网络.IO设备 ...
- 华为云PB级数据库GaussDB(for Redis)揭秘第八期:用高斯 Redis 进行计数
摘要:高斯Redis,计数的最佳选择! 一.背景 当我们打开手机刷微博时,就要开始和各种各样的计数器打交道了.我们注册一个帐号后,微博就会给我们记录一组数据:关注数.粉丝数.动态数-:我们刷帖时,关注 ...
- Jmeter对数据库批量增删改查
本文主要的内容是使用Jmeter对数据库进行数据的操作,包括单条语句的增删改查,多条语句的增删改查,本文主要介绍操作流程,关于流程的运作原理,对原理感兴趣的同学可自行查阅资料. 首先需要准备一个数据库 ...
- Circular Sequence UVA - 1584
Some DNA sequences exist in circular forms as in the following figure, which shows a circular sequ ...
- Django 视图(View)
1. 视图简介 2. URLconf 1)关联各应用下的 URLconf 2)URLconf 的编写 3)namespace 反向解析 3. 视图函数&错误视图 4. HttpRequest ...
- 痛!痛!痛!我们的好兄弟Git,一路走好!
文章是正经文章,标题不要在意,哈哈 Git作为现在主流的版本控制工具,但是如何在软件开发过程中进行合理的分支管理是一个见仁见智的问题. 接下来我会对比下现有的几种比较普遍的分支管理方式和之前在阿里时候 ...
- 1113 Integer Set Partition
Given a set of N (>) positive integers, you are supposed to partition them into two disjoint sets ...