0

.NET 6 如期而至

 2 years ago
source link: https://segmentfault.com/a/1190000040940518
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

大家好,经过多个月的迭代,.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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK