.NET平台技术体系梳理+初学者学习路径推荐+我们的愿景与目标

一 .NET平台技术体系梳理

.NET平台应用领域众多(桌面开发,web开发,移动开发),不断有新的编程爱好者开始学习或从其他平台转移到.NET开发平台。.NET开发平台由微软2000年提出,到今天已经进入到了第14个年头,新技术,新框架层出不穷,目不暇接。本文第一个目的是想揭示下.NET平台一路走来的发展脉络,以飨众多刚刚进入该领域的开发者。

我们总结的泛.NET平台技术圈的知识范畴如下图所示:

二 初学者学习路径建议

由上图可见,.NET平台技术繁多,从头学起需循序渐进。结合自己的学习经验,斗胆给出一份初学者的学习建议。

1.任何一门技术都应该从基础学起,所以首先我建议大家首先学习上图c#基础中的相关主题;这里需要指出的是上图C#基础中描述的相关主题虽然被放在了c#基础当中,但是不代表是最简单的技术,有些专题要比后面的一些专题比如WinForm编程中的控件编程要复杂得多。

2.WinForm编程(包括窗体控件使用,GDI,ADO.NET),建议同时学习一下数据库查询和设计理论,边学边做一个c/s结构的小型管理信息系统,这样的源码网上到处都是。

3.B/S结构信息系统开发(企业内部信息系统)的开发,主要使用WebForm技术。web开发技术涉及到的知识浩瀚无边,前端,后端,数据库端,每一个方面都有很多的内容需要学习。掌握WinForm后,学习WebForm,学习的路径不至于太陡峭,因为微软封装了前端的细节,使得WebForm的开发感觉和WinForm类似,但是还是有所不同的。通过WebForm的学习,你可以了解些PC程序开发中没有接触到的概念,比如表单的Post和Get,HTTP协议的无状态特点,Cookie和Session的用法等等。同样可以边学边做一个b/s结构的小型管理信息系统,这样的源码网上也不少。

4.最后就可以挑战下B/S结构网站开发(互联网应用)了。这时将面对其他语言程序员最开始web开放时同样的挑战,掌握html/js/css/jquery等前端开发技术,ASP.NET MVC这样的后台技术,当然数据库设计和查询能力也是必不可少的。

当然,以上推荐的学习路径需要因人而异,这里假设你是一个软件开发的初学者;如果你是从java/php/ruby/phthon等其他web开发平台转过来的开发者,则你可以略过(2,3)步,只需要掌握下C#的基础知识和ASP.NET MVC的相关知识即可。

三 各阶段相关优秀书籍推荐

不知道大家是否遇到过这种情况,学习一门热门的新技术,到书店去买书,发现相关主题的书籍琳琅满目;由于初涉该领域,大家在选择图书的时候不好判断,主要问题归结为以下2点:

(1)书籍撰写质量稂莠不齐,很难筛选(通常难以辨别时,首选国外译作);

(2)由于对该领域技术体系不了解,选择了高级阶段的图书(本应该选择入门级好书),缺乏该技术的先期知识,导致阅读很吃力。

基于以上2点,向大家推荐以下几本好书,首先Show一下自己的书架:

这里给大家推荐三本书,首先这3本书涉及的技术分别是sql查询,javascript,css。这3种技术和我们之前的c#或java开发的已有经验不太一样,所以学习初期可能感觉不太适应,比如javascript的弱类型,函数式编程特性;sql查询中没有循环的概念,如何获取我们想要统计的结果;css这种格式化html内容的语言。三本好书如下:

1.园子里Tom大叔的译著《javascript编程精解》

2.sql cookbook中文版

3.css实战手册

正是看了这3本书,才基本掌握这3种技术的(每本书之前都看了相同专题的好几本其他书籍,都没学会)。

四 学习软件开发的最有效方式---笔者的一点拙见

在近10年的开发道路中,有2次个人感觉提升最大的时刻。第一次是跳槽进入第二家公司,在公司里遇到了一位经验丰富的开发主管。从第一家公司离职的原因是,虽对于公司的代码,可以做到很好的维护,可是当时感觉个人不具备解决问题的能力,遇到一个稍微复杂点的功能需求,总是要靠百度,谷歌。看了很多linux的源代码,非常想知道其中的各个数据结构最初是如何设计出来的(国外的这些大牛们最初是如何思考的),为了寻找这些答案,毅然离开了第一家公司,进入到前面所说的第二家公司。在这家公司,由一个经验丰富的开发主管带着,以极限编程中提出的结对编程的方式一起工作了一小段时间。在这段期间内,跟着这位师傅学到了业务需求决定了类成员及其关系的设计,泛型集合类的强大处理能力等相关开发思想。第二次提升是自己从C++平台转向.NET平台,也是一段时间,看着一位经验丰富的开发人员在自己面前编程。这次所用时间更短,在1天之内熟悉了.NET平台开发环境。

个人体会,对于初学者来说,如果有机会在一个比你水平高的开发人员旁边学习一段时间,而这位师傅能在边向你展示各种编译器,编辑器,代码生成器,高效开发调试工具使用技巧的同时,有能向你讲解他解决问题的思路,那么你的提升将会是巨大的。而在现实工作中,这种机会并不是很容易碰到。因为如果是在学校中,一般难以遇到这样的有经验的开发人员;在工作中,老板付钱让你干活,很少提供你学习的机会。

五 我们的愿景与目标

上述想法,多年前就已经有所体会,心中一直有个计划想实施,即将自己多年的开发经验,录制成视频,分享给所有有需要的,新加入软件开发行列的新人们。半年之前,曾尝试如此去做,但是视频录制的过程中遇到一些问题。虽然录制视频,台下没有观众,但是自觉不自觉的会想到此视频届时会有很多人进行观看。以致录制的过程比较紧张,中间有卡壳发生,加上自己又比较追求完美,导致一份视频录制多次仍旧不十分满意。一份视频多次重复录制是一件十分恼人的事,最终没有坚持下来。近半年,一次偶然的机会,得以在国内某大型培训机构,兼职讲述C/C++,MFC等开发知识,授课能力得到了锻炼,终于万事具备,于是才有了.NET平台软件开发培训视频教程的第一个系列《手把手教你使用FineUI开发一个b/s结构的取送货管理信息系统》的出炉。大家对视频的肯定也增强了自己坚持下去的信心。有一个不自量力的计划,即使用4-6个月的时间陆续推出前面[泛.NET平台技术圈]中提及的各阶段开发的视频教程。

大纲初步制定如下:

1.c#基础系列(采取专题的方式)

2.WinForm开发系列

(1)通过项目中总结的一个开源框架讲述各类WinForm控件的用法,同时再开发若干个综合实例;

(2)通过一个打砖块和一个飞机大战的小游戏,系统讲解下GDI编程的相关理论

(3)通过一个c/s结构小型的管理信息系统讲述ADO.NET,ORM知识

3.数据库设计和查询系列

(1)通过一个开源系统界面操作和数据库设计,讲解界面(需求)背后的数据库设计原理;

(2)通过2个基础表,展示数据库查询相关领域的方方面面的知识。

4.ASP.NET WebForm系列(目前进行中)

5.前端系列

(1)html+css2系列(计划通过剖析某个博客园的博客模板设计的方式,系统讲解css2中的重点知识

(2)javascript系列

(3)jquery系列

6.ASP.NET MVC系列

通过Step by Step的方式,通过一个系列视频,讲述一个网站从无到有,从小到大的实现过程,中间穿插介绍ASP.NET MVC各个方面的相关知识。

六 Step by Step的讲述方式

一直以来,学习某项新技术,非常喜欢类似这种一步一步教你开发飞机大战的讲述方式,故此未来的系列视频争取均采取该种方式进行讲解,这样可以帮助初学者详细的了解到一门技术的各方面的相关细节,包括语言语法,解决问题的思维方法,开发环境的搭建,各种库的引入调用方式,调试程序的方法,编译器的使用技巧(各种快捷操作等等)。

七 录制免费视频教程的目的

(1)从公益角度讲,可以帮助很多的相关知识入门者,赠人玫瑰 手留余香。

(2)马斯洛的需求层次中提到的自我实现需要。

(3)从私心来讲,扩大知名度。

(4)沟通的需要,被认可的需要。每完成一篇随笔,点击提交,然后点一支烟,坐等推荐和评论的感觉,妙不可言。

.NET平台技术体系的更多相关文章

  1. .NET平台技术体系梳理+初学者学习路径推荐+我们的愿景与目标

    文章出自:http://www.cnblogs.com/ice-river/p/3475041.html 一 .NET平台技术体系梳理 .NET平台应用领域众多(桌面开发,web开发,移动开发),不断 ...

  2. java EE技术体系——CLF平台API开发注意事项(4)——API生命周期治理简单说明

    文档说明 截止日期:20170905,作者:何红霞,联系方式:QQ1028335395.邮箱:hehongxia626@163.com 综述 有幸加入到javaEE技术体系的研究与开发,也得益于大家的 ...

  3. java EE技术体系——CLF平台API开发注意事项(1)——后端开发

    前言:这是一篇帮助小伙伴在本次项目中快速进入到java EE开发的一些说明,为了让同组小伙伴们开发的时候,有个清晰点的思路.昨天给大家演示分享了基本概况,但没有留下文字总结说明,预防后期有人再次问我, ...

  4. [转] EJB 3和Spring技术体系比较

    最近在学习EJB 3,对于SSH与EJB3,一直不太明白“即生瑜,何生亮?”,今天无意看到一篇旧文,比较系统的对比了这二种技术架构,转载于此: 原文出处:http://www.51cto.com/sp ...

  5. C#入门教程(一)–.Net平台技术介绍、C#语言及开发工具介绍-打造C#学习教程

    一.什么是.Net平台? .Net平台是微软搭建的技术平台,技术人员在此平台上进行应用的搭建与开发.它提供了运行所必须的环境.NET Framework类库以及CLR(公共语言运行时).好比我们人类的 ...

  6. 时序数据库技术体系 – InfluxDB 多维查询之倒排索引

    本文转自: http://hbasefly.com/2018/02/09/timeseries-database-5/ 在时序数据库概述一文中,笔者提到时序数据库的基础技术栈主要包括高吞吐写入实现.数 ...

  7. JVM_总结_02_Java技术体系

    一.前言 此系列随笔是针对<深入理解Java虚拟机:JVM高级特性与最佳实践 第2版>的总结 上一节,我们搭建好了java的开发环境,这一节,我们来看Java的技术体系 二.Java技术体 ...

  8. 简要概括java技术体系

    以前一直在学java程序设计语言,学完了就以为自己已经把java学得差不多了,直到最近在看一本书<深入理解java虚拟机>,才发现自己以前学的只不过是冰山一角.相信很多小伙伴跟我一样,在没 ...

  9. 解密国内BAT等大厂前端技术体系-阿里篇(长文建议收藏)

    进入2019年,大前端技术生态似乎进入到了一个相对稳定的环境,React在2013年发布至今已经6年时间了,Vue 1.0在2015年发布,至今也有4年时间了. 整个业界在前端框架不断迭代中,也寻找到 ...

随机推荐

  1. hdu 最大三角形(凸包+旋转卡壳)

    老师在计算几何这门课上给Eddy布置了一道题目,题目是这样的:给定二维的平面上n个不同的点,要求在这些点里寻找三个点,使他们构成的三角形拥有的面积最大.Eddy对这道题目百思不得其解,想不通用什么方法 ...

  2. Stopwatch计时器、秒表 C#

    .NET2.0也提供了这样一个秒表:Stopwatch类,它可以比较精确地测量时间. 速度测试: 软件的性能和可测性是一个复杂的主题.要确保应用程序能够满足用户的期望,就需要在开发周期内考虑它的性能和 ...

  3. Android手游《》斗地主完整的源代码(支持单机和网络对战)

    Android手游<斗地主>完整的源代码(支持单机和网络对战)下载.一个很不错的源代码. 斗地主掌游是一个独特的国内社会斗地主棋牌游戏,之后玩家可以下载网上斗地主和全世界.掌游斗地主特点: ...

  4. tiny210——uboot移植Makefile文章分析

    这东西已经写,我们没有时间发布,如今,终于有时间稍微长送记录汇总uboot学习过程.具体了.以后忘了也能够再温习回来嘛有些特殊字符显示得乱掉了 Makefile追踪技巧: 技巧1:能够先从编译目标開始 ...

  5. RPC和RMI的区别(Difference Between RPC and RMI)

    RPC和RMI的区别(Difference Between RPC and RMI) RPC vs RMI RPC (Remote Procedure Call) and RMI (Remote Me ...

  6. What is HHVM?

    What is HHVM? HHVM is an open-source virtual machine designed for executing programs written in Hack ...

  7. javascript如何解析json对javascript如何解析json对象并动态赋值到select列表象并动态赋值到select列表

    原文 javascript如何解析json对象并动态赋值到select列表 JSON(JavaScriptObject Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScri ...

  8. Thrift官方安装手冊(译)

    本篇是Thrift官网安装文档的翻译,原地址点击这里.Thrift之前是不支持Windows的.可是似乎0.9版本号以后已经支持Window了.介绍了Thrift安装的环境要求以及在centos,De ...

  9. java中HashSet详解

    HashSet 的实现 对于 HashSet 而言,它是基于 HashMap 实现的,HashSet 底层采用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,查看 HashSe ...

  10. Hibernate 之强大的HQL查询

    Hibernate  配备了一种非常强大的查询语言,这种语言看上去很像  SQL.但是不要被语法结构上的相似所迷惑,HQL  是非常有意识的被设计为完全面向对象的查询,它可以理解如继承.多态和关联之类 ...