今年最大的.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 正在进行中,带你看一看微软带来了什么内容的更多相关文章

  1. VC++ GetModuleFileName()获取路径字符串中带波浪线~

    GetModuleFileName()获取的字符串中带波浪线,不是完整的路径显示. 原因:获取的是短路径,进行了缩写 解决:还原长路径 TCHAR }; GetLongPathName( strTem ...

  2. mysql: update字段中带select

    update字段中带select UPDATE tb_report_type A INNER JOIN (SELECT LEVEL_CODE FROM tb_report_type WHERE id ...

  3. (转)MySQL数据表中带LIKE的字符匹配查询

    MySQL数据表中带LIKE的字符匹配查询 2014年07月15日09:56    百科369 MySQL数据表中带LIKE的字符匹配查询 LIKE关键字可以匹配字符串是否相等. 如果字段的值与指定的 ...

  4. mysql进阶(五)数据表中带OR的多条件查询

    MySQL数据表中带OR的多条件查询 OR关键字可以联合多个条件进行查询.使用OR关键字时: 条件 1) 只要符合这几个查询条件的其中一个条件,这样的记录就会被查询出来. 2) 如果不符合这些查询条件 ...

  5. [转]关于python中带下划线的变量和函数的意义

    Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读, ...

  6. 【.net】在ASP.NET中,IE与Firefox下载文件名中带中文汉字的文件,文件名乱码的问题

    #问题:客户端为ie或Firefox,服务端为asp.net时,下载文件名中包含中文汉字时,下载下来的文件的文件名是乱码: #解决方案: 示例代码:下载名称中带汉字的文件: public void P ...

  7. IE浏览器url中带中文报错的问题;以及各种兼容以及浏览器问题总结

    1.解决IE浏览器url带中文报错 /* encodeURI()解决IE浏览器请求url中带中文报错的问题 */ URL = encodeURI("<%=basePath%>ve ...

  8. hibernate中带查询条件的分页

    所谓分页,从数据库中分,则是封装一个分页类.利用分页对象进行分页. 但,分页往往带查询条件. 分页类的三个重要数据:[当前页码数],[数据库中的总记录数],[每页显示的数据的条数] 原理:select ...

  9. Java中带包(创建及引用)的类的编译

    Java中带包(创建及引用)的类的编译与调试 java源程序的编译大家都知道,也就是cmd中到源文件所在目录下javac **.java即可,当程序中有包声明还能简简单单的直接javac **.jav ...

随机推荐

  1. 重新整理 .net core 周边阅读篇————AspNetCoreRateLimit 之规则[二]

    前言 本文和上文息息相关. https://www.cnblogs.com/aoximin/p/15315102.html 是紧接着上文invoke来书写的,那么现在来逐行分析invoke到底干了啥. ...

  2. Win10连WiFi显示无internet,安全 却可以正常上网

    1.现象: win10连WiFi显示无internet,安全 可以正常上网 2.原因: Wind10升级系统补丁后,更新了系统检查是否联网的注册表配置,新的域名在国内存在无法连接情况.导致此问题发生 ...

  3. netty 处理客户端连接

    Netty如何处理连接事件 上文讲了Netty如何绑定端口,现在我们来阅读下netty如何处理connect事件.上文我们说了NioEventLoop启动后不断去调用select的事件,当客户端连接时 ...

  4. 题解 Crash 的文明世界

    题目传送门 题目大意 给出一个\(n\)个点的树,和常数\(k\),对于\(\forall i\in[1,n]\),求出: \[\sum_{j=1}^{n} \text{dist}(i,j)^k \] ...

  5. 一个神秘的oj2587 你猜是不是dp(线段树优化建图)

    哇 这难道不是happiness的翻版题嘛? 从\(S\)向一个点连染成白色的收益 从这个点向\(T\)连染成黑色的收益 对于额外的收益,建一个辅助点,跟区间内的每个点连\(inf\),然后向S/T, ...

  6. C++ IDE或编辑器安装

    IDE介绍 上节课我们讲了C++编译器,可是没有好的编辑器,只用记事本打代码,这谁受得了.Linux vim至少还有代码高亮(即我作文里经常会出现的"彩色的代码"),记事本连高亮都 ...

  7. docker初探和基础搭建

    个人博客 docker中文手册 Docker 是什么? docker是一个开源的软件部署解决方案: docker也是轻量级的应用容器框架: docker可以打包.发布.运行任何的应用. 在我的粗浅理解 ...

  8. .NET下使用ufun函数取CAM操作的进给速度

    UF_PARAM_ask_subobj_ptr_value,这个函数在封装的时候,给了很大一个坑啊. NXOpen.UF.UFParam.AskSubobjPtrValue(ByVal param_t ...

  9. Visual Studio 安装 C++

    Visual Studio 安装 C++

  10. ThreadLocalRandom类原理分析

    1.Random类及其局限性 public int nextInt(int bound) { if (bound <= 0) throw new IllegalArgumentException ...