理解C#系列 / .NET体系结构
.NET体系结构
索引
- 前提条件
- 编程
- 编程语言
- 编程语言之一:C#
- C#依赖.NET平台
- .NET平台下的公共语言运行库
- .NET平台下的基础类库
- C#可以开发什么?
前提条件
- [最低配置]知道什么是计算机,什么是硬件,什么是软件。
- [最低配置]知道什么是应用程序,会使用应用程序,例如QQ。
- [最低配置]达到小学毕业知识水平。
- [推荐配置]知道什么是网络,会使用网络服务,例如百度。
- [推荐配置]学会技能:“百度一下,你就知道”。
编程
- 编程就是教计算机做事儿。[附言:人工智能就是教计算机做人。]
- 编程的例子:{QQ:教计算机把人的语言文字通过网络传给其他人的计算机并让其他人看见;百度:教计算机从网络中收集信息并把信息整理一下告诉那些想知道的人;}
- 如何编程?使用编程语言,编写代码,这些代码就像是命令一样指挥计算机做事。
编程语言
- 编程语言是指挥计算机做事的命令集合。[附言:编程语言即开发程序的语言简称开发语言。]
- 目前常见的编程语言有:C,C++,C#,Java,JavaScript,Python,汇编语言。
- 为什么会有这么多种编程语言?你想想虽然同样是开车从A到B,但是开越野,开跑车,开奔驰,开宝马,开自行车的方法难道一样吗。都是教计算机做事,怎么个教法,那叫一个千姿百态。
- 高级编程语言能够用简短的命令做更复杂的事。好比你给汽车下一个开启车灯闪烁的命令,而不用亲自控制车灯第一秒打开,第二秒关闭,第三秒再打开。。。。。。
编程语言之一:C#
- C#语言是微软创造的高级编程语言。
- C#语言适合开发基于Windows操作系统的程序。
- C#语言基于面向对象思想。
C#依赖.NET平台(.NET Framework)
- C#语言通过控制.NET平台来间接的控制计算机做事。
- C#是专门为与.NET平台一起使用而设计的,C#必须和.NET平台一起使用。
- C#的功能取决于.NET平台的功能。
- .NET提供一种环境,在这个环境中,可以开发在Windows上运行的几乎所有应用程序。
- 不要被.NET名字迷惑,认为这是一个只关注Internet的架构,这个名称中的.NET仅表示微软相信连接网络的应用程序是未来的趋势。
.NET平台下的公共语言运行库
- .NET平台的核心是公共语言运行库(CLR),它管理着代码的执行。
- .NET平台在公共语言代码的指导下运行,公共语言也叫中间语言(IL)。
- C#语言代码对于.NET平台而言,是源代码,也叫托管代码(managed code),但是C#语言不是公共语言,所以.NET平台不认识C#语言写的代码。
- C#语言代码需要通过C#编译器编译转换成公共语言代码。
- .NET的公共语言运行库把公共语言代码编译成操作系统能看得懂的代码。
- 这事儿就好像是皇帝下了道圣旨,先传给大臣,大臣看懂了圣旨,交代手下官员去办事,官员接到命令,再去派遣小兵实施。
- C#代码转换为中间语言代码,中间语言代码转换为操作系统代码,这种模式相比于从源代码直接转换成操作系统代码的优点在于:平台无关性,提高性能。
- 平台无关性:C#无需考虑操作系统的多样性和复杂性,并且由公共语言运行库负责内存管理,使得开发者专注于业务开发。
- 提高性能:公共语言运行库在把中间语言代码编译成操作系统代码的时候,会针对不同处理器进行相对应的代码优化,提高操作系统执行时的性能。
.NET平台下的基础类库
- .NET基础类库简称.NET基类,它为编程提供了基础的类型对象及其功能,例如Windows窗体及窗体的属性,建立窗体的方法等。
- 开发人员可以使用.NET基类实现Windows操作系统的绝大多数功能。
- 开发人员可以使用名称空间来对类进行分类,这里先不多介绍类这个面向对象的概念了,这不是一两句话就能说清的。
C#可以开发什么?
- C#可以基于WinForm和WPF开发Windows应用程序。
- C#可以基于ASP.NET开发WEB网站(浏览器B/服务器S)。
- C#可以基于WCF开发WEB服务(客户端C/服务器S)。
- C#可以开发Windows服务(在后台持续运行的程序)。
- C#可以开发Windows控件(能被其他应用程序调用的控件,例如支付宝安全控件密码框)。
理解C#系列 / .NET体系结构的更多相关文章
- 深入理解javascript系列(4):立即调用的函数表达式
本文来自汤姆大叔 前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行. 在详细了解这个之前,我们来谈了解一下“自执行”这个叫法,本文对这个功能的叫法 ...
- 深入理解javascript系列,读书笔记
深入理解JavaScript系列(2):揭秘命名函数表达式 1.讲了函数声明和函数表达式的区别,包括一些在函数提升上的区别 2.如果给函数表达式的函数也取名,会在调试的时候受益 3.不要在block( ...
- 深入理解JavaScript系列
转自http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 深入理解JavaScript系列(1):编写高质量JavaScript代码 ...
- 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 2011-12-28 23:00 by 汤姆大叔, 139489 阅读, 119 评论, 收藏, 编辑 才华横溢的 ...
- [JS]深入理解JavaScript系列(4):立即调用的函数表达式
转自:汤姆大叔的博客 前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行.在详细了解这个之前,我们来谈了解一下"自执行"这个叫法 ...
- 深入理解JavaScript系列(转自汤姆大叔)
深入理解JavaScript系列文章,包括了原创,翻译,转载,整理等各类型文章,如果对你有用,请推荐支持一把,给大叔写作的动力. 深入理解JavaScript系列(1):编写高质量JavaScript ...
- [转]深入理解JavaScript系列
文章转自:汤姆大叔-深入理解JavaScript系列文章 深入理解JavaScript系列文章,包括了原创,翻译,转载,整理等各类型文章,如果对你有用,请推荐支持一把,给大叔写作的动力. 深入理解Ja ...
- Linux基础系列—Linux体系结构和Linux内核结构
/** ****************************************************************************** * @author 暴走的小 ...
- 转帖:深入理解JavaScript系列
感觉汤姆大叔这个系列写的很是不错,很适合有js基础但是想深入又无从下手的朋友. 深入理解JavaScript系列
随机推荐
- C# OpenFileDialog和PictrueBox
string resultFile = ""; OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFile ...
- valgrind 内存检测与调用图生成
http://blog.csdn.net/destina/article/details/6198443 感谢作者的分享! 一 valgrind是什么? Valgrind是一套Linux下,开放源 ...
- 通过Javascript模拟登陆Windows认证的网站
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>模拟登陆</title ...
- 四元数(Quaternion)和旋转
四元数介绍 旋转,应该是三种坐标变换——缩放.旋转和平移,中最复杂的一种了.大家应该都听过,有一种旋转的表示方法叫四元数.按照我们的习惯,我们更加熟悉的是另外两种旋转的表示方法——矩阵旋转和欧拉旋转. ...
- 随机 I/O & 顺序 I/O
在谈这俩概念前.先来说说 大I/O vs. 小I/O 通常.我们把 <=16KB 的I/O认为是小I/O.而 >=32KB 的I/O认为是大I/O 了解I/O的大小.影响到 ...
- MySQL ALTER语法的运用方法 && 操作索引和字段
语法:alter_specification: ADD [COLUMN] create_definition [FIRST | AFTER column_name ] or ADD INDEX [in ...
- 常见hash算法的原理
散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法.顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙. 散列表(Hash table,也叫 ...
- LeetCode49 Group Anagrams
Given an array of strings, group anagrams together. For example, given: ["eat", "tea& ...
- iOS10 资料汇总:值得回看的 10 篇 iOS 热文
本文精选了 iOS大全 9月份的10篇热门文章.其中有软件推荐.技术分享及iOS10.Xcode8新特性等. 注:以下文章,点击标题即可阅读 <兼容iOS 10 资料整理笔记> 本文整理i ...
- web开发人员须知的web缓存知识–将数据缓存到浏览器端Net实现
现实中,服务器在向浏览器发送的数据中,一部分数据是不经常更新的,如果能将这部分数据缓存到浏览器端,将会大大降低传输的数据,提高应用的性能.通过Expires策略,可以使用HTTP 协议定义的缓存机制将 ...