大家好,通过多个月的迭代,.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/InstallDN下载获取更多信息。
.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
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
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
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
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一样调用不同深度学习框架。
更多对于dotnet workload ,请点击以下链接查阅
https://aka.ms/LearnDN005
.NET 6还有很多更新,包含在Blazor,在性能,在C# 10.0等,我这里就不一一和大家介绍了,⼤家感兴趣能够点击以下链接查阅。
https://aka.ms/LearnDN006