一. 回顾历史

  回顾个人发展历程,自2012年初次接触开发至今(2018年)已经有六个年头,这期间陆陆续续学习并掌握了不少技术,C#语言、ORM框架、多线程技术、设计模式、前端技术、MVC、MVVM框架思想等等,每种技术随着多次使用,随着不断的反思,逐渐经历 “了解→理解→掌握→精通 ”这么一个过程,从最初的只能实现功能到如今的“每一步都考虑性能优化问题”,在近两年内,开始写博客,最初只是一时兴起,想让百度上能搜索出我的文章,但现在已经形成一个习惯,在没有特殊事情耽搁的情况下,坚持一周两篇博客,到目前为止,有效文章数已经达到140多篇,当然后面还会陆续写下去。

  作为理科生出身的我,没有华丽的辞藻 ,没有煽情篇章,话不多说,回顾完个人开发历程,下面看一下C#和.Net的发展历程,再次补充一点,.Net不是一门开发语言,而C#才是基于.Net运行环境下的一种高级开发语言。

  

  从上面的表格可以看出来,C#这么语言至今已经接近20年历史了,从2002年诞生的那一刻起,不断更新,不断改进,功能越来越强大,越来越方便程序们的开发,当然.NET类库、CLR、以及开发神器Visual Studio也在不端更新。(VS 2017 宇宙第一开发神器 这个应该毫无争议吧

  之前曾说过,C#仅仅是.Net下的一门开发语言而已,.Net生态远远不止如此。

  

  我们以前提到.Net,指的都是.Net FrameWork,经常被java程序员嘲笑,.Net不能跨平台,但现在不会来,他们可以闭嘴了,.Net Core就是为跨平台而生,下面简单总结一下.Net生态。

  (1) 语言有:C# 、F#、VB

  (2) C/S程序开发技术有:WinForm、WPF

  (3) B/S程序开发技术有:ASP.Net WebForm 、ASP.Net MVC、Core MVC

  (4) 通讯技术有:WebAPI、WCF、SignalR

  (5) 日志框架有:Log4Net

  (6) 数据库访问技术有:ADO.NET 、EF

  这里不再继续列举了,也没有必要再列举了,因为对于新时代合格的工程师而言,没有人限制你只能掌握一种技术,任何一个大型的信息系统,都是有多种技术组合而来,在现在一个大一统的时代,连.Net的生身父母“微软”都开源了,难道小小的你还能故步自封吗?

二. 扫盲C#运行原理

  C#作为一门高级语言,机器是不认识的,那么它是怎么编译成让机器码让机器识别呢,一张图胜似千言万语,请看下图。

  概念补充:

    CTS:C#、F#、VB都必须遵守的通用类型

    CLS:通用语言规范(CLS是CTS的一个子集)

    BCL:基础类库

  总结:C#是一种面向对象的高级编程语言,符合CLR中的CLS(通用语言规范)

  .Net Framework包含三部分:

    1 CLR(windows), .net core的clr支持(windows、linux、macos)

    2 开发工具包

    3 BCL(基础类库)

三. 基础进阶系列及章节详细介绍

  最近一直在考虑初学者学习.Net应该从哪学起,上面说的天花乱坠,有什么用呢? 如果连.Net最基础的知识都掌握不了,还谈什么开发呢?

  这里结合我自己的理解,整理出一条较为合适的路线,并对之前的博客重新排版重新改写,形成这个【DotNet进阶篇】系列,一方面方便自己日后复习,另一方面也为.Net社区尽一点绵薄之力。

  

   第一节:从面向对象思想(oo)开发、接口、抽象类以及二者比较 

   第二节:重写(new)、覆写(overwrite)、和重载(overload)

   第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字

   第四节:IO、序列化和反序列化、加密解密技术

   第五节:泛型(泛型类、接口、方法、委托、泛型约束、泛型缓存、逆变和协变)

   第六节:反射(几种写法、好处和弊端、利用反射实现IOC)

   第七节:语法总结(1)(自动属性、out参数、对象初始化器、var和dynamic等)

   第八节:语法总结(2)(匿名类、匿名方法、扩展方法)

   第九节:委托和事件(1)(委托的发展历史、插件式编程、多播委托)

   第十节:委托和事件(2)(泛型委托、Func和Action、事件及与委托的比较)

   第十一节:特性(常见的特性标签、自定义特性、特性的使用案例)

   第十二节:Lambda、linq、SQL的相爱相杀(1)

   第十三节:Lambda、linq、SQL的相爱相杀(2)

   第十四节:Lambda、linq、SQL的相爱相杀(3)

   第十五节:Expression表达式目录树(与委托的区别、自行拼接、总结几类实例间的拷贝)

   第十六节:语法总结(3)(C#6.0和C#7.0新语法)

   第十七节:易混淆的概念(静态和非静态、拆箱和装箱、值传递和引用传递、深拷贝和浅拷贝)(持续更新)

   第十八节:跨域请求的处理方案

   第十九节:CLR核心机制(未完成)

   第二十节:正则表达式(未完成)

   第二十一节:ADO.NET的使用(未完成)

   第二十二节:XXXXXXXXXXXXXXXXXXXXXXXX

   第二十三节:XXXXXXXXXXXXXXXXXXXXXXXX

DotNet进阶系列相关推荐

  1. malloc开辟的空间在哪一个区间_C++进阶系列之STL(2)SGI版本空间配置器

    1.STL中的空间配置器在STL中,空间配置器分了2组,分别为一级空间配置器和二级空间配置器,但是它们都有自己各自运用的场合:一般说来,一级空间配置器一般分配的空间大于128B,二级空间配置器的分配空 ...

  2. C#进阶系列——WebApi 身份认证解决方案:Basic基础认证

    阅读目录 一.为什么需要身份认证 二.Basic基础认证的原理解析 1.常见的认证方式 2.Basic基础认证原理 三.Basic基础认证的代码示例 1.登录过程 2./Home/Index主界面 3 ...

  3. C#进阶系列——WebApi 接口参数不再困惑:传参详解

    看这边文章时的疑惑是:WebApi中的参数加了[FromBody],不知所以然,就百度了下,看到了以下文章,和大家分享下: 原文链接:http://www.cnblogs.com/landeanfen ...

  4. C#进阶系列——WebApi 跨域问题解决方案:CORS

    C#进阶系列--WebApi 跨域问题解决方案:CORS 参考文章: (1)C#进阶系列--WebApi 跨域问题解决方案:CORS (2)https://www.cnblogs.com/landea ...

  5. C#进阶系列——DDD领域驱动设计初探(五):AutoMapper使用

    前言:前篇搭建了下WCF的代码,就提到了DTO的概念,对于为什么要有这么一个DTO的对象,上章可能对于这点不太详尽,在此不厌其烦再来提提它的作用: 从安全上面考虑,领域Model都带有领域业务,让Cl ...

  6. JavaScript进阶系列01,函数的声明,函数参数,函数闭包

    本篇主要体验JavaScript函数的声明.函数参数以及函数闭包. □ 函数的声明 ※ 声明全局函数 通常这样声明函数: function doSth() { alert("可以在任何时候调 ...

  7. HTML5 进阶系列:indexedDB 数据库

    前言 在 HTML5 的本地存储中,有一种叫 indexedDB 的数据库,该数据库是一种存储在客户端本地的 NoSQL 数据库,它可以存储大量的数据.从上篇:HTML5 进阶系列:web Stora ...

  8. C#进阶系列——WebApi 接口测试工具:WebApiTestClient

    正文 前言:这两天在整WebApi的服务,由于调用方是Android客户端,Android开发人员也不懂C#语法,API里面的接口也不能直接给他们看,没办法,只有整个详细一点的文档呗.由于接口个数有点 ...

  9. 超全PHP学习资源整理:入门到进阶系列

    PHP是少数几门在语言层面饱受诟病,但在实际开发和应用上却又让人无法撒手的语言之一.就好比路边摊小吃,一遍骂人家不卫生,一遍却又说:真香.所谓接地气,不外如此,大道理不说,PHP光是轮子多.市场占有率 ...

最新文章

  1. linux给普通用户分配root权限
  2. asp.net core 使用 Redis 和 Protobuf 进行 Session 缓存
  3. python离线安装包_Python2.7如何离线安装包
  4. C++(18)--复制构造函数
  5. lol1月8日服务器维护,LOL1月16日更新维护到几点 8.1版本更新内容
  6. OpenMV——串口通信+发送中心位置
  7. JAVA实现二叉树带权路径长度和_哈夫曼树的构建与最小带权路径长度
  8. MySQL中向下查询_mysql
  9. MT7621路由器芯片/处理器参数介绍
  10. 关于大学生睡眠时间及质量的问卷调查
  11. Excel - 透视表 - 组合 分组
  12. GJS和GNOME Extension趟坑指南
  13. leetcode:94. 二叉树的中序遍历
  14. 模拟器:思科 给路由器配置IP地址和子网掩码
  15. java加载so包,undefined symbol处理方法
  16. Golang Fyne项目实战(含源码)
  17. 算法策略 | MACD跨周期短线交易策略开发(股指+商品双版)
  18. 关于存储单元、寻址范围的问题
  19. 淘宝网nbsp;E客服帐号nbsp;登录阿里旺旺时nbsp;…
  20. 国家标准官方下载查看地址

热门文章

  1. LVM--逻辑卷管理
  2. JPA-EntityManager.merge()
  3. GCD与LCM【数论】
  4. 微信小程序navigateBack如何带参数
  5. 第四周读书笔记《构建之法》
  6. 怎样解决MySQL数据库主从复制延迟的问题?
  7. BZOJ4122 : [Baltic2015]File paths
  8. C#递归、动态规划计算斐波那契数列
  9. 《程序员开发心理学》阅读笔记一
  10. IIS 7.0探索用于 Windows Vista 的 Web 服务器和更多内容