对 .NET5 有兴趣,可有入门路线图? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
circsqua
V2EX    .NET

对 .NET5 有兴趣,可有入门路线图?

  •  
  •   circsqua 2021-01-13 11:08:02 +08:00 6198 次点击
    这是一个创建于 1735 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,仅有 C 和 Python 背景

    想趁着过年学习一下现代编程,并做一些自己喜欢的小东西

    THX
    38 条回复    2021-01-14 12:51:54 +08:00
    MaxTan
        1
    MaxTan  
       2021-01-13 11:10:52 +08:00
    nulIptr
        2
    nulIptr  
       2021-01-13 11:11:07 +08:00
    hantsy
        3
    hantsy  
       2021-01-13 11:11:42 +08:00
    MAIQ
        4
    MAIQ  
       2021-01-13 11:24:39 +08:00
    masquerader
        5
    masquerader  
       2021-01-13 11:30:28 +08:00   2
    工具链跟着官网走一遍命令行工具 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
        6
    lancelock  
       2021-01-13 11:31:16 +08:00
    搭好开发环境 -> 学 c#语法
    lancelock
        7
    lancelock  
       2021-01-13 11:33:08 +08:00
    asp.net 里的一堆东西都是和 web 开发相关的,如果不需要做这个方向那就完全不用看
    masquerader
        8
    masquerader  
       2021-01-13 11:39:24 +08:00
    .NET 里涉及到 GUI 相关的内容,个人建议先跳过,等微软和社区把 MAUI 整明白了再说。
    goldiorl
        9
    goldiorl  
       2021-01-13 11:54:13 +08:00
    插一句话,vs 没有办法像 vscode 一样有 command palette 呢,我看 intellij 就有
    masquerader
        10
    masquerader  
       2021-01-13 12:23:31 +08:00
    @goldiorl 没,VS 虽然功能强大,但很多设计都是上个世纪的,很多现代的功能都没有,看意思微软也没打算加入这些广受欢迎的功能。
    yushiro
        11
    yushiro  
       2021-01-13 12:48:49 +08:00 via iPhone
    要区分传统的.Net Framework 和.Net Core 的区别,特别是 web 相关的
    .Net5 听说是整合了这 2 块,没仔细研究过,所以学习的时候注意一下。
    LokiSharp
        12
    LokiSharp  
       2021-01-13 12:53:50 +08:00
    @masquerader #10 用 VS 的都会装上 ReSharper 吧,一些功能就和 Rider 差不多了
    masquerader
        13
    masquerader  
       2021-01-13 13:10:32 +08:00
    @LokiSharp 是这样。就是 VS + ReSharper 实在不便宜,个人玩玩的话 VSCode 挺好。

    VS 好久都不用了,一来没有 Remote Development Container 的支持,二来编辑器不支持平滑滚动,一些连字符在某些情形下出不来,terminal 整合的也不如 VSCode,就抛弃之了。
    dasbn
        14
    dasbn  
       2021-01-13 13:22:29 +08:00
    看视频的话,推荐一个微软 MVP 的视频 https://space.bilibili.com/361469957
    goldiorl
        15
    goldiorl  
       2021-01-13 13:31:55 +08:00
    @LokiSharp @masquerader 那再请问一下,vs + resharper 和直接用 rider 比优势在哪儿呢
    heyhumor
        16
    heyhumor  
       2021-01-13 13:35:54 +08:00
    .NetFrameWork 都没搞明白,就只会写写 winform 小程序的路过。。。
    qW7bo2FbzbC0
        17
    qW7bo2FbzbC0  
       2021-01-13 13:36:04 +08:00
    vs for mac ? 最简单的可以先从 console 小程序做起,然后 webapi
    LokiSharp
        18
    LokiSharp  
       2021-01-13 13:48:50 +08:00
    @goldiorl #15 有一些 VS 专有的特性 Rider 没法用,xaml 可视化啊什么的
    Removable
        19
    Removable  
       2021-01-13 14:02:49 +08:00
    @goldiorl #14 Rider 个人目前使用最大的不便之处在于,在 WPF 开发中不能像 vs 那样实时预览 UI (当然也可能是我没找到 Rider 的设置
    Removable
        20
    Removable  
       2021-01-13 14:04:15 +08:00
    哦对了,好像 rider 还不支持 nuget 包管理器控制台
    masquerader
        21
    masquerader  
       2021-01-13 14:07:50 +08:00   1
    @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
        22
    masquerader  
       2021-01-13 14:22:44 +08:00   1
    @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
        23
    INCerry  
       2021-01-13 14:30:11 +08:00   1
    不管任何一门计算机编程语言最重要的还是 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
        24
    fivestrong  
       2021-01-13 14:32:26 +08:00 via iPhone
    推荐 Mark J.Price 的 c#9 and .NET 5 这本书,最新版本,讲的很系统,基本上属于手摸手教你写 C#了
    goldiorl
        25
    goldiorl  
       2021-01-13 14:36:56 +08:00
    @masquerader
    可不可以再有最后一问,如果全用 vscode 开发,有哪些是 vs 上完不成的?
    goldiorl
        26
    goldiorl  
       2021-01-13 14:38:56 +08:00
    @masquerader 不好意思打错了,想问的是如果

    如果全用 vscode 开发,会遇到哪些不用 vs 就完不成的问题?
    masquerader
        27
    masquerader  
       2021-01-13 14:43:00 +08:00   1
    @goldiorl 放心,没有。
    nuanyang
        28
    nuanyang  
       2021-01-13 14:51:12 +08:00
    感觉.net 的官方文档已经很好了,挑一个自己感兴趣的领域看就行了
    dswyzx
        29
    dswyzx  
       2021-01-13 15:28:41 +08:00 via iPhone
    @goldiorl 一个是开发工具,一个是文本编辑器,vscode 要不停的设置各种插件来达到 vs 的各种功能。但如今风气是用记事本最
    circsqua
        30
    circsqua  
    OP
       2021-01-13 16:39:03 +08:00
    @MaxTan
    @nulIptr
    @hantsy THX

    @masquerader 感谢详尽指引,我还以为 asp.net 已经式微了呢; Blazor WebAssembly 到和一般想象不用,有达到可用成都么?

    @yushiro 了解了,自然选新的,等学会了,也就不新了


    感谢大家回复
    pkoukk
        31
    pkoukk  
       2021-01-13 17:04:57 +08:00
    巨硬家的文档,完善,详尽,更新及时,挑不出第二个能这么有心的
    masquerader
        32
    masquerader  
       2021-01-13 17:11:13 +08:00
    @circsqua Blazor WebAssembly 技术上比较成熟了,Chrome/Firefox/Edge 也都原生支持了。有精力的话自己玩玩持续关注吧,靠这个找工作眼下是不可能的。
    hantsy
        33
    hantsy  
       2021-01-13 17:14:38 +08:00
    .net 没正经写过项目,玩过一点 C#。个人还是喜欢 Rider (毕竟长期写 Java,IDEA 界面还是习惯了),VS 实在不会用。

    之前的单个 project,重构一下,变成 Solution,加了测试代码。

    https://github.com/hantsy/code-challenges/tree/master/csharp
    love
        34
    love  
       2021-01-13 17:41:43 +08:00 via Android
    @pkoukk 别人家的语言和框架做得不好吗,我用的 Python,nodejs,react,vue 哪个文档比 ms 差
    forgottencoast
        35
    forgottencoast  
       2021-01-14 09:26:45 +08:00
    @love 打个比方,如果 nodejs 的文档叫有文档,那微软的.Net 文档就可以叫维基百科,完全不是一个档次的。
    所以,结论就是,差,差远了,差的太远了!
    不过,有一说一,.Net Core 的文档现在质量也下降了。
    forgottencoast
        36
    forgottencoast  
       2021-01-14 09:29:35 +08:00
    @goldiorl
    @masquerader
    用 vscode 开发 GUI 程序? WinForm 、WPF ?有人干过吗?
    love
        37
    love  
       2021-01-14 12:10:25 +08:00
    @forgottencoast 行了吧,那是因为.net 臃肿复杂,别的语言除了 java 都很简单不需要海量车轱辘文档
    forgottencoast
        38
    forgottencoast  
       2021-01-14 12:51:54 +08:00 via iPhone
    @love
    这就跟“80 年代大家没有手机 没有互联网 也一样过得很开心”,懒得驳斥。
    你开心就好。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5463 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 07:29 PVG 15:29 LAX 00:29 JFK 03:29
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86