.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参会笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#的dapper使用
- 下一篇: .NET内存性能分析指南