.NET6

大家好,经过多个月的迭代,.NET 6正式版如期和大家见面了!你安装好了吗?还是等等党?希望看完这篇文章你会对.NET 6有更多了解。

自2014年11月12日宣布开源后,.NET就成为了一个跨平台、面向多场景的技术。换句话说,你可以在传统的Windows上安装.NET,也可以在Linux,macOS下安装.NET并进行云原生、桌面、移动应用、大数据、机器学习、游戏、物联网的开发。这次更新也围绕这些场景,为不同行业进行赋能。

.NET 6是一个LTS版本,意味着你除了可以稳定地使用外,还可以得到安全和补丁更新。根据.NET官网上的资料,.NET 6在2023年11月前都会得到维护,所以大家可以安心使用。

如果你还没有/准备安装.NET 6,请点击以下链接

https://aka.ms/InstallD

(扫码打开链接)

.NET6 有不少更新,针对不同应用场景都有很多亮点,下面进行一些归纳:

1.

Minimal API

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

dotnet new web -o webapidemo

看看默认Program.cs程序结构

var builder = WebApplication.CreateBuilder(args);

var app = builder.Build();

app.MapGet("/",()=>"Hello World!");

app.Run();

你可以用四行代码快速完成一个API功能。当然你可以基于你的需要去添加MVC模块,验证模块等,这就看项目的需要了。

更多关于Minimal API ,请点击以下链接

https://aka.ms/LearnDN001

(扫码查阅更多Minimal API信息)

2.

热更新

在之前发布封版前,热更新成为了热门话题,微软作为一个商业公司能够针对社区的要求,为.NET 6 保留社区所需是非常赞的。这对于微软和开源社区接触也是一件好事。

我们先来认识下热更新,最早期热更新主要是面向移动应用,特别iOS应用更新的一种最常见的方式。不少开发者通过动态下发代码,它可以在不发布新版本的情况下,修复 BUG 和发布功能,让开发者得以绕开苹果的审核机制,避免因长时间审核等待以及多次被拒造成的成本。我记得.NET应用热更新场景也是在Xamarin下,慢慢地大家就希望如果代码编写能实现热更新,就可以减少编译的时间,即所见即所得。

在.NET 6 你可以通过Windows下的Visual Studio 2022 实现,也可以通过CLI方式实现。

通过命令行执行相关的HotReload 非常简单,你只需要在对应项目中执行一下命令就可以为你的Web应用实现HotReload了

dotnet watch run

当然你也可以通过以下命令停止HotReload的功能

dotnet watch run --no-hot-reload

更多关于.NET CLI HotReload ,请点击以下链接查阅

https://aka.ms/LearnDN002

(扫码查阅更多.NET CLI HotReload信息)

3.

MAUI

关于MAUI,我对它的感情是非常深,从早期的monotouch到Xamarin,再到现在的MAUI。有人会觉得微软放弃了Xamarin,但是我觉得完全并入到.NET 6正是微软重视Xamarin的表现,我记得在7月Reactor的.NET Day上讨论过MAUI的架构,你会发现它是.NET 6最重要的⼀环。

你直接可以通过命令⾏构建你的MAUI项⽬

dotnet new maui -o mauidemo

从不少资料上你可以了解到MAUI对Xamarin的控件做了重新的封装,实现更高效能。但我想和大家回顾下当时MAUI发布就有一个令我喜欢的功能,那就是在Visual Studio Code上Debug MAUI,这得益于新的项目结构,但更重要是它终于让MAUI的开发更加极客了。但现在 MAUI的正式版还没有release,但我在Github上找到一个类似的项目可以给大家先体验一把 (https://github.com/Clancey/vscode-comet)

更多关于MAUI ,请点击以下链接查阅

https://aka.ms/LearnDN003

(扫码查阅更多MAUI信息)

4.

关于workload

随着.NET应用场景的增加,不同的用户需要的支持不尽相同,例如我专注于 MAUI的应用,这个时候我就需要iOS、macOS、Android的支持,但默认情况下是没有做相关的SDK添加的。因为如果全部场景的功能都合并到SDK,就变成一个巨物了,从编译到部署都是非常麻烦的。.NET团队致力于维护SDK的小而精,针对不同场景在.NET 6中增加了workload去为不同场景做量身定制。

当我通过 dotnet new maui 的时候,在默认情况下是没有new maui的template的,而且也不会含有相关的一些SDK,这个时候系统会教你通过查找的方式去确认是否有官方或者地方的template。

通过命令⾏执行以下操作

dotnet workload install maui

可以把MAUI所需要的SDK安装起来,并添加好基于dotnet new maui的模板,真的非常方便和人性化,这样可以减少.NET SDK一些不必要的安装,太棒了。

你可以通过执行以下语句查看相关的workload有哪些

dotnet workload search

现在的场景有针对MAUI和Blazor的场景希望日后会添加更多的场景,满足更多的需要。

更多关于dotnet workload ,请点击以下链接查阅

https://aka.ms/LearnDN004

(扫码查阅更多dotnet workload信息)

5.

关于机器学习

我这几年投入到机器学习的时间非常多,也致力为.NET开发⼈员带来更多机器学习的知识。提到.NET 下的机器学习,我相信很多人都已经认识ML.NET了,但我⼀直在推荐的是开源TensorFlow.NET。

(https://github.com/SciSharp/TensorFlow.NET)

这个项目经过几年的发展现在已经为.NET在深度学习领域提供了很好的解决方案。这次通过.NET 6,微软带来了更多的场景,比如TorchSharp。

https://github.com/dotnet/TorchSharp

这是在 dotnet开源下的⼀个项目,它参照的就是TensorFlow.NET的方式,通过绑定PyTorch底层 C++ API实现了.NET原生的PyTorch框架。我相信以后大家可以在ML.NET下在深度学习的场景可以像Keras⼀样调用不同深度学习框架。

更多关于.NET机器学习的知识 ,请点击以下链接查阅

https://aka.ms/LearnDN005

(扫码查阅更多.NET机器学习信息)

.NET 6还有很多更新,包括在Blazor,在性能,在C# 10.0等,我这里就不⼀⼀和⼤家介绍了,⼤家感兴趣可以点击以下链接查阅。

https://aka.ms/LearnDN006查阅。

(扫码查阅更多.NET6更新)

.NET6 如期⽽⾄相关推荐

  1. linux开终端失败,Linux:终端提示符 (prompt) 不如期生效原因

    原标题:Linux:终端提示符 (prompt) 不如期生效原因 前言 先来简单介绍下, prompt是什么鬼? 顾名思义就是提示符的意思, 看起来和我们遥远, 但实际上只要是每个接触 shell的童 ...

  2. 将Teams app升级到net6

    net6 发布已经有一个多月了,因为我的LuckyDraw app是使用Azure app service,当时我查了一下app service还没有ready,昨天我又查看了一下,发现app ser ...

  3. .NET6之MiniAPI(三十):结束篇(附链接)

    不知不觉来到了<.NET6之MiniAPI>的第三十篇,回顾之前的篇幅,主要涉及如下: HTTP请求,应答 Request 桂素伟,公众号:桂迹.NET6之MiniAPI(二):reque ...

  4. 【Blog.Core开源】将Program升级为.NET6.0版本

    大家假期好,好久不见,之前忙于其他事情,公众号暂时搁置了一个月了,新的一年开始了,很多小伙伴开始催更了,粉丝的要求必须满足. 2022年打算重点推广BCVP社区,所以还是希望有愿意投稿的小伙伴,积极投 ...

  5. .NET6中关于Minimal API的简单使用

    微信公众号:趣编程ACE 收集并分享日常的.NET实战开发技巧,源码获取关注后回复 源码; **如果觉得本公众号对您有帮助,欢迎关注 本文来自社区群粉丝投稿 .NET6中关于Minimal API的简 ...

  6. 使用.Net6中的System.Text.Json遇到几个常见问题及解决方案

    前言 以前.NetCore是不内置JSON库的,所以大家都用Newtonsoft的JSON库,而且也确实挺好用的,不过既然官方出了标准库,那更方便更值得我们多用用,至少不用每次都nuget安装Newt ...

  7. 【贯穿】.NET6结合Docker傻瓜式实现容器编排

    常规开发部署的痛点 一个项目的开发上线有很多纷繁复杂的问题,例如:操作系统运行环境以及各种应用配置.集群环境搭建等等.特别是各种版本的迭代导致的不兼容,这些对于曾经的架构师而言也十分苦恼.而Docke ...

  8. 【C#/.NET】.NET6中全局异常处理

    微信公众号:趣编程ACE 关注可了解每日一更的.NET日常实战开发技巧,欢迎公众号留言开发 获取源码; .NET6中全局异常处理 异常处理是我们在程序开发中不可或缺的一环,下文我将会结合程序Sampl ...

  9. iNeuOS工业互联网操作系统,顺利从NetCore3.1升级到Net6的过程汇报,发布3.7版本...

    目       录 1..... 概述... 1 2..... 升级的工程... 3 3..... 升级的代码差异... 4 4..... 系统运行... 5 1.   概述 我们团队一直在工业领域从 ...

最新文章

  1. python图书馆管理系统实验报告_基于Python的图书馆业务报表自动生成研究
  2. SecureCrt使用技巧
  3. Spring框架 JdbcTemplate类 @Junit单元测试,可以让方法独立执行 如:@Test
  4. css样式全大写,用css样式表实现首字大写
  5. 数据挖掘初次接触!学习代码
  6. EHcache缓存框架详解
  7. 苹果黑色星期五大促销活动全球上线
  8. 深度优先搜索及广度优先搜索
  9. vue assets图片_Vue实战—如何细化Vue项目目录设计(2)
  10. 斯皮尔曼相关系数范围_什么是斯皮尔曼相关系数
  11. python矢量图_使用python制作矢量图
  12. 青少年CTF-Web-CheckMe01
  13. 业务流程再造理论的起源、演进及发展趋势
  14. 3dsMax Biped骨骼缩放
  15. Excel VBA导出操作
  16. 无创脑刺激对不同神经和神经精神疾病睡眠障碍的影响
  17. 【unity shader】unity游戏特效-仿《黑暗欺骗》模型消融消失效果
  18. ArcMap 数据的标注和注记
  19. oracle 数据字典画报,收藏!Oracle常用数据字典表、视图的总结,都在这里了
  20. CUDA 编程简介(上)

热门文章

  1. Linux bash shell基础语法
  2. [转]Linux中如何自动启动服务
  3. 在MinGW下使用DShow的方法
  4. android视图工具,android studio的HierarchyViewer工具如何知道android屏幕的视图属性
  5. HTML默认样式表CSS属性
  6. C语言文字加密程序的实现
  7. 2018-2019-1 20165234 《信息安全系统设计基础》第四周学习总结
  8. Confluence 6 配置服务器基础地址备注
  9. ⑥又是星期五,小试牛刀(编写定制标签)
  10. php7安装详解_,PHP7 redis扩展安装详解