.NET大会2021参会笔记
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET大会2021参会笔记相关的知识,希望对你有一定的参考价值。
全面拥抱Linux
拥抱linux是微软的战略转型。Satya Nadella写的书《refresh》,就提到了MS loves Linux。所以,大会一开始,以然是Scott Hanselman,给我们演示如果在linux上面使用.net。好了,好了,你不用说了,我们都知道了。
人才市场
会议开始,先讲了.net的现状。嘉宾纷纷表示现在很难招人。这点我倒是有很深的体会。今年9月份一以来,我一直在找工作。10月份,我找的是python开发,几乎没有面试机会。好几个HR,直接回复说年纪大了。我当时都绝望了,都想着改行去当老师了。后来我改成找.net开发,一下子,接到了很多面试邀请。所以11月一直在面试。从微软,苹果,特斯拉,到更多的一些不知名的企业,他们至少都会给面试机会。再也没有碰到HR谈年纪的。如果不是杭州突如其来的疫情,我现在没法去上海面试,我可能已经成为.net程序员了。
基本上,windows桌面开发还是.net的天下。很多程序,都不需要手机版,不需要linux版。用所见即所得的winforms不香么?
.NET 6.0 新特性
.net 6.0最牛逼,也是最实用的的新特性,就是hot reload。过去,我们调试代码的时候,发现一个bug,我们要停下来,改好,然后重新开始调试。有了hot reload,可以一边debug,一边改。改完接着debug。我估计这个可以节省我10%的时间。
这也是为什么,当微软之前决定放弃这个feature的时候,遭到了全世界的抵制。还好微软倾听了社区的声音。我都搞不懂,这么好的feature,为啥要放弃。这可是一个巨大的卖点呀。
GraphQL
嘉宾:桂素伟
GraphQL也是我这段时间找工作,经常遇到的问题。因为不会错过了很多机会。所以我打算好好学学。
GraphQL提供特有的查询语句,返回JSON格式的数据。他用于前后端分离,这样后端不需要那么频繁的改代码了,前端也不需要经常的等着后端改代码了。
GraphQL本身并不是.NET的特有的。前后端可以是任何的语言。
.NET的GraphQL库是Chocolate。
.NET新特性(高级)
嘉宾:李卫涵
下午,李卫涵有详细的给我们详细介绍了.NET 6.0的新特性。内容很多我这里不一一转述。
CallerArgumentExpression
我自己学到了CallerArgumentExpression, 我觉得挺有意思,于是试了试。
using System.Runtime.CompilerServices;
Console.WriteLine("Hello, World!");
static void SetCount(int count, [CallerArgumentExpression("count")] string? countExpression = null)
if (count < 0)
throw new ArgumentOutOfRangeException(
paramName: countExpression,
message: $"countExpression (count) should not be less than 0"
);
SetCount(4 * 6 - 5 * 5);
输出结果为:
Hello, World!
Unhandled exception. System.ArgumentOutOfRangeException: 4 * 6 - 5 * 5 (-1) should not be less than 0 (Parameter ‘4 * 6 - 5 * 5’)
at Program.Main.g__SetCount|0_0(Int32 count, String countExpression) in C:\\Users\\eric\\source\\repos\\DotnetConfer\\DotnetConfer\\Program.cs:line 13
at Program.Main$(String[] args) in C:\\Users\\eric\\source\\repos\\DotnetConfer\\DotnetConfer\\Program.cs:line 20
C:\\Users\\eric\\source\\repos\\DotnetConfer\\DotnetConfer\\bin\\Debug\\net6.0\\DotnetConfer.exe (process 24868) exited with code -532462766.
Press any key to close this window . . .
这东西太好了,我可以用它来输出更详细的log。把锅及时甩给API的使用者_。
如何设置file-scoped namespace为默认
.NET 6.0出来当天,我就开始用file-scoped namespace了。但是当时不知道怎么才能让他成为默认选项,网上查了半天也不知道怎么搞。这次终于在这次大会上解决了我的疑问。
原来只需要添加一个.editorconfig文件到solution下面。然后添加以下内容。
[*.cs]
csharp_style_namespace_declarations=file_scoped:suggestion
以后,我们再添加新文件,都是file-scoped namespace了。
如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LeetcodeTest;
internal class Class1
其他
另外,.net也可以做人工智能和CV。有ML.net, OpenCVSharp。也可以用CSharp操作Graph数据库Neo4j等等。
大会网址:
https://trclive.huodongxing.com/?eid=6624063570923&roomid=376854871
以上是关于.NET大会2021参会笔记的主要内容,如果未能解决你的问题,请参考以下文章