.NET学习笔记(1)— C#学习路线图

目录

一:引言

二:.NET技术体系

三:常用工具汇总

四:学习资源汇总

五:书籍推荐

六:关于阅读技术书籍的经验

七:总结

一:引言

因为工作调整,从PHP开发零基础转型到.NET开发,前期没有太多空闲时间去系统学习。只好独辟蹊径,寻找快速掌握满足当前需求的方法,和大家分享:

<一>:先搜集.NET平台重点知识点的概念名称,然后通过网络搜集该知识点的学习资料,尽可能宏观地了解这个全新技术体系的语法结构,涉及的编程练习题反复练习;

<二>:逐行阅读工程源代码,再通过网络学习遇到的知识盲点,然后把零散的知识点先记录到学习笔记中,后续再统一整理;

可想这份挑战并不轻松,但因为是本职工作,基本一天所有精力都在学习、思考这些新知识,代码和笔记也会反复阅读很多遍。这个体验的过程中,我觉得最重要的收获是:工作中,在时间和精力有限的情况下,先满足当前的需求是最重要的,也就是完成大于完美。另一方面,明确一个目标,制定对应的计划,保持好心态,尽最大努力坚持下去也很重要。

二:.NET技术体系

1:.NET介绍

.NET平台的核心技术为:通用语言运行时(CLR:Common Language Runtiome)、基类库(BCL:BaseClass Library)、.NET语言及VisualStudio.NET,如图:

.NET技术体系沿袭的是微软的技术路线,所以主要面向windows操作系统,基于.NET技术开发的常见软件类型有:

1》:WinForm/WPF技术开发基于Windows平台的客户端软件;

2》:asp.net技术开发的网站;

3》:C#语言编译的Dll文件或者COM组件;

它主要由这几个部分组成:编程基础知识、Web编程、桌面编程以及数据访问技术。下面从几个概念介绍来构筑.NET技术体系的总体情况:

2:C#语法

C#作为.NET体系最常用的开发语言,首先它是一门编译型语言,也是一门类型安全的面向对象语言,它依赖.NET Framework运行。C#的语法特性主要包括属性、枚举、值类型和引用类型(转换)、集合、结构以及Lambda表达式、LINQ、WPF、WebSercice、WCF、Win服务等,可以查阅C#关键字列表看一下。关于变量命名、方法传参、数组、流程控制和循环控制、类的继承、派生、多态这些基本是各个语言公共具有的特性,可参阅其他教程。

3:asp.net站点开发

asp.net是.NET体系的一部分,它综合了HTML、CSS、JavaScript以及C#语言开发网站,asp.net支持三种开发模式:

WebPage(单页面模型)

WebForms(事件驱动模型)

MVC

WebPage是过去那种流程化处理的页面,服务器脚本和前端代码混合。WebForms增加了控件机制,支持编写自定义控件。

4:Winform软件开发

(待续)

5:数据访问技术

(待续)

6:调试和错误处理

(待续)

 三:常用工具汇总

VisualStudio(IDE集成开发工具)

MiscrosoftSQL Server(关系型数据库)

IIS/IISEpress(Web服务器)

.NETReflector、ILSpy(反编译工具)

NuGET(包管理器)

VSS/TFS(源代码版本管理、团队协作)

NotePad++

四:学习资源汇总

微软MSDN C#教程(http://msdn.microsoft.com/zh-cn/library/aa288436(v=vs.71).aspx

Learning hard--微软C#方向的MVP(http://www.cnblogs.com/zhili/

Jax技术博客(http://www.cnblogs.com/Jax/

鱼·后花园的技术博客(http://www.fishlee.net/

小鱼儿-fly技术博客(http://www.cnblogs.com/jyfly1984/)

MeteorSeed的博客园--C#学习笔记系列(http://www.cnblogs.com/MeteorSeed)

李善友的博客园(http://www.cnblogs.com/shanyou/

blsong的博客园(http://www.cnblogs.com/blsong/

五:书籍推荐:

《C#入门经典》
《C#高级编程》
《ASP.NET MVC 5高级编程》
《深入理解C#》
《Learning hard C#学习笔记》

六:关于阅读技术书籍的经验:

一本技术书总体上是用作者自己的思维方式和语言风格去描述一类技术的知识点和原理,大部分技术书籍涵盖的内容较多,那么串联知识模块并且形成一个总体的知识体系就非常关键,有下面几种途径来达到串联知识的目的:

1:理解书籍的目录章节划分;

2:用笔划线、勾选等记录知识要点,然后再每天固定时间温习要点部分并写成学习笔记;

3:隔段时间再整体温习学习笔记,疑问处再反过来翻阅已看完的书籍;

很多时候尤其学习一门新技术的时候,大部分人根本不可能一次性领会全部内容,包括一些语法特征,这门语言为什么要设计成纯面向对象,PHP为什么是解释执行但依然那么流行?C#的页面为什么设计成事件驱动,它的实时编译机制的细节是怎样的,页面生命周期的执行细节又是怎样?另一方面,还是要大量结合编程练习,只有在一段程序或者一个完整项目中(程序应用场景),才能全面、深刻领会从语法细节到设计模式和架构的知识,并最终形成自己的知识库,而不是作者的一本书。

七:总结

不同语言的程序开发中,大部分基础功能用到的语言特性很相近,比如字符串的拼接和拆分、数组的使用、循环遍历,以及读写文件(txt、XML)、数据库增删改查。重新学习一门新语言,就可以先搜集这门语言独特的语法特性,结合编程练习,达到一定的熟悉程度,可以尝试去练习这些语法公共部分相关的编程练习,这样更容易保证用最短的时间解决当前问题,在后续的漫长时间内,在逐渐深入学习掌握语法细节,并领会背后的设计思想。

时间: 2024-12-16 08:59:00

.NET学习笔记(1)— C#学习路线图的相关文章

Accelerated C++学习笔记1—&lt;开始学习C++&gt;

第0章 开始学习C++ 1.每次学习一个新的语言,大家都是从Hello, world!开始 // lesson0_1.cpp : 定义控制台应用程序的入口点. //功能:编译并运行Hello,world //时间:2014.5.7 #include "stdafx.h" #include "iostream" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { std::cout<< &

[Linux] 学习笔记之安装学习环境(sshd, lrzsz)

紧接前一篇,在VMWare安装完Linux,这个时候我们要使用远程工具连接到虚拟机上去了,以前一直使用Putty,后来到新公司之后,推荐使用SecureCRT,使用之后,觉得效果不错,但是每次连接都失败,linux新手伤不起,在网上搜啊搜,终于找到解决办法.   搜索了很多资料之后,发现是由于我未在Linux上安装ssh服务导致无法使用SecureCRT连接. 1. 可以使用ssh localhost对此进行测试,具体使用如下: 2. 使用apt-get或者yum安装ssh服务,具体哪种操作系统

iOS学习笔记---c语言学习第七天

结构体 结构体是一种自定义的数据类型 struct 结构体名 { 类型说明符  成员名: … 类型说明符  成员名: }: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { struct teacher{ char name[30]; char sex; int age; char course[30]; }; typedef struct teacher Teacher; Teacher c

树莓派学习笔记——GPIO功能学习

树莓派学习笔记——GPIO功能学习

【web开发学习笔记】Struts-Tags学习笔记1 - 通用标签和控制标签

通用标签和控制标签 第一部分:代码 //前端 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <title>Insert title here</title> </head> <body> 访问属性 <a href="<%=contextP

VBA学习笔记之VBA学习思路

进阶的知识点 1. SQL查询语句和ADO2. 正则表达式和网抓3. 窗体与控件4. API 类模块 等等 作者:SOROSay链接:https://www.zhihu.com/question/26078625/answer/132542043来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1小时 熟悉数据类型.变量.常量和运算符 1.了解VBA有哪些数据类型 2.知道如何定义变量,了解public/dim/private定义变量时的区别 3.知道如何定义常量

【web开发学习笔记】ibatis学习总结

ibatis学习总结 ibatis数据库配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <

[学习笔记] Sencha Cmd 学习笔记 Sencha Cmd是什么

本文地址: http://blog.csdn.net/sushengmiyan/article/details/38295575 本文作者:sushengmiyan -------------------------------------------------------------资源链接----------------------------------------------------------------------- 翻译来源  Sencha Cmd官方网站: http://w

【web开发学习笔记】Hibernate学习总结

hibernate学习笔记 学习笔记部分: 本部分的学习比较容易,代码比较全,也容易理解,可以说是一些记忆性质的东西. 本人在学习过程中没有自己在做笔记,只是参考了网上找的学习笔记,按照那个笔记学习和复习挺快的. 源码中有一些jar包缺失,我在自学的时候也整理了相关的jar包和软件,已经上传,祝大家学习快乐. 相关资源链接: 相关的数据库连接的资源: http://download.csdn.net/detail/licong_carp/7656601 相关的jar包文件: http://dow

树莓派学习笔记——I2C Tools 学习笔记

i2ctool树莓派linux 目录(?)[+] 安装 I2C总线扫描 I2C设备查询 寄存器内容导出 寄存器内容写入 寄存器内容读出 总结 参考资料 1.安装 I2C驱动载入和速率修改请查看博文[树莓派学习笔记--I2C设备载入和速率设置]. 2.I2C总线扫描 通过i2cdetect -l指令可以查看树莓派上的I2C总线,从返回的结果来看树莓派含有两个I2C总线,通过阅读相关的资料,树莓派1代使用I2C0,而树莓派2代使用I2C1. [plain] view plaincopyprint?