2026-07-10 11:12:11
从纯技术角度对C#的认知以及不同技术级别所需掌握的内容如下:
C#入门标准C#的入门技术是委托、事件、消息,只有纯熟运用这三个技能,才算真正入门C#。很多人学了一些语法编写项目后就自认为精通C#,实际上还未入门,这种情况在对日开发领域较为常见。
不同技术级别对C#各知识领域的掌握要求Common Language Runtime(公共语言运行时)
初级人员:通常无视它。
中级人员:起码要知道它的存在。
高级人员:多数要会使用其中一些应用,比如security相关内容。
架构师:要理解其原理。
.NET Framework
包含许多框架,掌握的框架数量越多越好。不同级别的开发者都应不断拓展自己在这方面的知识储备,以应对更复杂的开发需求。
Base Class Library(基类库)
基本语法集合,想成为高手一定要全部学会,不能有遗漏。这是构建扎实C#基础的关键部分,对于深入理解和运用C#语言至关重要。
Runtime Infrastructure Library(运行时基础结构库)
初级开发者:不用了解。
中级开发者:进入中级阶段就要开始一点点吸收相关知识。
高级开发者:要全部消化这些内容。
Framework Class Library(框架类库)
基本应用集合,初级程序员可能都会接触一些;中级程序员会了解和运用一些;高级程序员要全部会用。
Core Concepts(核心概念)
与上述部分知识的学习要求类似,随着级别的提升,需要不断深入掌握。
Desktop(桌面开发)
CUI(控制台用户界面):了解即可。
GUI(图形用户界面):要深入了解,且涉及XAML语言,需要学会该语言。
Web开发
SharePoint:如果工作没涉及,不去了解也可以。
ASP.NET:是必会内容,其中的MVC就算工作没应用也要学会。
ASP.NET Runtime:是进阶高手的一个路障,了解得越多越好。
Silverlight:会XAML基本就能用,如果工作需要则要精通。
SOA(面向服务的架构)
这是必会的内容,而且至少要精通其中一个方面。SOA在现代软件开发中应用广泛,掌握它有助于构建更灵活、可扩展的系统。
Open Web Interface for .NET
要了解并会使用,如果工作需要,则要达到精通的程度。这有助于开发与.NET相关的Web应用时更好地进行接口交互。
SDK(软件开发工具包)
要了解并会基本使用。SDK为开发者提供了开发特定软件或应用的工具和资源,掌握基本使用方法能提高开发效率。
Development(开发工具)
基本没有人能全会所有开发工具,但要熟练使用常用工具。毕竟工具掌握得越多越好,不过这并非技术加分项,而是提高开发效率的基础能力。
Platforms(平台)
基本很难有人全精所有平台,但至少要了解,对于工作用过的平台要达到精通的程度。不同平台有不同的特性和开发要求,熟悉相关平台能更好地进行项目开发。
Productivity(生产力工具)
起码NuGet要会用。NuGet是.NET的软件包管理器,能方便地安装和管理项目依赖的库和组件。
Build(构建)
高级人员要了解其原理。构建过程是将源代码转换为可执行程序的过程,了解构建原理有助于优化开发流程和解决构建相关问题。
Testing(测试)
至少要会使用1种测试工具,其他的要了解。测试是保证软件质量的重要环节,掌握测试工具和方法能提高软件的稳定性和可靠性。
Deploy/publish(部署/发布)
基本用法可以通过百度获取,了解相关概念即可,起码知道有这些东西,需要的时候可以进一步搜索学习。部署和发布是将开发好的软件交付到实际运行环境的过程。
Framework Tool(框架工具)
有些是必会的,有些会用就行,但最好全部了解,需要的时候学习其用法。框架工具能帮助开发者更高效地使用框架进行开发。
Data(数据相关)
作为高级人员是必会的,如果其中的ORM(对象关系映射)可以用EF(Entity Framework)作为跳板深入研究。数据是软件的核心部分,掌握数据相关技术对于开发高质量的软件至关重要。
Components(组件)
中级以后难免要接触这些,了解得越多进步得越快。组件化开发能提高代码的复用性和可维护性。
Concept(概念)
中级以后就会接触,像IOC(控制反转)、AOP(面向切面编程)、MVC(模型 - 视图 - 控制器)、MVVM(模型 - 视图 - 视图模型)、DDD(领域驱动设计)等等。在学习这些概念的过程中可以逐渐向架构师前进。
基本概念:如IOC、AOP,在编码时可能已经应用过了,有一些现成的开源代码,原理简单,学会后可以用具体语言来表达编码方式,不去了解也无妨,但知道得多方便交流。
高级概念:如DDD,光靠百度是学不会的,一定要应用过才能了解,很复杂,非技术人员很难理解,技术人员也未必有那么好的口才讲解。
除了C#相关知识,程序员还需要掌握其他必备知识: