问题

如何自学 .NET Core,怎么学习才好?

回答
想把 .NET Core 学透彻,这事儿真得下点功夫,但只要路子对了,效率贼高。我这儿给你捋一捋,保证接地气,让你心里有谱。

第一步:打牢地基——C 语言基础是王道

别想着一步登天,直接扑到 .NET Core 上。你知道的,.NET Core 的根子就是 C。你要是 C 玩得溜,.NET Core 那就跟喝水似的。

从哪儿下手?
微软官方文档是亲爹: 别嫌它枯燥,这是最权威、最系统的资源。从变量、数据类型、运算符开始,一步步啃。特别是值类型与引用类型、类与结构、继承、接口、多态这些核心概念,一定要理解透彻。
《C 入门经典》/《C 图解教程》这类书籍: 如果你觉得文档太硬,找本写得比较通俗易懂的书。图文并茂的会帮你理解得更快。
在线互动教程: 像 Microsoft Learn 上的 C 互动课程,或者一些编程学习网站(比如 Codecademy、freeCodeCamp 也可以找找看有没有 C 的入门内容),边学边练效果更好。

重点攻克什么?
面向对象编程(OOP): 类、对象、封装、继承、多态,这几个概念是你未来写出优秀 .NET 代码的基石。一定要搞明白为啥要这么设计。
委托和事件: 这东西在 C 里非常重要,尤其是在事件驱动编程和回调函数方面。搞懂了,你就能理解很多框架的运作方式。
LINQ (Language Integrated Query): 用起来很爽,写数据查询像写 SQL 一样优雅。但理解背后的原理(扩展方法、匿名方法、Lambda 表达式)也很重要。
异步编程(async/await): 这个是现代 C 的标配了。不搞懂它,你写出的程序在 I/O 操作时就会卡得要命。理解它如何提高并发性和响应性。
异常处理: `trycatchfinally` 块怎么用,自定义异常怎么写,这都是保证程序健壮性的必备技能。

如何练习?
多写小例子: 学到一个新概念,立马写个小程序跑起来。比如学了类,就写个表示“人”的类,有姓名、年龄,能说话。学了 LINQ,就写个列表,用 LINQ 来筛选、排序。
做点小练习题: 找一些 C 的基础练习题来做,加深理解。
别怕查: 遇到不懂的,立刻百度、Stack Overflow,看看别人是怎么解释的,对比着学。

第二步:进军 .NET Core —— 框架的基石和运作

C 地基打牢了,就可以开始 C 的“新家”—— .NET Core 了。 .NET Core 跟 .NET Framework 有些区别,但核心思想是一样的。

先理解 .NET Core 的核心理念:
跨平台: 这是 .NET Core 最大的亮点。Windows、macOS、Linux 都能跑。
开源: 社区活跃,可以参与贡献,也能看到源代码。
高性能: 相比 .NET Framework 有很多优化。
模块化: NuGet 包管理器让你只引入需要的库。

从哪里开始学?
.NET Core 官方教程(Microsoft Learn): 又是它!从创建第一个 .NET Core 应用开始,学习项目结构,了解 `dotnet CLI` (CommandLine Interface)。这个命令行工具是你日常开发会经常用到的。
“Hello, World!” 到第一个 Web 应用: 先从简单的控制台应用入手,然后转战 ASP.NET Core,这是最主流的应用场景。跟着官方教程做一个简单的 Web API 或者 MVC 应用。
ASP.NET Core 入门: 这是 .NET Core 的核心应用框架。
理解中间件 (Middleware): 这是 ASP.NET Core 处理请求的核心机制,像流水线一样,每个请求都会经过一系列的中间件。
路由 (Routing): 如何将 URL 请求映射到具体的处理逻辑。
依赖注入 (Dependency Injection, DI): .NET Core 内置了强大的 DI 容器,这是构建可维护、可测试代码的关键。一定要花时间理解 DI 的原理和用法。
模型绑定 (Model Binding) 和验证 (Validation): 如何将请求数据自动映射到 C 对象,并进行校验。
Razor Pages / MVC / Web API: 根据你的兴趣选择一个入手,Web API 是最基础的,搞懂它再学 MVC 就水到渠成了。

你会经常用到的工具:
Visual Studio / VS Code: 前者功能强大,后者轻量级但通过插件也很强大。选择一个你习惯的,它们能极大地提高你的开发效率。
dotnet CLI: 命令行工具,用于创建项目、运行应用、发布等等。要熟练掌握 `dotnet new`, `dotnet run`, `dotnet build`, `dotnet publish` 等命令。
NuGet 包管理器: 学习如何搜索、安装、更新和管理第三方库。

第三步:深入实践 —— 构建真实的应用

光看教程是学不会的,必须动手做项目。

从简单项目开始:
个人博客系统: 可以练习数据库操作、用户认证、文章发布等。
简单的图书管理系统: 练习 CRUD (Create, Read, Update, Delete) 操作。
一个待办事项清单应用 (ToDo List): 从前端到后端,从数据库到 API,是个很好的练手项目。

学习数据库技术:
.NET Core 推荐使用 Entity Framework Core (EF Core): 这是微软官方的 ORM (ObjectRelational Mapper)。学习如何使用它进行数据库访问,包括模型设计、迁移 (Migrations)、LINQ to Entities 查询。
了解 SQL Server / PostgreSQL / MySQL 等关系型数据库: 知道基本的 SQL 语法。
如果对 NoSQL 感兴趣: 可以了解一下 MongoDB、Redis 等。

学习前端技术(如果做 Web 应用):
HTML, CSS, JavaScript 是基础: 没法绕过。
选择一个前端框架: React, Vue, Angular,至少了解其中一个,或者使用 ASP.NET Core 内置的 Blazor(如果你想用 C 写前端的话)。

学习版本控制:
Git 是必备技能: 学习如何使用 Git 进行代码管理、分支管理、合并等。GitHub/GitLab/Gitee 是你常用的平台。

第四步:提升与拓展 —— 让你的技能更上一层楼

当你能独立构建一些基础应用后,就可以开始提升自己的技能了。

深入学习 .NET Core 的高级特性:
依赖注入的高级用法: 生命周期管理(Singleton, Scoped, Transient)。
日志记录 (Logging): 如何配置和使用日志,追踪程序运行情况。
配置管理 (Configuration): 如何从不同的配置源加载设置。
身份认证与授权 (Authentication & Authorization): 用户登录、权限管理等。ASP.NET Core Identity 是个很好的学习对象。
单元测试 (Unit Testing) 和集成测试 (Integration Testing): 学习如何编写测试用例,保证代码质量。xUnit, NUnit, MSTest 是常用的测试框架。
性能优化: 理解如何分析性能瓶颈,进行代码优化。
缓存策略: 如何使用内存缓存、分布式缓存(如 Redis)来提高应用性能。
消息队列 (Message Queues): 了解 RabbitMQ, Kafka 等,学习异步通信。
Docker 和容器化: 将你的 .NET Core 应用容器化,方便部署和管理。

关注社区动态:
.NET Blog (blogs.microsoft.com/dotnet/): 微软官方会发布很多关于 .NET Core 的最新动态、新特性。
Stack Overflow: 遇到问题就来这里找答案,顺便看看别人是怎么解决的。
GitHub 上的 .NET Core 项目: 学习别人的优秀代码。
.NET 相关的技术大会和在线研讨会: 了解行业发展趋势。

参与开源项目(可选但推荐):
从小小的 bug 修复开始,然后尝试贡献新功能。这是提升技术、学习他人代码的最佳方式之一。

学习路径总结一下:

1. C 基础: 语法、OOP、委托事件、LINQ、异步。
2. .NET Core 核心: .NET Core 概念、`dotnet CLI`、ASP.NET Core(中间件、路由、DI、Web API/MVC)。
3. 数据库与数据访问: EF Core、SQL 基础。
4. 实践项目: 从小项目开始,逐步挑战更复杂的应用。
5. 进阶: 测试、性能优化、安全、容器化等。
6. 持续学习: 关注社区,不断更新知识。

一些过来人的建议:

别怕犯错: 编程就是一个不断试错、调试的过程。把错误当成学习的机会。
保持耐心: 新技术上手都需要时间,不要因为遇到困难就放弃。
找到学习伙伴: 和朋友一起学习,互相讨论、鼓励,效率会更高。
多动手,少空想: 光看教程学不会,一定要动手敲代码。
善用搜索引擎和文档: 遇到问题,先尝试自己查找答案。
享受过程: 学习编程本身就很有趣,找到其中的乐趣,你会学得更快、更持久。

祝你学有所成!这玩意儿虽然入门容易,但要精通,还得持续钻研。加油!

网友意见

user avatar

先说结果:必须自学+必须独立完成一个完整的项目!

1.自学能力会让提高竞争力

想要自学Unity,最靠谱的方法就是不断的学习,不断的思考,不断的写代码。

个人而言,一般在比较成熟的团队,由于框架或者组件已经进行了大量的封装,写业务代码所用到的技术确实也比较少。

但我们要明白“唯一不变的只有变化”,框架有可能要改进,组件可能要替换,或者你换了一家公司,新公司既没有组件也没有框架,要你从头开始来做。

这些都是机会,也是挑战,而机会和挑战只会分配给有准备的人,所以这种情况下我们更加需要自学更多东西,因为真正等到要用的时候再来学已经没有时间了

科比是NBA著名的篮球人,为了提升自己,他能够每天5点起床训练,每天投3000个球,不断的坚持,成就了如今的成功。

博尔特是世界上跑得最快的人,这个并不是与生俱来的,成功的背后是别人百倍的努力和付出,每天坚持训练的结果。

而我们作为普通人,学习一门技术,靠的就是明确的学习计划+坚持执行。

2.自学有哪些常见的误区?

误区1:很多自学的小伙伴非常热衷于找各种学习资料或者学习视频,所以导致以下两种情况的经常发生。资料不需要太多,尽量多上手操作!

误区2:只看不练。 相信很多自学的小伙伴会在各种论坛、平台上看各种技术类视频和文章。可他们也只限于看而已,以为看视频、看文章就能学会?那可就太天真啦!

误区3:过于依赖别人。不管是自学还是系统学习,又或者是学校本来就有相关课程的小伙伴都会经常踩到这个误区。勤问是好事,但是,如果你首先不思考 “ 为什么 ” 就去直接问老师、问前辈,那你的进步会非常慢,因为,知识还是在别人脑子里呀。

误区4:学习时很少做笔记或思维导图,这基本等于说没有将学到的知识转成自己的知识。很多自学者都出现这种情况,学编程时非常努力和勤奋,但是技术提升其实很慢。你让他说今天学了什么东西?他一脸茫然,他只知道我好像看了一些书、看一些视频。

误区5:没有学习的方向。自学编程会遇到非常多的困难,有很多基础的概念问题如果没有理解,会影响后续的学习。自学如果有问题,身边也没有可以帮你的人,孤军奋战是非常艰苦的。很多人学着学着就容易放弃,因为自学编程绝对不是一件简单的事情。

进入正题,推荐一下参考资源学习:

1、认识.NET Core

2、Vistual Studio安装、调试

3、Asp.Net Core入门指南与学习路线

4、学习这份面试手册

5、入门级实战项目手册、官方教程

6、Asp.Net Core视频学习资源

7、部署与测试

8、开源项目推荐

第一部分:认识.NET Core

从2014年11月.NET Core 项目启动到2016年06月.NET Core 1.0 发布,2020年你真的需要学习.NET Core!

1.什么是.NET Core?

ASP.NET Core是一个由微软创建的,用于构建Web应用程序,API,微服务的Web框架。它使用常见的模式,例如MVC(模型-视图-控制器),依赖注入,和一个由中间件构成它基于Apache 2.0许可开放源码,就是说,源可以自由获取,并且欢迎社区成员以缺陷修复和新功能提交的方式进行贡献。

ASP.NET Core在Microsoft的.NET运行时库上,例如Java的虚拟机(JVM)或Ruby的解释器。有多种语言(C#,Visual Basic,F#)可以编写ASP.NET Core程序。C#是最常见的选择,我在书中也会采用它。你可以在Windows,Mac和Linux上进行并发运行ASP.NET Core应用。

2 .NET Core的优势有哪些?

跨平台:可在 Windows、macOS 和 Linux 操作系统上运行。

跨体系结构保持一致:在多个体系结构(包括 x64、x86 和 ARM)上以相同的行为运行代码。

命令行工具:包括可用于本地开发和持续集成方案中的易于使用的命令行工具。

部署灵活:可以包含在应用或已安装的并行(用户或系统范围安装)中。 可搭配Docker 容器使用。

兼容性:.NET Core 通过 .NET Standard 与 .NET Framework、Xamarin 和 Mono 兼容。

开放源代码:.NET Core 平台是开放源代码,使用 MIT 和 Apache 2 许可证。.NET Core 是一个.NET Foundation 项目。

由 Microsoft 支持:.NET Core 由 Microsoft该项目提供支持。

3. .NET 发展简介

通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? cnblogs.com/zhangmumu/p

C# 语言版本发展史 docs.microsoft.com/zh-c

.NET Core 1.0 发布了 oschina.net/news/74707/

.NET Core 3.0 新特性:支持 Windows 桌面应用(windows only) oschina.net/news/95906/

.NET Core3.1 新特性 : blog.csdn.net/qq_278437

.NET 跨平台 UI 框架 MAUI终于来了 blog.csdn.net/kebi007/a

第二部分:Vistual Studio安装、调试

VS2019安装教学 blog.csdn.net/Wewon_rea

vs2019企业版密钥 cnblogs.com/zhangmumu/p

12款Visual Studio 好用的工具 zhuanlan.zhihu.com/p/14

VS2019自带 反编译 与 Reflector 反编译工具比较 cnblogs.com/cjm123/p/10

使用dnSpy调试asp.net core源码 mp.weixin.qq.com/s/Rk06

12个Visual Studio调试效率技巧 zhuanlan.zhihu.com/p/15

使用VS Code 开发.NET CORE 程序指南 cnblogs.com/xboo/p/1143

完整构建VSCode开发调试环境 cnblogs.com/tianqing/p/

如何为.NETCore安装汉化包智能感知 cnblogs.com/yyfh/p/1207

.NET Core 卸载工具 (dotnet-core-uninstall) news.cnblogs.com/n/6574

【微软官方文档】ASP.NET Core 各个版本新特性 docs.microsoft.com/zh-c

指定要使用的 .NET Core 版本 docs.microsoft.com/zh-c

超全的C#帮助类汇总:

工欲善其事,必先利其器,日常工作留意总结,加上网上收集,各式各样的几乎都能找到,所有功能性代码都是独立的类,类与类之间没有联系,可以单独引用至项目。有需要请备用留存。

高能预警:130个超全C#帮助类,提升效率就靠它!

包括:INI文件读写类、SqlHelper、IP辅助类、二维码操作类、URL的操作类、 XML操作类、上传下载帮助类、 二维码操作类、分词辅助类、加密解密帮助类、分页帮助类、图片验证码帮助类、图片操作类、处理枚举类、异步线程帮助类、文件操作类、日志帮助类、时间操作类、科学计数帮助类、全面正则表达式操作类、视频帮助类、网站路径操作类!

第三部分:Asp.Net Core入门指南与学习路线

该指南的目的是为了给读者心有个大概的轮廓。

在下面,您可以看到一个图,说明可以采用的路径以及要成为ASP.NET Core开发人员所想要学习的库。我将此图作为提示,给所有问我“作为ASP.NET Core开发人员,接下来应该学习什么?”的人。 ASP.NET Core开发者成长路:

“作为 ASP.NET Core 开发者,我接下来应该学习什么?”,下面将介绍需要学习的东西,其中包括:依赖注入、数据库、缓存、日志、模板引擎、实时通信、测试、任务调度、设计模式等。

cnblogs.com/enjoy233/p/

路线图:

开源地址: github.com/MoienTajik/A

第四部分:ASP.NET Core面试手册

给.neter们整理了一份《.NET/C#面试手册》,目前大约4万字左右,初衷也很简单,就是希望在面试的时候能够帮助到大家,减轻大家的负担和节省时间。对于没有跳槽打算的也可以复习一下相关知识点,就当是查缺补漏!

包括[基础语法]、[面向对象]、[集合、异常、泛型、LINQ、委托、EF]、[多线程]、[ASP.NET MVC]、[ASP.NET Core]、[ADO.NET、XML、HTTP、AJAX、WebService]、[常见的算法]、[数据库概念知识]、[数据库SQL查询(附建表语句)]

完整版手册word、pdf地址:金三银四,推荐一份.NET程序员面试手册,4万字干货!

第五部分:入门级实战项目手册、官方教程

推荐一个小白入门级的.NET Core开源项目,非常适合新手入门学习.NET Core。

开源地址 github.com/windsting/li

手册下载地址 nbarbettini.gitbooks.io

这是一本Asp.Net Core手册,目的是帮助web编程开发者和爱好者了解ASP.NET Core,一个使用Web应用和API的框架。

这本手册内容是一个入门的教程。您可以从头开始,完整地构建一个应用程序,同时了解以下内容:

MVC(模型-视图-控制器)模式的基本内容 前端代码(HTML,CSS,JavaScript)如何与代码交互 什么是依赖注入以及它的实用之处 如何进行数据库的读写操作 如何添加登录,注册功能,以及如何提升安全性 如何部署该应用程序到网络上 即使你对上面的知识点一无所知,也可以从这本手册中开始学习!

更多详情链接 zhuanlan.zhihu.com/p/16

微软官方的ASP.NET Core教程

了解如何使用 ASP.NET Core 创建快速、安全、跨平台和基于云的 Web 应用和服务。 浏览教程、示例代码、基础知识、API 参考和更多内容。

docs.microsoft.com/zh-c

第六部分:Asp.Net Core视频学习资源

bilibili:《从零开始学ASP.NET Core与Entity Framework Core》

bilibili.com/video/BV1w

来自微软MVP,网名:角落的白板报。

整个课程包含ASP.NET Core的基础、ASP.NET Core MVC、ASP.NET Core Razor EntityFramework Core。

.Net Core3.1跨平台实战|源码|框架|调优

ke.qq.com/course/465090?

老张的哲学

ASP.NET Core 学习视频教程(Blog.Core) bilibili.com/video/av58

第七部分:部署与测试

nginx 之 https 证书配置 cnblogs.com/crazymagic/

asp.net core 只有发布之后才能在IIS上部署访问(而asp.net 程序 是可以直接指定到源代码目录访问) q.cnblogs.com/q/116899/

.Net Core 跨平台:一个简单程序的多平台(windows、Linux、osx)发布 cnblogs.com/sndnnlfhvk/

ASP.NET Core 使用 IIS 进行托管部署 cnblogs.com/wangjieguan

ASP.NET Core 部署到 Linux 进行托管 cnblogs.com/viter/p/104

在Linux上使用 pm2 守护你的 .NET Core 应用程序--(pm2 github starts 31.1k) cnblogs.com/stulzq/p/97

在Linux上使用Nginx + supervisor部署ASP.NET Core程序--(supervisor github starts 5.8k) cnblogs.com/esofar/p/80

ASP.NET Core 使用Docker进行容器化托管 cnblogs.com/viter/p/104

配置 ASP.NET Core 以使用代理服务器和负载均衡器 docs.microsoft.com/zh-c

使用 Nginx 在 Linux 上托管 ASP.NET Core docs.microsoft.com/zh-c

使用 Apache 在 Linux 上托管 ASP.NET Core docs.microsoft.com/zh-c

ASP.NET Core nginx反向代理部署 cnblogs.com/sheng-jie/p

.NET Core 和 .NET Standard 单元测试最佳做法 docs.microsoft.com/zh-c

.NET 测试篇之Moq框架简单使用 cnblogs.com/tylerzhou/p

使用 dotnet test 和 xUnit 在 .NET Core 中进行 C# 单元测试 docs.microsoft.com/zh-c

第八部分:ASP.NET Core开源项目

OrchardCore

Orchard Core是使用ASP.NET Core构建的开源模块化,多租户应用程序框架,以及在该应用程序框架之上构建的内容管理系统(CMS)。

github.com/OrchardCMS/O

ant-design-blazor

专为Web应用程序设计的企业级UI,与现有的ASP.NET Core MVC和Razor Pages项目无缝集成。

github.com/ElderJames/a 文档:ant-design-blazor.gitee.io

awesome-dotnet-core

优秀的.NET Core开源项目的集合,从入门到进阶!

内容包括:库、工具、框架、模板引擎、身份认证、数据库、ORM框架、图片处理、文本处理、机器学习、日志、代码分析、教程等。

Abp.VNext.Hello

hello,一个经典的abp框架!

abp是一款DDD模式的框架,它具备分层以及模块化的结构,框架本身含有授权,验证,异常处理,日志,本地化,数据库连接管理,设置管理,审计日志等,ABP是一个开源的且文档友好的应用框架,起始的想法是,“开发一款为所有公司和开发者通用的框架!”。它不仅仅是一个框架,更提供了一个基于DDD和最佳实践的健壮的体系模型。

github.com/wjkhappy14/A

ZKEACMS

纸壳CMS(ZKEACMS)是ZKEASOFT自主研发的,开源的免费的建站系统,您可以直接使用它来做为您的企业网站,门户网站或者个人网站,博客,或用它做二次定制开发以满足您特定的需求。

github.com/SeriaWei/ZKE

YiShaAdmin

YiShaAdmin 基于.NET Core Web开发,借鉴了很多开源项目的优点,让你开发Web管理系统和移动端Api更简单,所以我也把她开源了。 她可以用于所有的Web应用程序,例如网站管理后台、CMS、CRM、ERP、OA这类的系统和移动端Api。

采用Bootstrap + ASP.NET Core + Entity Framework Core基础架构。

github.com/liukuo362573

.NET Core源码

C#开源项目推荐,.NET Core源码必须推荐!

github.com/dotnet/aspne

Util应用框架

Util是一个.net core平台下的应用框架,旨在提升小型团队的开发输出能力,由常用公共操作类(工具类)、分层架构基类、Ui组件,第三方组件封装,第三方业务接口封装,配套代码生成模板,权限等组成。

github.com/dotnetcore/U

个人博客系统

运行在windows和linux系统上,完全基于BeetleX.FastHttpAp框架开发。

前后端分离,完全脱离后端视图引擎;基于vuejs和webapi模式

github.com/IKende/XBlog

FreeSql

FreeSql 是功能强大的对象关系映射技术(O/RM),支持 .NETCore 2.1+ 或 .NETFramework 4.0+ 或 Xamarin。

github.com/dotnetcore/F

Autofac

经典的的DI框架。

Autofac是Microsoft .NET的IoC容器。它管理类之间的依赖关系,以使应用程序随着大小和复杂性的增长而易于更改。

github.com/autofac/Auto

持续更新中,如果你有好的文章、教程,开源项目。只要是.NET Core,都可以收集起来!欢迎评论指出来。

如果觉得有帮助,点赞支持一下ASP.NET Core!

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有