.NET6 如期而至
Posted kinfey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET6 如期而至相关的知识,希望对你有一定的参考价值。
大家好,经过多个月的迭代,.NET 6正式版如期和大家见面了!你安装好了吗?还是等等党?希望看完这篇文章你会对.NET 6有更多了解。
自2014年11月12日宣布开源后,.NET就成为了一个跨平台、面向多场景的技术。换句话说,你可以在传统的Windows上安装.NET,也可以在Linux,macOS下安装.NET并进行云原生、桌面、移动应用、大数据、机器学习、游戏、物联网的开发。这次更新也围绕这些场景,为不同行业进行赋能。
.NET 6是一个LTS版本,意味着你可以稳定地使用外,可以得到安全和补丁更新。根据.NET 官网上的资料,.NET 6在2023年11月都会得到长期维护,个位请安心使用。
如果你还没有/准备安装.NET 6,请输入以下地址.NET Downloads (Linux, macOS, and Windows) 下载或手机扫描以下二维码获取更多信息
.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 ,请点击以下地址Minimal APIs overview | Microsoft Docs或手机请扫描以下二维码获取更多信息
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 ,请点击以下地址 .NET Hot Reload Support via CLI - .NET Blog或手机请扫描
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 ,请点击以下地址.NET 多平台应用程序 UI 文档 - .NET MAUI | Microsoft Docs或手机请扫描以下二维码获取更多信息
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 ,请点击以下地址dotnet workload install 命令 - .NET CLI | Microsoft Docs或手机请扫描以下二维码获取更多信息
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机器学习知识 ,请点击以下地址ML.NET 文档 - 教程和 API 参考 | Microsoft Docs或手机请扫描以下二维码获取更多信息
.NET 6还有很多更新,包括在Blazor,在性能,在C# 10.0等,我这里就不一一和大家介绍了,大家感兴趣可以点击以下地址Announcing .NET 6 - The Fastest .NET Yet - .NET Blog或用手机扫描以下二维码获取更多信息
最后来个调查
以上是关于.NET6 如期而至的主要内容,如果未能解决你的问题,请参考以下文章
.NET6下周发布真的香,可不少人却只会.NET Framework!
微服务专题之.Net6下集成消息队列-RabbitMQ交换机模式代码演示(全)