.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 ...
随机推荐
- promise对象总结
一.Promise是异步编程的一种解决方案,它是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果.从语法上说,Promise 是一个对象,从它可以获取异步操作的消息.Promis ...
- NetCore5实现https请求
前言 本文主要介绍在NetCore5中,实现证书加载和https访问请求. 证书准备 首先我们先创建一个自定义的证书Kiba518.pfx. 证书创建参考:最通俗易懂的RSA加密解密指导. 然后将证书 ...
- 自学 Python,视频教程和代码一看就懂,动手就废,应该这么学
一.代码量太少了,看得多做得少,导致一做就错. 每一个测试工程师必定是在大量的时间和代码中提升的自己,如果你只是看视频的话,那永远都停留在理论上,很多问题是要实践才能发现的 我打个比方你看视频的时 ...
- Spring Cloud Gateway 动态修改请求参数解决 # URL 编码错误传参问题
Spring Cloud Gateway 动态修改请求参数解决 # URL 编码错误传参问题 继实现动态修改请求 Body 以及重试带 Body 的请求之后,我们又遇到了一个小问题.最近很多接口,收到 ...
- Win32对话框模板创建的窗口上响应键消息,Tab焦点切换消息,加速键消息
今天在学习的时候,发现对话框上不响应键盘消息,查了老半天,终于成功了,现分享出来, 1,首先要在消息循环的时候加如下代码. int WINAPI WinMain(_In_ HINSTANCE hIns ...
- 运用shapefile.js解析Shp文件
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
- Lynis 漏洞扫描工具部署及效果展示
Lynis 漏洞扫描工具部署及效果展示 介绍 Lynis是一个安全审计工具,它可以在Linux,macOS和其他基于Unix的系统上运行.Lynis的主要重点是执行系统的运行状况检查,它还有助于检测漏 ...
- java的加载与执行原理详解
java程序从开发到最终运行经历了什么? (31) 编译期: 第一步:在硬盘某个位置(随意),新建一个xxx.java文件 第二步:使用记事本或者其他文本编辑器例如EditPlus打开xxx.java ...
- Bug概述、状态、类型、级别、优先级提交和Bug生命周期管理
缺陷概述: 1)缺陷(Defect):是指存在于软件之中偏差,可被激活,以静态形式存在于软件内部,相当于Bug. 2)故障(Fault):当缺陷被激活后,软件运⾏中出现的状态,可引起意外情况,若不加处 ...
- 从源码层面深度剖析Redisson实现分布式锁的原理(全程干货,注意收藏)
Redis实现分布式锁的原理 前面讲了Redis在实际业务场景中的应用,那么下面再来了解一下Redisson功能性场景的应用,也就是大家经常使用的分布式锁的实现场景. 引入redisson依赖 < ...