對 .NET5 有興趣,可有入門路線圖?

.NET circsqua • at 2021-01-13 12:05:40 • 3 Views
如題,僅有 C 和 Python 背景

想趁著過年學習一下現代程式設計,並做一些自己喜歡的小東西

THX
Total: 38
  • hantsy 2021-01-13 11:30:43
  • MAIQ 2021-01-13 11:26:43
  • masquerader 2021-01-13 12:26:43
    工具鏈跟著官網走一遍命令列工具 dotnet,VSCode 裝個 C#外掛就可以了。語言方面可以從 C#入手。網上應該很多基礎教程 /免費入門書籍。

    等弄個 console 應用有些感覺了,可以去看看 ASP.NET 的東西了。ASP.NET 涉及到的內容比較多,一開始可以只看後端知識,前端 HTML+JS/TS 配合就好。後面有興趣了再瞭解下 Blazor Server (服務端渲染)和 Blazor WebAssembly (客戶端渲染,但不同於大多數 transpiler 的技術把你的 C#/Java 程式碼你翻譯成 JS 讓瀏覽器執行,你可以理解成瀏覽器裡有一個.NET 執行時,所以你的.NET 應用可以被瀏覽器直接執行)。

    後面如果再有興趣,語言方面看看 F#。F#不像 Haskell 那麼純粹,比較好接受。學 F#的過程中就把 FP 的程式設計正規化瞭解下,個人認為對拓展眼界有很大幫助。
  • lancelock 2021-01-13 12:26:43
    搭好開發環境 -> 學 c#語法
  • lancelock 2021-01-13 12:26:43
    asp.net 裡的一堆東西都是和 web 開發相關的,如果不需要做這個方向那就完全不用看
  • masquerader 2021-01-13 12:26:43
    .NET 裡涉及到 GUI 相關的內容,個人建議先跳過,等微軟和社群把 MAUI 整明白了再說。
  • goldiorl 2021-01-13 12:28:43
    插一句話,vs 沒有辦法像 vscode 一樣有 command palette 呢,我看 intellij 就有
  • masquerader 2021-01-13 12:25:43
    @goldiorl 沒,VS 雖然功能強大,但很多設計都是上個世紀的,很多現代的功能都沒有,看意思微軟也沒打算加入這些廣受歡迎的功能。
  • yushiro 2021-01-13 13:27:43
    要區分傳統的.Net Framework 和.Net Core 的區別,特別是 web 相關的
    .Net5 聽說是整合了這 2 塊,沒仔細研究過,所以學習的時候注意一下。
  • LokiSharp 2021-01-13 13:28:43
    @masquerader #10 用 VS 的都會裝上 ReSharper 吧,一些功能就和 Rider 差不多了
  • masquerader 2021-01-13 13:30:43
    @LokiSharp 是這樣。就是 VS + ReSharper 實在不便宜,個人玩玩的話 VSCode 挺好。

    VS 好久都不用了,一來沒有 Remote Development Container 的支援,二來編輯器不支援平滑滾動,一些連字元在某些情形下出不來,terminal 整合的也不如 VSCode,就拋棄之了。
  • dasbn 2021-01-13 13:24:43
    看視訊的話,推薦一個微軟 MVP 的視訊 https://space.bilibili.com/361469957
  • goldiorl 2021-01-13 14:26:43
    @LokiSharp @masquerader 那再請問一下,vs + resharper 和直接用 rider 比優勢在哪兒呢
  • heyhumor 2021-01-13 14:26:43
    .NetFrameWork 都沒搞明白,就只會寫寫 winform 小程式的路過。。。
  • hjahgdthab750 2021-01-13 14:26:43
    vs for mac ? 最簡單的可以先從 console 小程式做起,然後 webapi
  • LokiSharp 2021-01-13 14:27:43
    @goldiorl #15 有一些 VS 專有的特性 Rider 沒法用,xaml 視覺化啊什麼的
  • Removable 2021-01-13 14:29:43
    @goldiorl #14 Rider 個人目前使用最大的不便之處在於,在 WPF 開發中不能像 vs 那樣實時預覽 UI (當然也可能是我沒找到 Rider 的設定
  • Removable 2021-01-13 14:29:43
    哦對了,好像 rider 還不支援 nuget 包管理器控制檯
  • masquerader 2021-01-13 14:29:43
    @goldiorl 沒用過 Rider,就說下 VS/VSCode 個人覺得好用的地方吧。

    1. CodeLens,可以把型別簽名、函式與方法的引用標出來,非常方便。如果用 F#,CodeLens/LineLens 可以方便的看出來型別推導。
    2. VS 是原生應用,效能好,佔資源少,響應迅速。
    3. VS/VSCode 的 Live share 非常好用,個人認為超過不用任何工具和鄰桌面對面結對程式設計的效率。
    4. Remote Development 。可以 SSH 到本地 WSL/WSL2 上,或者一臺 Linux 遠端伺服器上進行程式設計與除錯一條龍。這個體驗和本地程式設計沒有任何區別,感受不到任何延遲。即便是除錯 web 應用,都和本地一樣,例如你在遠端啟動監聽埠 8080 的 web server,訪問這個 web server 在瀏覽器裡輸入 http://localhost:8080,就好像你的應用部署在了本地。更進一步的,你可以把你的專案設定做成一個 docker image,裝什麼外掛,什麼依賴包,各種環境設定都弄好了,直接用 Remote Development Container 的方式,設定一個複雜的開發環境幾分鐘就自動都搞定了。此功能 VSCode 獨有,VS 沒有。
  • masquerader 2021-01-13 14:24:43
    @masquerader 補充我上面說的關於 Remote Development 的功能。現在 GitHub 上有開放 Codespaces 的功能,本質上就是微軟自家的 Remote Development,現在處於有限規模的測試中,可以申請排隊加入測試。

    我重度依賴此功能,我講下我的場景。我有 1 臺 MBP,1 臺 8 代 U+8G RAM 輕薄 Windows 10,1 臺 11 代 U+16G RAM 的輕薄 Windows 10,辦公室 1 臺 Windows 10 筆記本,此外還有 1 臺裝了 Linux 的機器。我的做法就是利用 Remote Development Container,把專案的各種依賴弄到 Docker image 裡,這樣我隨便拿起一臺電腦就開始我的專案,無論電腦的配置有多渣( 8G 記憶體),無論電腦是不是裝了.NET ,或者有些包對環境有依賴(我的專案的一個依賴包不提供 macOS 版本的原生庫),或者是新買一臺電腦,裝上 VSCode 零設定就可以開始擼碼。
  • INCerry 2021-01-13 15:26:15
    不管任何一門計算機程式語言最重要的還是 408,資料結構和演算法、計算機組成原理、作業系統和計算機網路。
    1.入門可以直接在 B 站找免費視訊,或者培訓機構的視訊,快速入門還是可以看看的*智播客.Net 視訊,之類的,然後就是微軟的文件 https://docs.microsoft.com/zh-cn/dotnet/ 機翻不是特別友好,可以直接看英文
    2.入門以後就買幾本書看看,包括但不限於《深入理解 C#》、《 C#從現象到本質》、《 CLR via C#》、《 C#併發程式設計》、《 Asp.Net Core 框架揭祕》、《.Net Core 底層入門》、《 MSIL 》、《設計模式》.....
    3.用起來,自己可以整個小專案試試,用用學到的框架,寫個什麼部落格站點呀之類的
    4.看原始碼學和設計模式,.net 常見元件的原始碼,框架的原始碼 還有 CLR 原始碼 https://github.com/dotnet
    後面再補充吧~
  • fivestrong 2021-01-13 15:26:15
    推薦 Mark J.Price 的 c#9 and .NET 5 這本書,最新版本,講的很系統,基本上屬於手摸手教你寫 C#了
  • goldiorl 2021-01-13 15:27:15
    @masquerader
    可不可以再有最後一問,如果全用 vscode 開發,有哪些是 vs 上完不成的?
  • goldiorl 2021-01-13 15:27:15
    @masquerader 不好意思打錯了,想問的是如果

    如果全用 vscode 開發,會遇到哪些不用 vs 就完不成的問題?
  • masquerader 2021-01-13 15:27:15
    @goldiorl 放心,沒有。
  • nuanyang 2021-01-13 15:28:15
    感覺.net 的官方文件已經很好了,挑一個自己感興趣的領域看就行了
  • dswyzx 2021-01-13 16:26:15
    @goldiorl 一個是開發工具,一個是文字編輯器,vscode 要不停的設定各種外掛來達到 vs 的各種功能。但如今風氣是用記事本最屌
  • circsqua 2021-01-13 17:27:15
    @MaxTan
    @nulIptr
    @hantsy THX

    @masquerader 感謝詳盡指引,我還以為 asp.net 已經式微了呢; Blazor WebAssembly 到和一般想象不用,有達到可用成都麼?

    @yushiro 瞭解了,自然選新的,等學會了,也就不新了


    感謝大家回覆
Add a reply
For Commenting you need to Login. If you dont have a Account you need to Register.