.net常识

.net framework是微软为开发应用程序而创建的一个富有革命性的新平台;
 
.net可以用来开发windows应用程序,web应用程序,web服务和其它各种类型的程序。
 
.net可以用于多种语言,流行的开发语言为C#.
 
.net framework应用程序使用面向对象的编程(OPP)的方法编写,通常包含托管代码。托管代码的内存管理由.net运行库处理,其中包括垃圾回收。
 
.net framework包含了一个非常大的库,其中分类页很多,比如桌面程序库,网页库(非官方,便于理解)
 
     通用类型系统(common type system/'CTS'):一些常用的基本类型,like:int,string....,也就是基本数据类型和函数
 
     公共语言运行库(common language runtime /'CLR'):它负责.net库开发的所有应用程序的执行
 

 
.net应用程序运行过程
 
1. CIL编译-程序集
 
在编译使用.net库的时候,先把代码编译为通用中间语言(common intermediate language CIL)代码,并存储在程序集中,这个工作由.net来做(VC);
 
链接:c#代码不一定在一个文件中,可以把带代码放到多个源代码文件中,MVC思想
 
2. JIT编译
 
CIL代码生成后,just-in-time(JIT)会把CIL代码编译为专用于OS和目标机器结构的本机代码,
 
程序集:
在编译应用程序的时候,所创建的CIL代码存储在一个程序集中,程序集包含可执行的应用程序文件(.exe文件);程序集包括元信息(元数据,数据的信息),可选的资源(声音文件和图片等)。
 
3. 托管代码:
 
代码通过CIL,JIT编译后,编译任务还没有结束,还需要管理正在运行的.NET代码,管理内存,处理安全性等。
 
垃圾回收:
托管代码最重要的一个功能就是垃圾回收。这种.net方法可以确保当程序没有在使用某些内存时,就会完全释放这些内存。
 

 
.net应用程序运行图解
 
1. 使用某种.net兼容语言(如c#)编写应用程序,如图1-1;
 
2. 把代码编译为CIL,并存储在程序集中,如图1-2;
 
3. 在执行代码时(自动运行或者其他代码引用它的时候),首先必须使用JIT编译器将代码编译为兼容本机的代码,如图1-3
4. 在托管的CLR环境下运行本机代码,以及其他应用程序或进程,如图1-4
 
 

.Net Framework基础知识的更多相关文章

  1. .NET Framework基础知识总结

    之前给大家总结了java的面试几次技巧总结,同学们看了觉得还是不错,能够得到大家的认可,感觉还是挺不错的.现在又有同学来想小编索要.NET面试的总结了,好吧.谁让小编这么好呢!以下是.NET面试之框架 ...

  2. .NET Framework基础知识(五)(转载)

    .程序集:是 .NET Framework 应用程序的构造块:程序集构成了部署.版本控制.重复使用.激活范围控制和 安全权限的基本单元. .程序集的优点:版本控制问题.最终解决DLL冲突 .程序集分为 ...

  3. .NET Framework基础知识(四)(转载)

    .反射:是编程的读取与类型相关联的元数据的行为.通过读取元数据,可以了解它是什么类型以及类型的成员. 比如类中的属性,方法,事件等.所属命名空间System.Reflection. 例:using S ...

  4. .NET Framework基础知识(三)(转载)

    .正则表达式:用一串字符验证是否符合一种规范,这个规范就是正则表达式. .正则表达式中常用的元字符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配空白符 \d 匹配数 ...

  5. .NET Framework基础知识(二)(转载)

    1.课外:为什么object数组可以赋值给object类型,int数组却不能赋值给int类型? 答:因为不管是什么什么数组都继承自Array,而Array又继承自object. 2.线程:是操作系统分 ...

  6. Entity Framework 基础知识走马观花

    本文目录: 一.EF中的edmx文件探秘 二.EF中的代理模式探秘 三.EF中的延迟加载与即时加载 一.EF中的edmx文件 1.1 emdx文件本质:一个XML文件 (1)通过选择以XML方式打开e ...

  7. .NET Framework 基础知识总结

    C#: 1. public:同一个程序集的任何代码或引用该程序集的其他程序集都可以访问该类型或成员 internal:同一个程序集的任何代码都可以访问该类型或成员 private :只有在结构或类中的 ...

  8. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  9. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

随机推荐

  1. MySQL之终端(Terminal)管理MySQL

    原文:MySQL之终端(Terminal)管理MySQL 前言:MySQL有很多的可视化管理工具,比如“mysql-workbench”和“sequel-pro-”. 现在我写MySQL的终端命令操作 ...

  2. Behavioral模式之Observer模式

    1.意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,全部依赖于它的对象都得到通知并被自己主动更新. 2.别名 依赖(dependents).公布-订阅(Publish-Subscr ...

  3. 活锁(livelock)

    活锁(livelock) 活锁指的是任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试,失败,尝试,失败. 活锁和死锁的区别在于,处于活锁的实体是在不断的改变状态,所谓的“活”, 而处于 ...

  4. oracle 11g 基于磁盘的备份rman duplicate

    基于磁盘的备份rman duplicate 命令创建standby database 前提条件: 确保原始库数据库的备份.存档standby 结束是完全可见, 这里,如果原始文库和靶 - 侧数据文件, ...

  5. 以太网PHY 芯片之 MII/MDIO接口详解

    本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的设计方法. ...

  6. 编写WCF服务时右击配置文件无“Edit WCF Configuration”(编辑 WCF 配置)远程的解决办法

    原文:编写WCF服务时右击配置文件无“Edit WCF Configuration”远程的解决办法 今天在看<WCF揭秘>书中看到作者提出可以在一个WCF Host应用程序的App.Con ...

  7. ABP应用层——权限验证

    ABP应用层——权限验证 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerpla ...

  8. Mybatis基金会: 经常问的问题FAQ

    Mybatis基金会: #{...} 和 ${...} 差额 MyBatis将 #{-} 解释为JDBC prepared statement 参数标记.而将 ${-} 解释为一个字符串替换.非常实用 ...

  9. Eclipse扩展安装插件方式

    Eclipse安装插件经常使用的是直接安装的方式,就是将插件中包含的plugins和features文件夹中的内容直接复制到了Eclipse的plugins和features文件夹内,这样很容易导致插 ...

  10. EJBCA于Linux安装在

    于windows为了测试安装,装在linuxserver因为CN使用ip需要重新加载.....再折腾.这里有一些地方需要注意 一.所需文件 内容准备不说,请参阅我在以前的文章<EJBCA于win ...