https://www.cnblogs.com/yy1234/p/9258805.html


.NET Framework是Microsoft为开发应用程序而创建的一个具有革命意义的平台。

  • 跨平台的
  • 没有限制应用程序的类型:可以使用.NET Framework创建桌面应用程序、Windows Store应用程序、云/Web应用程序、Web API和其它各种类型的应用程序。
  • 可用于各种语言:C# C++ Visual Basic Jscript等

.NET Framework的内容

编译应用程序时,所创建的CIL代码存储在一个程序集中。

程序集 = 可执行的应用程序文件 + 其它应用程序使用的库

(扩展名.exe 可直接在windows上运行) (扩展名.dll)

除了CIL外,程序集还包含元信息,和可选的资源(CIL使用的其它数据,如声音文件图片等)

元信息:程序集中包含的数据的信息,也称为元数据

全局程序集缓存 Global Assembly Cache  ,GAC

通用中间语言 Common Intermediate Language , CIL

Just-In-Time JIT

CTS 公共类型系统

CLR 公共语言运行库

在将代码编译为CIL后,再用JIT编译器将它编译为本机代码,然后还需要管理正在执行的代码(runtime)

在C#中,只能编写在托管环境下运行的代码。我们使用CLR的托管功能,让.NET处理与操作系统的任何交互。

CLR管理着应用程序,其方式是管理内存、处理安全性以及允许进行跨语言调试等。

代码托管最重要的一个功能是垃圾回收

.NET垃圾回收会定期检查计算机内存,从中删除不在需要的内容。执行垃圾回收的时间并不固定。

创建.NET应用程序的步骤:

  1. 使用某种.NET兼容语言编写那些应用程序
  2. 把代码编译为CIL,存储在程序集中
  3. 在执行代码时(如果是一个可执行文件,就自动运行,或是在其它代码使用它时运行),首先必须使用JIT编译器将代码编译为本机代码。
  4. 在托管的CLR环境下运行本机代码,以及其它应用程序或进程

什么是.NET?什么是.NET Framework?相关推荐

  1. Tengine Framework基础

    Tengine Framework基础 最受开发者喜爱的边缘AI计算框架 Tengine是OPEN AI LAB推出的自主知识产权的边缘AI计算框架,致力于解决AIoT产业链碎片化问题,加速AI产业化 ...

  2. EF-Entity Framework 相关技术点收集贴

    不定期.偶尔.添加更新 在网络上看到或者自己开发过程中碰到的EF-Entity Framework相关技术点 本文地址:http://www.cnblogs.com/vnii/archive/2012 ...

  3. Qt Installer Framework实战

    Qt Installer Framework是Qt发布的安装程序支持框架,只需要简单的配置就可以生成安装文件,同时可以通过javascript脚本来定制安装过程. 目录结构 config packag ...

  4. 在虚拟机中 windows 2003 装.net framework 3.5 出现问题.

    错误信息: [11/27/09,08:52:50] Microsoft .NET Framework 2.0a: [2] Error: Installation failed for componen ...

  5. .Net Framework 3.0 概述

    Microsoft .NET Framework 3.0, the managed programming model for Microsoft® Windows®, includes the .N ...

  6. MIS开发中.net Framework的打印功能

    Microsoft .net Framework的打印功能都以组件的方式提供,为程序员提供了很大的方便,但是这几个组件的使用还是很复杂的,有必要解释一下. 打印操作通常包括以下四个功能 1 打印设置 ...

  7. python导入matplotlib出错_解决导入matplotlib的RuntimeError: Python is not installed as a framework....

    import matplotlib.pyplot as plt 报错: RuntimeError: Python is not installed as a framework. The Mac OS ...

  8. ios Standard Framework和Umbrella Framework

    Standard Framework:标准库,通过引用对应的header文件而不是引用master header 文件来引用类(也可以通过引用Master Header file来引用需要使用的类), ...

  9. ios .framework动态库重签名

    真机上运行.framework时,如果报 dyld'dyld_fatal_error:dyld: Library not loaded: @rpath/XX.framework/XXReference ...

  10. ios .a和.framework

    创建Aggregate来合并模拟器和真机通用的framework 然后在Build Phases下New Run Script Phase创建合并脚本: # Constants SF_TARGET_N ...

最新文章

  1. Maven - Dynamic Web Module 3.0 requires Java 1.6 or newer.
  2. python常见错误-python初学者常见的错误
  3. php页头滚动文字公告,jQuery公告栏文字滚动插件
  4. mysql中的函数有哪些?(1.数字函数)
  5. phpstorm IDE编辑器使用手记
  6. springboot+Mybatis-plue自动生成代码
  7. python 无法读取文件 找不到文件
  8. root 帐户无法登陆解决办法
  9. 计算机技术应用于测量,在测量绘图中计算机技术应用探析.doc
  10. Oracle 11g 从入门到精通 视频教程——适合新手入门学习
  11. 如何快速成为数据分析师?
  12. python学习笔记(6)
  13. UiPath PDF拆分与合并
  14. HTML中的空格、Tab、书名号大于号以及常用特殊符号
  15. python兔子和獾_Pygame-依葫芦画瓢之兔獾大战
  16. 【每日一题】把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5]
  17. 运行Springboot项目时报错WhiteLabel Error Page
  18. http协议的状态码(statue) / readyState状态码
  19. Java程序员高效学习的六个中肯建议
  20. 浅谈基于UDS的ECU刷写方案(Bootloader刷新)

热门文章

  1. ctp linux 查询死循环,CTP行情接入常见的问题记录
  2. 校园跑腿系统前景怎么样?
  3. Nginx-一个IP配置多个站点
  4. 误删回收站文件怎么恢复?小技巧来啦!
  5. GetLastError 返回码含义
  6. java 断网处理_博客大巴劫后重生:断网10日后恢复访问(图)
  7. FD2606S是高压高速半桥栅极驱动器IC
  8. 超导体计算机采用纳米技术研制的计算机,在高温超导体加持下,量子效应的量子计算机,或将迎来重大突破!...
  9. 涂鸦智能股权曝光:王学集持股19.9% 公司市值蒸发超百亿美元
  10. python数字组合_将数字组合在一起形成多个数字的编号