问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#与.NET Framework的关系是什么?

发布网友 发布时间:2022-06-01 23:38

我来回答

3个回答

热心网友 时间:2023-10-21 04:39

.NET 框架是一种新的计算平台,它简化了在高度分布式 Internet 环境中的应用程序开发。.NET 框架旨在实现下列目标:

提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在 Internet 上分布,或者是在远程执行的。
提供一个将软件部署和版本控制冲突最小化的代码执行环境。
提供一个保证代码(包括由未知的或不完全受信任的第三方创建的代码)安全执行的代码执行环境。
提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。
使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致。
按照工业标准生成所有通讯,以确保基于 .NET 框架的代码可与任何其他代码集成。
.NET 框架具有两个主要组件:公共语言运行库和 .NET 框架类库。公共语言运行库是 .NET 框架的基础。您可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET 框架的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发包含从传统的命令行或图形用户界面 (GUI) 应用程序到基于 ASP.NET 所提供的最新创新的应用程序(如 Web 窗体和 XML Web services)在内的应用程序。

.NET 框架可由非托管组件承载,这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。.NET 框架不但提供若干个运行库宿主,而且还支持第三方运行库宿主的开发。

例如,ASP.NET 承载运行库以为托管代码提供可伸缩的服务器端环境。ASP.NET 直接使用运行库以启用 Web 窗体应用程序和 XML Web services(本主题稍后将对这两者进行讨论)。

Internet Explorer 是承载运行库(以 MIME 类型扩展的形式)的非托管应用程序的一个示例。使用 Internet Explorer 承载运行库使您能够在 HTML 文档中嵌入托管组件或 Windows 窗体控件。以这种方式承载运行库使得托管移动代码(类似于 Microsoft® ActiveX® 控件)成为可能,但是它具有只有托管代码才能提供的重大改进(如不完全受信任的执行和安全的独立文件存储)。

下面的插图显示公共语言运行库和类库与应用程序之间以及与整个系统之间的关系。该插图还显示托管代码如何在更大的结构内运行。

.NET 框架环境

下面的章节将更加详细地描述 .NET 框架的主要组件和功能。

公共语言运行库的功能
公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的。

至于安全性,取决于包括托管组件的来源(如 Internet、企业网络或本地计算机)在内的一些因素,托管组件被赋予不同程度的信任。这意味着即使用在同一活动应用程序中,托管组件既可能能够执行文件访问操作、注册表访问操作或其他须小心使用的功能,也可能不能够执行这些功能。

运行库强制实施代码访问安全。例如,用户可以相信嵌入在 Web 页中的可执行文件能够在屏幕上播放动画或唱歌,但不能访问他们的个人数据、文件系统或网络。这样,运行库的安全性功能就使通过 Internet 部署的合法软件能够具有特别丰富的功能。

运行库还通过实现称为通用类型系统 (CTS) 的严格的类型验证和代码验证基础结构来加强代码可靠性。CTS 确保所有托管代码都是可以自我描述的。各种 Microsoft 和第三方语言编译器生成符合 CTS 的托管代码。这意味着托管代码可在严格实施类型保真和类型安全的同时使用其他托管类型和实例。

此外,运行库的托管环境还消除了许多常见的软件问题。例如,运行库自动处理对象布局并管理对对象的引用,在不再使用它们时将它们释放。这种自动内存管理解决了两个最常见的应用程序错误:内存泄漏和无效内存引用。

运行库还提高了开发人员的工作效率。例如,程序员可以用他们选择的开发语言编写应用程序,却仍能充分利用其他开发人员用其他语言编写的运行库、类库和组件。任何选择以运行库为目标的编译器供应商都可以这样做。以 .NET 框架为目标的语言编译器使得用该语言编写的现有代码可以使用 .NET 框架的功能,这大大减轻了现有应用程序的迁移过程的工作负担。

尽管运行库是为未来的软件设计的,但是它也支持现在和以前的软件。托管和非托管代码之间的互操作性使开发人员能够继续使用所需的 COM 组件和 DLL。

运行库旨在增强性能。尽管公共语言运行库提供许多标准运行库服务,但是它从不解释托管代码。一种称为实时 (JIT) 编译的功能使所有托管代码能够以它在其上执行的系统的本机语言运行。同时,内存管理器排除了出现零碎内存的可能性,并增大了内存引用区域以进一步提高性能。

最后,运行库可由高性能的服务器端应用程序(如 Microsoft® SQL Server™ 和 Internet 信息服务 (IIS))承载。此基础结构使您在享受支持运行库宿主的行业最佳企业服务器的优越性能的同时,能够使用托管代码编写业务逻辑。

热心网友 时间:2023-10-21 04:40

.NET Framework是用于Windows的新托管代码编程模型。C#是微软为.NET Framework量身订做的程序语言。

热心网友 时间:2023-10-21 04:40

家庭和家庭成员的关系.Net Framework是一个大家庭里面包括了很多家庭成员比如(C#.Net、C++.Net、VB.Net、F#.Net.....).Net Framework包含了运行上述家庭成员开发出来的应用程序必要的类库及组件等~
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
离婚后多久买房贷款 离婚多久能贷款买房 办离婚多久能贷款买房 离婚后再贷款买房能吗 ...问卦卜个婚期。 请问哪位有好的推荐~万分感谢 华硕K40ABCPU的和显卡正常温度是多少? 惠普k40ab 玩单击游戏卡 机器慢 显卡温度高 我华硕K40AB新机玩过《使命召唤》后,用驱动人生测CPu温度达72度正常吗... 小松鼠壁挂炉故障处理大全 小松鼠壁挂炉过热故障维修原因分析与解决方案 visual studio2005.net编辑GUI计算器一点小问题 用Delphi和用.NET开发GUI程序各有什么优劣 C#.net中GUI 今年九月英语怎么写 今年23岁英语怎么说 按揭房离婚后如何变更贷款人 离婚变更贷款人手续 公积金贷款夫妻离婚后如何变更主借款人 iphone7plus怎么注销ID账号? 哪些人适合吃四季代餐? 李忠民代餐粉适合的人群是那些? 普通三通就是指卡箍三通吗,即有三个卡箍 文玩三通是什么意思 四川东山月文化传播有限公司怎么样? 四川月山国艺文化传播有限公司怎么样? 紫铜管加工特殊三通怎么加工 成都点击文化传媒有限公司怎么样? 成都时间线文化传播有限公司怎么样? 成都薇奇文化传媒有限公司怎么样? DELL笔记本电脑重装系统后本地连接不见了怎么处理? netbeans GUI 事件处理 如何用Netbeans构建GUI程序 编程问题:关于C#.net,Minecraft,服务器,TCP,GUI,bukkit的问题。 netbean gui生成器载入现成gui的问题 董卿跪地采访97岁翻译家,周涛离开电视台是为什么? 二婚嫁富豪被宠成公主的周涛,为啥会退出央视? 53岁前央视主持周涛罕见营业,她现在的状态如何? 看了周涛的工作经历,就知道她为什么从央视离职了 周涛最近几年在做什么,为什么不怎么出现在荧屏之中? 周涛为什么不主持央视春晚 平江县余坪镇宋_村至浯口镇的公路会修吗? 岳阳平江县余坪镇离平江县城有多远 平江县,余坪镇有多少人口 湖南平江县余坪乡范顾村邮编是多少 湖南省平江县余坪镇从西安坐火车怎么走 江西省大余县南安镇距湖南省岳阳市平江县余坪镇有多远的路程 平江到余坪镇怎么走 我国嫦娥二号探测器成功着陆在运行什么 湖南省越古今道文化有限公司怎么样? 请问湖南岳阳平江县余坪镇民政所电话是请告诉我