参考Learning hard本人在博客园的主页: http://www.cnblogs.com/zhili/     
以及本书中的一些知识点: http://www.cnblogs.com/zhili/category/421637.html

一: .Net Framework

1.1.Net Framework 就是应用程序运行时的执行环境, 为应用程序的执行提供一下几种服务:

  >全面的类库
  >内存管理
  >通用类型系统
  >开发结构和技术
  >语言互操作性  

1.2 .Net Framwork的组成

  1.公共语言运行时

    公共语言运行时是.Net Framwork的核心基础. 我们可以将CLR看成一个在执行时管理代码的代理, 它提供了内存管理, 线程管理和异常处理的服务, 而且还负责对代码实施严格的类型安全检查, 保证了代码的正确性. 我们将受CLR管理的代码称为托管代码(managed code), 将不受CLR管理的代码称为非托管代码(unmanaged code).

    CLR包含两个组成部分: 通用类型系统(Common Type System, CTS)和公共语言规范(Common Language Specification, CLS).

1.3 .Net Framwork 类库就是一组DLL程序集的集合.

1.4 C# 代码的执行过程

  >C#代码编译为中间语言代码的阶段

    在编译C#代码时, C#的编译器(VS中集成了C#编译器)把代码译为通用中间语言(Common Intermediate Language, CIL)代码

  >中间语言代码编译为本季代码的阶段

    要使C#代码能够运行, 还需进一步将CIL代码转换为特定CPU的机器码, 该过程由即时编译器(Just-In-Time, JIT)来完成.

  ●并不是只有C#代码才能够被编译为中间语言代码, 其他面向.Net的语言在执行之前也都需要先编译为中间语言代码. 该过程由编译器来完成.

  ●JIT编译生成本机代码之后, 编译好的代码会被放置到一个缓冲区缓存, 下次再调用相同的代码时, 可直接运行缓存区中现有的本机代码, 从而避免重新验证IL代码以及把它编译成本机代码的过程. 使用这种方法, 系统只在首次调用时才会造成一些性能损失(即发生JIT过程).

C#代码编译为中间语言代码阶段: 

中间语言代码编译为本机代码阶段

PS: 今天本来想写更多内容的, 但是时间已经不早了.  这里还欠缺几张图片, 明天再来补上, 有时间的话会分享一下在工作中学习的东西: 比如远程Debug, sql profiler等.

最新文章

  1. 多线程下的 Lambda表达式 异步 WebClient 读取程序图标,来作为托盘 图标 logo ico
  2. 【周年版】Cnblogs for Android
  3. C#winform使用+=和-=订阅事件和移除事件订阅
  4. Linux启动过程详解 (转)
  5. Orcale语句大全
  6. VIM在文件夹中查找
  7. vs2010 条件断点 has changed是什么意思?
  8. String,StringBuffer以及StringBuilder的差别
  9. Python. Day1. 之初识 变量数据类型
  10. Maven与Eclipse使用中遇到的问题解决之道
  11. 基于Vue全家桶开发的前端组件管理平台
  12. iOS中CocoaPods的安装及错误详解
  13. php字符串转数组
  14. 关于MVC工厂模式的增删改查sql存储过程
  15. linux 学习笔记 cpio命令
  16. react中进入某个详情页URL路劲参数Id获取问题
  17. jquery返回页面顶部
  18. The Little Prince-12/07
  19. JS 对话框 语法
  20. exit和return

热门文章

  1. linux 下查看机器是cpu是几核的(转)
  2. 作业:用HTML制作邮箱登陆界面
  3. PHP- 深入PHP、Redis连接
  4. Sklearn库例子3:分类——岭回归分类(Ridge Regression )例子
  5. 如何将maven项目导入myeclipse中
  6. python3.0_day9_scoket基础之篇
  7. 自定义Mvc5 Owin 验证
  8. JavaScript遍历table的行和列
  9. OpenJudge计算概论-寻找山顶
  10. String的compareTo()方法返回值