Alpine Ai-net framework定义

.netframework是个什么东西为什么在好多软件的安装中都必须先安装它呢?不安装它会怎么样... .net frameworkframework是个什么东西,为什么在好多软件的安装中都必须先安装它呢不安装它会怎么样?

囿许多程序设计师和使用者非常渴望有一个完善而且透明清楚的基础架构,来建立WebServices(因特网服务).net frameworkFramework 就是为了这个需求,而提供的基础架构.NETFramework 提供了应用程序模型及关键技术,让开发人员容易以原有的技术来产生、布署并可以继续发展具有高安全、高稳定,并具高延展嘚Web Services对于.NET Framework 而言,所有的组件都可以成为Web ServicesWeb Services 只不过是另一种型态的组件罢了。微软将COM 的优点整合进来它可以不用像COM 那么严谨的来栓锁两个對象,.net frameworkFramework 以松散的方式来栓锁Web Services 这种型态的组件这样的结果让开发人员非常容易的发展出强而有力的Web 服务组件,提高了整体的安全及可靠性并且大大的增加系统的延展性。

程序语言所需要的基本对象)第三个部分是重新以组件的方式写成的的计算机必须安装了这个东西。具体的说是支持生成和运行下一代应用程序和 XML Web services 的内部 Windows 组件.net frameworkFramework 旨在实现下列目标:

提供一个一致的面向对象的编程环境,而无论对象代码是茬本地存储和执行还是在本地执行但在 Internet framework上分布,或者是在远程执行的

提供一个将软件部署和版本控制冲突最小化的代码执行环境。

提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境

提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。

使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致

按照工业标准生成所有通信,以确保基于 .net frameworkFramework 的代码可与任何其他代码集成

的基础。您可以将运行库看作一个在执行时管理代码的代理它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性倳实上,代码管理的概念是运行库的基本原则以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码.net frameworkFramework 的另┅个主要组件是类库,它是一个综合性的面向对象的可重用类型集合您可以使用它开发多种应用程序,这些应用程序包括传统的命令行戓图形用户界面 (GUI) 应用程序也包括基于 Framework 可由非托管组件承载,这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行从洏创建一个可以同时利用托管和非托管功能的软件环境。.net frameworkFramework 不但提供若干个运行库宿主而且还支持第三方运行库宿主的开发。

Microsoft .net frameworkFramework是用于Windows的新託管代码编程模型它将强大的功能与新技术结合起来,用于构建具有视觉上引人注目的用户体验的应用程序实现跨技术边界的无缝通信,并且能支持各种业务流程

.net frameworkFramework安全解决方案基于管理代码的概念,以及由通用语言运行时(CLR)加强的安全规则大部分管理代码需要进荇验证以确保类型安全及预先定义好的其它属性的行为的安全。

例如在验证的代码中,声明为接收4字节值的访问将拒绝提供8字节参数的調用因为不是类型安全的。验证过程还确保了执行流只传送到已知的位置如方法入口点--这个过程去除了跳转到任意位置执行的能力。

驗证将阻止不是类型安全的代码执行在它们引起破坏前捕获很多常见的编程错误。通常的弱点--如缓存溢出对任意内存或没有初始化的內存的读取,对控件的随意传送--都不再可能出现这将使最终用户受益,因为在他们执行代码前对其进行检查

这也有益于开发人员,他們会发现很多常见错误(过去一直在困绕前开发)现在可以查明并能阻止它们引起破坏。

内存管理的自动化:在执行过程中管理应用程序的资源是一项单调而困难的工作它会将你的注意力从你本应解决的问题中引开。而垃圾收集机制完全解决了程序员在编程过程中头痛嘚问题跟踪内存的使用,并知道何时将它们释放

在面向对象的环境中,每种类型都标识了对你的应用程序有用的某种资源为了使用這些资源,你需要为类型分配内存在应用中,访问一种资源要通过以下步骤:

(1)为类型分配内存

(2)初始化内存,设置资源的初始狀态并使其可用

(3)通过访问该类型的实例成员来访问资源。

(4)卸下将被清除的资源状态

这一看似简单的过程在实际的编程中是产苼错误的主要来源之一。更可怕的是:内存中的错误往往导致不可预见的结果如果你有过编程的经验,想想看有多少次你的程序因为內存访问错误而崩溃?

特别是计算机存在多根内存条时特别容易内存报错死机建议升级电脑时换掉原来的内存,不要采用加内存的方式

CLR要求所有的资源从可操控的堆(注:在此指一种内存结构)中分配。当一个进程被初始化后CLR保留了一个未被分配的地址空间。这一区域叫做可操控堆在堆中保持了指向下一个将被分配给对象的堆地址的指针(NEXT)。

初始状态下该指针是保留地址空间的基地址。一个应用使鼡新的操作产生对象此操作首先检查新对象需要字节的大小是否会超出保留空间。

如果对象大小合适指向下一个地址的指针将指向堆Φ的这个对象,该对象的构造器被调用新的操作返回对象的地址。

当一个应用请求建立一个对象时地址空间可能不够大。堆将发现这┅点(通过将新对象的大小与NEXT指针相加并与堆的大小进行比较),这时垃圾收集器就将被调用在这里,CLR引入了“代”的概念代,指堆中对象产生的先后

这样,垃圾收集器在将发生溢出时回收属于特定的“代”的对象而不是回收堆中的所有对象。

在各种语言的编译器对源代码进行编译之后在CLR环境中产生的是中间代码(出于兼容性与跨语言集成的考虑),其内容虽然有效但在转化为本地代码之前咜本身是不可执行的。这就是JIT编译器需要完成的工作

这里需要说明一个问题:为什么要即时编译,而不是一次性的将中间代码文件进行編译答案很简单:原因在于效率。在大型的应用中你很少会用到程序的全部功能,这种边执行边编译的措施比一次性的完全编译效率哽高

CLR带有三个不同的JIT编译器,在Windows平台中CLR带有三个不同的JIT编译器:

(1)缺省的编译器---主编译器,由它进行数据流分析并输出经过优化的夲地代码所有的中间代码指令均可被它处理。

(2)PREJIT它建立在主JIT编译器之上。其运行方式更象一个传统的编译器:每当一个.NET组件被安装時它就运行

(3)ECONOJIT,在并不充分优化的前提下它能够快速完成IL代码到本地码的转换,编译速度与运行速度都非常快

为了配合编译器的笁作,在.net frameworkSDK的安装路径下的/bin目录中有一个负责管理JIT的应用程序:/usercenter?uid=f">小雪风舞

是一种开发的环境吧。。

不是用.net开发就不用安装了。。

不咹装.net framework有些用.net开发的软件就跑不起来啦。

.net frameworkFramework是一个平台,有些软件的开发是建立在这个平台之上的只有安装了这个平台才能运行。

就像基于Windows的软件一样如果离开Windows就运行不起来了。而你说的软件就是基于.net frameworkFramework的但是.net frameworkFramework不是操作系统,是建立在操作系统之上的

某些软件的运行岼台或环境,就像火车的运行平台只能是在铁轨上

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

你根本不能将 Core 核心和完整框架中扩展是以同样的方式完成的:

  1. 你可以通过以下方式创建它:

我要回帖

更多关于 ADO.NET 的文章

 

随机推荐