一位.Net开发工程师的客户端技术栈的学习路线

简介: 从2018年硕士毕业后,我一直从事着.Net开发工作,趁着CSDN这次活动,给大家分享一下.Net客户端领域的技术栈的学习路线,这个学习路线,涵盖的是比较基础的内容,适合刚入门.Net的萌新学习和刚进入职场的毕业生查漏补缺,然后这个博文比较受大家的欢迎的话,后续可能会考虑出一个更详细的版本。致敬我彻夜学习的.Net。
🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。
🦀专栏简介:博主针对.Net开发和C站问答过程中遇到的问题进行总结,形成本专栏,希望可以帮助到您解决问题。
🐶座右铭:总有一天你所坚持的会反过来拥抱你。

2.png

🌈写在前面:

从2018年硕士毕业后,我一直从事着.Net开发工作,趁着CSDN这次活动,给大家分享一下.Net客户端领域技术栈学习路线,这个学习路线,涵盖的是比较基础的内容,适合刚入门.Net的萌新学习和刚进入职场的毕业生查漏补缺,然后这个博文比较受大家的欢迎的话,后续可能会考虑出一个更详细的版本。致敬我彻夜学习的.Net


👉本文关键字:.Net、学习路线、萌新入门、毕业生查漏补缺

有的初学者对于如何开始学习.Net感到无从下手,不知看哪些书,或者是看什么视频,没有目的性,这样就会影响学习效率,也会影响学习的热情。最重要的是很多同学学之前问很多和学习无关的问题,比如:C#是不是不如JAVA好?C#有前途吗?等等。对于准备学习编程语言的初学者来说,.Net和Java是初学者首先考虑的两门技术,因此很多人一遍遍的问学.Net还是学Java,社区中也每天都有“.Net控”在唱衰Java,也有“Java控”在唱衰.Net,一时间硝烟四起,让初学者更加迷惑。在这里我们不探讨学.Net还是学Java,博主认为观望不如学习。本篇文章介绍了博主自己总结的.Net客户端用到的技术栈的学习路线。如果大家有什么更好的想法或者好的建议可以共同探讨。 至于博主为什么选择.Net,因为我是自动控制专业出身,所从事的行业也是工业自动化行业,.Net必不可少。

这里给大家分享的这个学习路线涵盖的内容比较基础,是一个很宏观的路线。

1️⃣ C

首先,大家要了解.Net能做什么,了解.NET,C#语言及其特点(分清.NET和C#的关系),对.Net学习有系统全面的认识。

学习C#这块首推还是刘铁猛老师的视频,在B站可以直接搜到。但是如果你是刚刚学习C#的小白,可以在B站搜索C#的基础线学习一下,刘铁猛老师的视频是需要一定C#基础的。C#学习要掌握的知识点挺多的,需要大家打好基础。如果你这回准备面试,也可以照着如下这部分脑图查漏补缺

♈ 脑图

C#.png

♉ 知识点

  • C#基础:数据类型、变量、运算符、分支结构、循环结构、方法、反编译器、递归、递归算法的非递归优化等;
  • 面向对象:异常、封装继承多态、单例模式、装饰者设计模式、this本质论、static、namespace、类型转换、is与as、抽象类、接口、宫廷系统案例、foreach、随机数及案例等;
  • 常用类库:String与StringBuilder、可空类型、文件操作(File、Directory、FileStream、StreamReader、StreamWriter)、常用数据结构(List、Dictionary、Set、Queue、Stack等);
  • 高级特性:多项目开发、CLR、CTS、CLS、IL与程序集、索引器、密闭类、静态类与扩展方法、深拷贝和浅拷贝、结构体、值类型与引用类型、拆箱装箱、字符串拘留池、ref与out、正则表达式、XML、序列化等;
  • 委托与事件:委托语法、内置委托Func和Action、匿名方法、lambda表达式、lambda的推演、lambda原理探秘、常用扩展方法、事件本质论;
  • 反射:反射、实现通用对象拷贝、Attribute及案例、自动动手写ORM引擎;
  • 三层架构:三层架构的原理、代码生成器、项目案例;

除了刘铁猛老师的视频,博主主要是利用微软C#官方文档书籍学习。C#相关的基础和进阶知识,这里推荐《C#图解教程》这本书,在后续学习书籍章节还会提到此书,这里就不过多赘述了。具体的官方文档链接传送门如下,

♊ 掌握C#基本语法

C#快速入门

此部分官方文档给初学者一些入门的认知,它可以直接在浏览器敲出代码,并且能够直观的显示出来。这部分包含了第一个"Hello World"程序,数字类型介绍,分支和循环,字符串类型处理,集合类型List的初探。

C#语言介绍(C#的基础知识)
这部分官方文档介绍程序的基本结构,类型和变量,表达式,语句,类和对象,结构,数组,枚举等方面知识。把这一部分看完,大概会对C#有一定的认识,但是可能不明白的地方也有很多,不要急,只需要多看多敲代码,在后续学习的过程中,会一步一步把前面有问题的地方弄明白。

C#教程
教程部分介绍了控制台的I/O,异步编程模型的基础知识,Web通信、JSON 序列化和面向对象的 C# 语言功能,以及LINQ查询的知识。

这一部分是对第二部分的深入介绍,其中有很多相关的示例,也是学习C#基础知识比较重要的一部分。学习这部分前提是前面的内容已经学习完成(具有一定的C#编程知识)。

学习完上面的部分,且动手敲完里面的例子,相信你对C#已经有一个不错的认识。这时候需要看进阶的知识来巩固学习成果。

C#演练
这部分内容包含了C#更强大的功能,异步编程,设计Windows组件,Windows窗体的介绍,数据操作,和LINQ查询,编写可视化工具等。

C#中的新增功能
介绍了C#的版本,和每次版本中的新增内容,有助于让我们更了解C#的进化史,从而更好的应用它。

附带:
C# 语言参考
C# 语言规范(英文版)

♋ C#进阶之路

  • 网上寻找编程练习题来带到练手的目的,并且巩固和学习新的C#知识,在这一过程中,一定要学会调试代码,可以提高学习的效率和查错速度。
  • 学习数据开发技术,与数据库的交互技术ADO.NE;封装SQLHelper工具类并理解其中的方法及其应用。
  • 深入学习C#面向对象基础技能:封装,继承,多态的思想。
  • 三层架构,理解三层架构的思想及优点;三层架构项目的搭建方法;使用三层架构实现增删改查从而开发项目。
  • 委托、匿名方法、Lambda、Linq查询
  • ASP.NET MVC,MVC的开发思想;Razor语法详解;分页、数据传输方式(ViewBag、ViewData、TempData、Model)、各种ActionResult、四种Filter(IAuthorizationFilter、IActionFilter、IResultFilter、IExceptionFilter)、HtmlHelper、路由机制、特性、布局视图。
  • 异步操作请求数据;异步分页技术。
  • C#/.Net开发中大型软件的思想;C#/.Net开发中大型软件的常用关键技术及应用技能(MVC、EF、Spring.Net、Memcache、Log4Net、T4模板、Mongodb、Redis、WebService、EasyUI、Ajax、WCF、AOP、Nhibernate、简单工厂、抽象工厂、Web API、多线程等);依赖注入等
  • .NET Core技术;ASP.Net Core(中间件、静态文件、配置文件、依赖注入、程序缓存等)、EF Core、ASP.NET Core MVC、ASP.NET Core WebAPI、跨平台发布与部署、.Net Core高级调试、微服务等。

♌ 项目实践

自己动手编写一些小而精的项目,达到整体认识的效果,比如经典的"坦克大战",“图书管理系统”,这些都是很"轻量级"的。当你把"坦克大战"项目编写完毕,就可以进行更大的项目设计,增加权限管理等等。

♍ 总结

总的来说,对于C#这一块,就是要在自己日常开发的工作当中去注意,然后去总结,写一些日记,或者说整理的一些文章等等,就是记录下来自己的学习和解决问题的过程,从而帮助自己,去学习C#的一些内容,其实能写成文章就是又加深了一层印象和感悟。然后就是可以通过书籍和B站来进行学习,所以C#学习路径就是视频、官方文档和书籍,官方文档链接已在上文给出,至于看什么书籍呢,我稍后会继续分享。

2️⃣ 开发框架

♈ 脑图

开发框架.png

♉ 总结

目前最推荐使用的是Prism,适合大一点的团队进行开发和学习。其实这三个框架各有各的优点,大家可以根据自己的这个需要来进行选择。基本上把Prism学会了之后,学其他的框架也比较容易。

3️⃣ UI框架

♈ 脑图

UI框架.png

♉ MAUI

这里推荐的是.Net MAUI,也是微软官方目前在主推的,它主要涵盖的几乎是全平台了(除了Linux平台),Linux平台并不是由官方去支持的,而是通过.Net社区支持,大家可以放心的去学习和了解这些东西。毕竟写一份代码可以在多个平台去跑,这个全平台去跑了一个框架的话,还是有一定的市场。

附上官方文档:

什么是 .NET MAUI?

♊ WPF

WPF应该是目前在工业自动化行业使用最多的一项技术,虽然WPF和MAUI不是同一项技术,但是他们还是有一些共通的地方。WPF目前只支持Windows平台。WPF相比Winform就灵活一些,学了WPF,就不要只像Winform那样,一个按钮双击,再去写业务逻辑,要会用MVVM

♋ Winform

Winform相对于WPF就是上手快。熟悉常用的控件,包括常用的属性和事件。不要因为有人鄙视拖控件,你就不好好学习控件,要会拖控件,但又不能只会拖控件,自己写也行,日积月累说不定就有自己的控件库了,要对控件有一个客观的认识。

总的来说就是把WPF学好,你想平移到其他的框架上,也是比较容易的。

4️⃣ 控件库

♈ 脑图

控件库.png

♉ 总结

这些控件库,大家是对着这上面的文字进行搜索,基本上也能找打相应的教程。.Net客户端又很多优秀的控件库,供大家免费的去使用。而这里为什么会单独拎出一些收费的控件,就是因为有些企业是愿意付费的,他是愿意花钱去买这些付费的控件库的,买了之后就希望他招聘一些人员,能掌握这些控件,来增加开发效率,所以这些付费的控件库也是有必要去学习和了解的

5️⃣ 第三方插件

♈ 脑图

第三方插件.png

♉ 总结

在客户端领域,经常会遇到要内嵌一个浏览器或者是插一个视频等等的第三方组件,这些基本上在GitHub上都能找到相应的内容,根据自己的工作需要,去GitHub上去寻找一下,这里也不多提了。

6️⃣ 网络通信

♈ 脑图

网络通讯.png

♉ 总结

网络通信是客户端这项技术在里面比较重要的一个环节。如果对于数据网络、网络通讯、数据交互这一块,你根本就不知道的话,那么学习客户端是非常困难的,因为客户端上面想显示一些的数据,你都不知道从哪儿拿。网络通信最基本的就是掌握HTTP的一些基础交互,然后再就是学习socket的这一块,它的难度相对于HTTP来讲的话,对于新手而言,这个socket的难度会比HTTP高很多,学习的成本也比较高。这里推荐一本书《图解HTTP》

7️⃣ 数据库

♈ 脑图

数据库.png

♉ 总结

客户端领域中用到最多的是一个非常小型的数据库sqlite,但是它只能存放一些比较简单的内容。如果数据或量大并且复杂的话,建议放在大型数据库中。然后就是MySQL,对于一些前后端分离的项目,后端会用到。
LINQ,语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。LINQ to SQL是一个数据库到对象结构的一个中间层, 他把对关系数据的管理转变为对象的操作,屏蔽了麻烦的sql,而且,还可以得到vs强大的智能感知功能的帮助。 还有就是数据库调优问题。所以大家还是要去学习和了解的。

8️⃣ 数据结构和算法

数据结构和算法,也是进入大厂必备的一项技能,当然一些小厂根本就不会去考这个东西,所以这个是看自己的一个想法,如果程序想写的好,或者说想继续进入到一些大厂工作的话,数据结构和算法这两个东西是必学的。学习这个的途径,也就是B站、力扣和牛客网,还有这个大话数据结构里面,这本书里面都是不错的一个切入点。

♈ 脑图

算法.png

♉ B站的视频推荐

♊ 力扣

力扣官网

♋ 牛客网

牛客官网

9️⃣ 设计/开发模式

♈ 脑图

设计开发模式.png

♉ 总结

客户端用的最多的就是这个MVVM和三层架构。然后再就是大话设计模式这本书所涵盖的设计模式都有可能会用到,比如说单例模式,观察者模式、生产消费者模式等等,都是非常重要的,建议大家先看一个模式,然后针对里面的业务场景,自己敲代码,然后通过设计模式优化代码。并且在面试的一些考核过程当中,设计模式也是考核的重要因素之一,因为它要去考验你有没有这种学以致用的能力。

1️⃣0️⃣ 学习网站

  • CSDN:全球最大的中文IT社区。
  • 微软中国MSDN:了解微软最新动态。
  • 菜鸟教程:睡前乐一乐,里面的文章特别有趣。
  • 程序猿:推送一些IT行业和一些优秀博文。
  • 伯乐在线:分享来伯乐在线博客的热门和经典文章,精华中的精华。
  • InfoQ: 关注中高端技术人员的社区媒体,促进软件开发领域知识与创新的传播。
  • DotNet:专注.Net相关内容,包括.Net 和C#开发技术文章,工具资源,热门课程等。
  • dotNET跨平台 :谈微软.NET,Mono的跨平台开发技术。

♈ 脑图

学习网站.png

♉ 总结

学习网站首推就是微软的官方网站,它提供的是最官方最权威的一些技术内容,当然有些内容写的还是不够详细的。此时大家可以通过博客园或者CSDN去搜索一些相关的问题。这里大家会分享一下他们在遇到这个问题时候的处理方法和使用心得。B站这个就不多说了。微信公众号有大佬的微信公众号会发表很多有质量的文章,比如像这个dotnet跨平台的订阅号会分享很多大佬的文章。对于GitHub源码,学习成本是非常高的,也是非常痛苦的,但是源码还是非常有必要去看的,因为在一些大厂的面试当中,他也会去问一问这种源码相关的一些内容。然后再还有一点特别需要提到的就是这个YouTube,有很多国外的大佬去分享最新的技术,相对于国内的b站的内容来说会更新一点。b站也有视频内容是从YouTube上搬运来的。

1️⃣1️⃣ 解决问题网站

解决问题网站.png

这里主要的在学习网站中已经提及了,就不过多说了。

1️⃣2️⃣ 学习书籍

♈ 脑图

学习书籍.png

♉ 总结

有的同学对直接看书有比较强的吸收能力,我建议从《C#图解教程》开始学习,过度到《C#高级编程》《深入理解C#》

我大概整理了这几本,《深入解析C#》《CLR via C#》的这两本书,单单看完的话呢,耗时并不长,但是如果逐张每张的去练习,去实践去学习的话,还是够学很长一段的。然后《.Net内存管理》,深入解析理解这个计算机系统,它里面会讲到一些计算机底层的知识点,也是非常有必要去学习的。《.Net性能优化》是说在我们开发的过程当中,也会遇到卡顿、内存暴涨等等的问题。这本书和《Windows编程技术调试内幕》,是本不错的参考书籍。大话系列就分享《大话设计模式》《大话数据结构》这两本书。WPF就最推荐《WPF编程宝典C#2012和.NET4.5》,虽然这本书里的内容不是很新,但是能把这些内容学好了之后,你再去看一些新的书籍,只需要去更新知识点就可以了,而不需要花大量的时间去研究一些新的内容。

1️⃣3️⃣ 工具

♈ 脑图

学习工具.png

♉ 总结

一定要掌握的工具,就是VS2022。再就是思维导图的工具,在你做一些分析的时候,都需要去把自己的思路给理清楚。然后再就是Markdown,在这程序开发的领域中,Markdown的使用频率还是蛮高的。再就是一些工作上的汇报,都用这个office全家桶。最后就是Git/SVN这些代码托管工具一定要学习。

1️⃣4️⃣ 面试和职场

求职的话就是要做一些面试的准备和刷题。要考虑到技术官会问到的问题,HR会问到的一些问题,面试会遇到的一些知识点,需要提前去刷面试题。如果不去准备,不去刷题的话,基本上去了就是送人头的,所以一定要记得去准备,去刷题,一般刷算法的话,你要提前刷,刷个几个月你再去。这里推荐一位B站UP主,不高兴就喝水,一位程序员脱口秀艺术家,打工和职场那些事,看水哥的视频就对了。


⭐写在结尾:

文章中出现的任何错误请大家批评指出,一定及时修改。

希望写在这里的小伙伴能给个三连支持

相关文章
|
9天前
|
存储 开发工具 Android开发
使用.NET MAUI开发第一个安卓APP
【9月更文挑战第24天】使用.NET MAUI开发首个安卓APP需完成以下步骤:首先,安装Visual Studio 2022并勾选“.NET Multi-platform App UI development”工作负载;接着,安装Android SDK。然后,创建新项目时选择“.NET Multi-platform App (MAUI)”模板,并仅针对Android平台进行配置。了解项目结构,包括`.csproj`配置文件、`Properties`配置文件夹、平台特定代码及共享代码等。
|
11天前
|
开发框架 .NET C#
VSCode开发.net项目时调试无效
【9月更文挑战第22天】在使用 VSCode 开发 .NET 项目时遇到调试问题,可从项目配置、调试配置、调试器安装、运行环境、日志和错误信息等方面排查。确认项目类型及文件配置,检查 `launch.json` 文件及配置项,确保调试器扩展已安装并启用,验证 .NET 运行时版本和环境变量,查看 VSCode 输出窗口和项目日志文件,检查权限及代码错误。若问题仍未解决,可查阅官方文档或社区论坛。
|
16天前
|
人工智能 前端开发 开发工具
解读.NET 技术的开发潜力
本文全面介绍了.NET技术在软件开发领域的核心优势、创新应用及面临的挑战。.NET以其统一的开发平台、强大的工具和跨平台能力,成为企业级应用、Web应用乃至游戏开发的理想选择。然而,在性能优化、容器化及AI集成等方面仍需不断突破。通过积极拥抱开源和社区驱动模式,.NET将持续推动软件开发的进步。
35 1
|
28天前
|
存储 运维
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
|
28天前
|
SQL 关系型数据库 数据库
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
|
28天前
|
消息中间件 开发框架 前端开发
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
|
1月前
|
开发框架 JavaScript 前端开发
|
2月前
|
C# Windows 开发者
超越选择焦虑:深入解析WinForms、WPF与UWP——谁才是打造顶级.NET桌面应用的终极利器?从开发效率到视觉享受,全面解读三大框架优劣,助你精准匹配项目需求,构建完美桌面应用生态系统
【8月更文挑战第31天】.NET框架为开发者提供了多种桌面应用开发选项,包括WinForms、WPF和UWP。WinForms简单易用,适合快速开发基本应用;WPF提供强大的UI设计工具和丰富的视觉体验,支持XAML,易于实现复杂布局;UWP专为Windows 10设计,支持多设备,充分利用现代硬件特性。本文通过示例代码详细介绍这三种框架的特点,帮助读者根据项目需求做出明智选择。以下是各框架的简单示例代码,便于理解其基本用法。
72 0
|
2月前
|
开发者 Apache 程序员
揭秘Apache Wicket:页面生命周期背后的神秘力量!
【8月更文挑战第31天】李工是一位热爱Web开发的程序员,近日在技术博客上分享了他对Apache Wicket框架的学习心得,特别是页面生命周期的理解。他认为掌握Wicket页面生命周期对于开发富交互式Web应用至关重要。他通过一个简单的计数器应用示例,详细解释了Wicket的组件化设计理念以及页面和组件在生命周期中的变化。
30 0
|
2月前
|
微服务 API Java
微服务架构大揭秘!Play Framework如何助力构建松耦合系统?一场技术革命即将上演!
【8月更文挑战第31天】互联网技术飞速发展,微服务架构成为企业级应用主流。微服务将单一应用拆分成多个小服务,通过轻量级通信机制交互。高性能Java Web框架Play Framework具备轻量级、易扩展特性,适合构建微服务。本文探讨使用Play Framework构建松耦合微服务系统的方法。Play采用响应式编程模型,支持模块化开发,提供丰富生态系统,便于快速构建功能完善的微服务。
37 0
下一篇
无影云桌面