.NET Conf 2021 正在进行中,带你看一看微软带来了什么内容
今年最大的.NET活动正在进行, 可以通过Channel9 https://channel9.msdn.com/Events/dotnetConf/2021 看具体的Session 。微软和社区一直在努力统一.NET技术栈。从Visual Studio 到 SQL 和 Azure ,所有功能聚集一堂,让您在桌面、网络、移动和跨平台开发梦想成为现实。在第一天的Keynotes上斯科特 ·亨特 和其他的团队成员为我们做.NET 6发布的相关说明。
首先是回顾了.NET统一平台的生态系统,这张图相比以往有大的变化, 底层完成了统一,生态工具越发完整。自2014年11月12日宣布开源后,.NET就成为了一个跨平台、面向多场景的技术。你可以在传统的Windows上安装.NET,也可以在Linux,macOS下安装.NET并进行云原生、桌面、移动应用、大数据、机器学习、游戏、物联网的开发。这次更新也围绕这些场景,为不同行业进行赋能。

过往一年.NET的生态继续增长,使用vs开发的人数增长到了540万,特别是.NET 6的开发,社区贡献者超过6900人,贡献的超过2.1W。

NET 6 带来了许多性能改进和生产力提升,而且还是一个长期支持版本,意味着你除了可以稳定地使用外,还可以得到安全和补丁更新。根据.NET官网上的资料,.NET 6在2023年11月前都会得到维护,所以大家可以安心使用 。在.NET 的每个连续版本中,.NET 在执行速度和内存使用方面都取得了一些令人印象深刻的进步。如果你一直没有跟踪, 你很可能会被. NET 框架的累积收益吹走。这一点你可以看看Techempower的测试的报告,具体参见 https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=composite

Visual Studio 2022从公开预览开始,微软就告诉⼤家这是第⼀个64位版本的Visual Studio。这意味着你不再需要受限于devenv.exe进程内4G内存的限制,开发人员能够更快打开,编辑,运⾏和调试更多大而复杂的解决⽅案。当然Visual Studio 2022是64位应⽤程序,但它是不会改变通过Visual Studio构建应⽤程序的类型和位数。也就是说你依然可以通过它去维护你之前构建的32位应⽤程序,以及基于arm架构的应⽤程序
Visual Studio 2022 让开发团队更快地构建云原生应用。结合GitHub Actions , 更好地让你的云原生应用能够基于CI/CD快速迭代,提升开发效率。当你构建初次构建云应用时,Visual Studio 2022就会帮你设置你所需要的相关配置,如Azure环境,如GitHub Actions 上所对应的设置等。让开发⼈员更专注于开发。
Visual Studio 2022 更好地让你编写.NET应⽤程序,⽆论你是传统的桌面和网页开发人员,是基于全新的Blazor构建你的Web解决⽅案,还是基于MAUI的跨平台客户端解决方案,你都可以通过Visual Studio 2022快速搭建,编写,调试和部署。当然之前闹得沸沸扬扬的热重载都会在Visual Studio 2022出现。作为.NET 开发⼈员的你不心动么?

.NET升级助手已经支持.NET 6,帮助你把传统的.NET Framework应用程序升级到.NET 6

C#语言的最新版本是10.0,有几个有趣的变化,对于爱整洁的csharper 来说,全局引用(Global using)和 文件范围的命名空间 是很好的互补。现在,您可以声明适用于整个编译单元(很可能是项目)的全局使用,并避免到每个文件顶部的去添加相同指令集。文件范围的命名空间还允许您声明适用于给定文件中所有代码的命名空间,无需单行无需更多匹配卷曲大括号,源文件中的凹痕级别也较少。

Minimal API 是构建 HTTP 服务的另一种方法,用于开发云原生应用是很爽的。在.NET 6通过 web 模板创建的项目都会使用Minimal API。这里需要说明⼀点:Minimal API不会取代大家熟悉的MVC框架。如果你的应用是希望构建API,建议使用web模板的方式去构建。但如果你需要更多与 ASP.NET页面相关的东西建议还是使用MVC模板。

微软云服务的产品已经使用.NET 5/6构建,获得了很大的收益,你访问https://cn.bing.com/version 就知道bing已经运行在.NET 6

YARP 也发布了期待的1.0, Microsoft Dynamics 365 和 Azure App Service已经在使用YARP。

从单体应用到微服务应用的开发也是.NET 6的主要场景,各类云服务已经全面支持.NET6,AKS 搭配Dapr 上运行dotnet应用是最佳选择,微软已经推出的Azure Container Apps 就是集成 了Dapr,使用Visual Studio 2022开发容器化应用程序可以直接发布到Azure Container Apps,具体参见我的另外一篇文章<集成Dapr的 Azure 容器应用>了解一下Azure Container Apps



在 ASP.NET Core 6 里面有大量的更新是关于Blazor。例如,Blazor 应用程序现在可以直接编译到 WebAssembly,以便在 IL 解释(即.NET 本地编译)版本的相同代码上来提高应用程序速度。本地编译/调试体验仍然很快,因为漫长的编译时间仅适用于包装/发布。微软也为Blazor的开发带来了一套组件库Blazor Fluent UI




还有一个非常有趣的功能,使 Blazor 可用于通过 MAUI 编写桌面应用程序。Blazor 的最大好处就是开发人员可以完全用 C# 编写 Web 应用程序,而不需要为了写前端必须切换到 Javascript。如果没有 C# 和 Javascript 之间的额外接缝,前端和后端代码之间就不需要映射层。可以在两侧使用相同的 C# 模型,这意味着需要的代码更少,因此开发应用程序所需的时间也更少。Blazor 桌面进一步扩展了这一概念,以允许此共享代码现在也可以与桌面应用程序无缝集成。

MAUI 是 Xamarin 的演进,还包括桌面平台。它允许从单个代码库针对 iOS、Android、macOS 和 Windows。MAUI 处理对本机平台 API 的抽象,因此您可以以与平台无关的方式访问设备传感器等内容。对 Xamarin 的一种印象是,它们最终得到的界面很少,而且在任何平台上都不太好看。MAUI 将如何解决这一问题还有待观察。如果你关心的是跨多个平台的开发速度和维护成本,那么 MAUI 值得仔细研究。MAUI 要在2022年的第二个季度正式发布,大会上发布了.NET MAUI Preview 10, 很多同学安装了VS2022却找不到MAUI,因为他需要 需要使用Visual Studio 2022 的Preview 通道下安装17.1 Preview,建议当前采取观望的方法,进行小的尝试以了解平台在全面采用之前的长期发展方向。

.NET Conf 2021 正在进行中,带你看一看微软带来了什么内容的更多相关文章
- VC++ GetModuleFileName()获取路径字符串中带波浪线~
GetModuleFileName()获取的字符串中带波浪线,不是完整的路径显示. 原因:获取的是短路径,进行了缩写 解决:还原长路径 TCHAR }; GetLongPathName( strTem ...
- mysql: update字段中带select
update字段中带select UPDATE tb_report_type A INNER JOIN (SELECT LEVEL_CODE FROM tb_report_type WHERE id ...
- (转)MySQL数据表中带LIKE的字符匹配查询
MySQL数据表中带LIKE的字符匹配查询 2014年07月15日09:56 百科369 MySQL数据表中带LIKE的字符匹配查询 LIKE关键字可以匹配字符串是否相等. 如果字段的值与指定的 ...
- mysql进阶(五)数据表中带OR的多条件查询
MySQL数据表中带OR的多条件查询 OR关键字可以联合多个条件进行查询.使用OR关键字时: 条件 1) 只要符合这几个查询条件的其中一个条件,这样的记录就会被查询出来. 2) 如果不符合这些查询条件 ...
- [转]关于python中带下划线的变量和函数的意义
Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读, ...
- 【.net】在ASP.NET中,IE与Firefox下载文件名中带中文汉字的文件,文件名乱码的问题
#问题:客户端为ie或Firefox,服务端为asp.net时,下载文件名中包含中文汉字时,下载下来的文件的文件名是乱码: #解决方案: 示例代码:下载名称中带汉字的文件: public void P ...
- IE浏览器url中带中文报错的问题;以及各种兼容以及浏览器问题总结
1.解决IE浏览器url带中文报错 /* encodeURI()解决IE浏览器请求url中带中文报错的问题 */ URL = encodeURI("<%=basePath%>ve ...
- hibernate中带查询条件的分页
所谓分页,从数据库中分,则是封装一个分页类.利用分页对象进行分页. 但,分页往往带查询条件. 分页类的三个重要数据:[当前页码数],[数据库中的总记录数],[每页显示的数据的条数] 原理:select ...
- Java中带包(创建及引用)的类的编译
Java中带包(创建及引用)的类的编译与调试 java源程序的编译大家都知道,也就是cmd中到源文件所在目录下javac **.java即可,当程序中有包声明还能简简单单的直接javac **.jav ...
随机推荐
- [转载]centos6.3安装启动使用PostgreSQL 9.2
----------------------------------------------安装---------------------------------------------------- ...
- 鸿蒙内核源码分析(挂载目录篇) | 为何文件系统需要挂载 | 百篇博客分析OpenHarmony源码 | v65.01
百篇博客系列篇.本篇为: v65.xx 鸿蒙内核源码分析(挂载目录篇) | 为何文件系统需要挂载 | 51.c.h.o 文件系统相关篇为: v62.xx 鸿蒙内核源码分析(文件概念篇) | 为什么说一 ...
- PolarDB PostgreSQL 快速入门
什么是PolarDB PostgreSQL PolarDB PostgreSQL(下文简称为PolarDB)是一款阿里云自主研发的云原生数据库产品,100%兼容PostgreSQL,采用基于Share ...
- go 成长路上的坑(2)
请看代码 代码一 package main import "fmt" func main() { var a Integer = 1 var b Integer = 2 var i ...
- 一个故事看懂CPU的TLB
Hi,我是CPU一号车间的阿Q,还记得我吗,真是好久不见了- 我所在的CPU是一个八核CPU,就有八个工作车间,那运行起来速度杠杆的- 虚拟地址翻译 一大早,我们一号车间MMU(内存管理单元)部门的小 ...
- 踩坑系列《七》解决VMware安装完成之后,不能联网的问题
成功安装CentOS 6.5 好之后,它是默认并不能联网,这时候得需要对root用户进行网络设置 1.先登录root账户 2.命令行输入以下命令,修改配置文件 vim /etc/sysconfig/n ...
- hdu3001(三进制状压)
题目大意: 现在给你一个有n个点和m条边的图,每一条边都有一个费用,每个点不能经过超过两次,求所有点至少遍历一次的最小费用 其中n<=10 m没有明确限制(肯定不会超过1e5) 一看到这个数据范 ...
- ls命令剖析
目录 ls命令剖析 资料翻译 SYNOPSIS 使用方式 DESCRIPTION 说明 参数的说明 -l 参数字符的解释 文件权限的解释 FILES 文件夹 实战演练 ls 命令 ls -l 命令 l ...
- 面试官:Java从编译到执行,发生了什么?
面试官:今天从基础先问起吧,你是怎么理解Java是一门「跨平台」的语言,也就是「一次编译,到处运行的」? 候选者:很好理解啊,因为我们有JVM. 候选者:Java源代码会被编译为class文件,cla ...
- Vue3学习(五)之集成HTTP库axios
一.安装axios npm install axios@0.21.0 --save 二.axios的使用 1.在主页中引用axios 在Vue3新增了setup初始化方法,所以我们在这里开始使用并测试 ...