标签:win 区别 面向对象思想 事件 重载 .net core 技术分享 java net
一. 回顾历史
回顾个人发展历程,自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
2 编程工具
3 BCL(基类库)
三. 基础进阶系列及章节详细介绍
最近一直在考虑初学者学习.Net应该从哪学起,上面说的天花乱坠,有什么用呢? 如果连.Net最基础的知识都掌握不了,还谈什么开发呢?
这里结合我自己的理解,整理出一条较为合适的路线,并对之前的博客重新排版重新改写,形成这个【DotNet进阶篇】系列,一方面方便自己日后复习,另一方面也为.Net社区尽一点绵薄之力。
第一节:从面向对象思想(oo)开发、接口、抽象类以及二者比较
第二节:重写(new)、覆写(overwrite)、和重载(overload)
第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字
第五节:泛型(泛型类、接口、方法、委托、泛型约束、泛型缓存、逆变和协变)
第七节:语法总结(1)(自动属性、out参数、对象初始化器、var和dynamic等)
第九节:委托和事件(1)(委托的发展历史、插件式编程、多播委托)
第十节:委托和事件(2)(泛型委托、Func和Action、事件及与委托的比较)
第十一节:特性(常见的特性标签、自定义特性、特性的使用案例)
第十五节:Expression表达式目录树(与委托的区别、自行拼接、总结几类实例间的拷贝)
第十七节:易混淆的概念(拆箱和装箱、值传递和引用传递、深拷贝和浅拷贝)(未完成)
第二十二节:XXXXXXXXXXXXXXXXXXXXXXXX
第二十三节:XXXXXXXXXXXXXXXXXXXXXXXX
标签:win 区别 面向对象思想 事件 重载 .net core 技术分享 java net
原文地址:https://www.cnblogs.com/yaopengfei/p/8853590.html