目录
一:引言
二:.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++

四:学习资源汇总

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)、数据库增删改查。重新学习一门新语言,就可以先搜集这门语言独特的语法特性,结合编程练习,达到一定的熟悉程度,可以尝试去练习这些语法公共部分相关的编程练习,这样更容易保证用最短的时间解决当前问题,在后续的漫长时间内,在逐渐深入学习掌握语法细节,并领会背后的设计思想。

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

  1. golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍

    golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍 go语言爬虫框架:gocolly/colly,goquery,colly,chrom ...

  2. HTML+CSS学习笔记 (6) - 开始学习CSS

    HTML+CSS学习笔记 (6) - 开始学习CSS 认识CSS样式 CSS全称为"层叠样式表 (Cascading Style Sheets)",它主要是用于定义HTML内容在浏 ...

  3. 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧

    目录 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧 25.1 Shell中的色彩处理 25.2 awk基本应用 25.2.1 概念 25.2.2实例演示 25.3 awk ...

  4. 学习笔记:CentOS7学习之二十四:expect-正则表达式-sed-cut的使用

    目录 学习笔记:CentOS7学习之二十四:expect-正则表达式-sed-cut的使用 24.1 expect实现无交互登录 24.1.1 安装和使用expect 24.2 正则表达式的使用 24 ...

  5. 学习笔记:CentOS7学习之二十三: 跳出循环-shift参数左移-函数的使用

    目录 学习笔记:CentOS7学习之二十三: 跳出循环-shift参数左移-函数的使用 23.1 跳出循环 23.1.1 break和continue 23.2 Shift参数左移指令 23.3 函数 ...

  6. 学习笔记:CentOS7学习之二十二: 结构化命令case和for、while循环

    目录 学习笔记:CentOS7学习之二十二: 结构化命令case和for.while循环 22.1 流程控制语句:case 22.2 循环语句 22.1.2 for-do-done 22.3 whil ...

  7. 学习笔记:CentOS7学习之二十一: 条件测试语句和if流程控制语句的使用

    目录 学习笔记:CentOS7学习之二十一: 条件测试语句和if流程控制语句的使用 21.1 read命令键盘读取变量的值 21.1.1 read常用见用法及参数 21.2 流程控制语句if 21.2 ...

  8. 学习笔记:CentOS7学习之二十:shell脚本的基础

    目录 学习笔记:CentOS7学习之二十:shell脚本的基础 20.1 shell 基本语法 20.1.1 什么是shell? 20.1.2 编程语言分类 20.1.3 什么是shell脚本 20. ...

  9. 学习笔记:CentOS7学习之十七: Linux计划任务与日志的管理

    目录 学习笔记:CentOS7学习之十七: Linux计划任务与日志的管理 17.1 计划任务-at-cron-计划任务使用方法 17.1.1 at计划任务的使用 17.1.2 查看和删除at将要执行 ...

  10. 学习笔记:CentOS7学习之十九:Linux网络管理技术

    目录 学习笔记:CentOS7学习之十九:Linux网络管理技术 本文用于记录学习体会.心得,兼做笔记使用,方便以后复习总结.内容基本完全参考学神教育教材,图片大多取材自学神教育资料,在此非常感谢MK ...

随机推荐

  1. iomanip.h

    http://baike.baidu.com/link?url=zuNLgcUVylhUYYefyV13F38NChIMx8nnCEWV5zkkTQMrrSdKPxUERZuydSHtp6sXukWv ...

  2. jquery easyui的异步tree

    1.创建一个简单的tree 结果如图: <script> $(function(){ $('#tt').tree(){ url:'要提交的url地址', checkbox:true, li ...

  3. 【Java】C/C++与Java的简单比较

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827273.html     C/C++:            编译(不同的系统编译出不同的机器码,所以同一 ...

  4. Objective-C: NSFileManager 的使用

    在Objective-C 中的 Foundation 框架中,文件操作是由NSFileManager 类来实现的. 下面通过例子来说明如何创建一个文件,并向文件中写内容,以及如何读出文件中的内容: - ...

  5. js 限定上传文件大小 类型

    方案1 :限定大小 <html> <head> <script type="text/javascript">   var isIE = /ms ...

  6. sre_constants.error: unbalanced parenthesis

    Traceback (most recent call last):   File "androidmarket82.py", line 108, in <module> ...

  7. Mac下生成RSA密钥

    MAC OS自带了OpenSSL,直接在命令行里使用OPENSSL就可以. 打开命令行工具,然后输入 openssl打开openssl,接着只要三句命令就可以搞定. 第一句命令生成1024位私钥: O ...

  8. 【转】python的小知识

    1. 如何反序访问一个序列(how do I iterate over a sequence in reverse order) 如果序列是list,则使用list.reverse()即可将序列反序. ...

  9. 从零开始学android开发-通过WebService获取今日天气情况

    因为本身是在搞.NET方面的东东,现在在学习Android,所以想实现Android通过WebService接口来获取数据,网上很多例子还有有问题的.参考:Android 通过WebService进行 ...

  10. Codeforces Round #250 (Div. 1) A. The Child and Toy 水题

    A. The Child and Toy Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/438/ ...