官方中文文档链接
官方中文文档 .NET Framework 入门

简单理解下:

.NET Framework 是管理面向 .NET Framework 的应用程序的运行时执行环境。 它包括:

  • 公共语言运行时(提供了内存管理和其他系统服务)
  • .NET Framework 类库(它使程序员能利用应用程序开发的所有主要区域的强大且可靠的代码)

.NET Framework 是一种技术,该技术支持生成和运行下一代应用程序XML Web Services

暂时不是很清楚下一代应用程序和XML Web Services

1. 什么是 .NET Framework?

.NET Framework 是为其运行的应用程序提供各种服务的托管执行环境。 它包括两个主要组件:

  • 作为处理运行的应用程序的执行引擎的公共语言运行时 (CLR)
  • .NET Framework 类库,此类库提供开发人员可从其自己的应用程序中调用的已测试的可重用代码库。

2. .NET Framework 提供的用于运行应用程序的服务包括:

  • 内存管理。 在许多编程语言中,程序员负责分配和释放内存并处理对象生存期。 在 .NET Framework 应用程序中,CLR 代表应用程序提供这些服务

  • 常规类型系统。 在传统编程语言中,基本类型由编译器定义,这将使跨语言互操作性复杂化。 在 .NET Framework 中,基本类型由 .NET Framework 类型系统定义,并且是面向 .NET Framework 的所有语言所共有的

  • 一个全面的类库。 程序员可以从 .NET Framework 类库中使用类型及其成员的易于访问的库,而不必编写大量代码来处理常见的低级编程操作

  • 开发框架和技术。 .NET Framework 包括应用程序开发的特定区域的库,如 Web 应用程序的 ASP.NET,数据访问的 ADO.NET 和面向服务的应用程序的 Windows - Communication Foundation

  • 语言互操作性。 面向 .NET Framework 的语言编译器发出名为公共中间语言 (CIL) 的中间代码,反过来,通过公共语言运行时在运行时进行编译。 使用此功能,以一种语言编写的例程可由另一种语言访问,并且程序员可以将精力集中在使用其首选语言创建应用程序上

  • 版本兼容性。 除少数例外,通过使用 .NET Framework 的特定版本开发的应用程序可以运行,而无需在更高版本中进行修改。

  • 并行执行。 通过允许同一台计算机上存在公共语言运行时的多个版本,.NET Framework 可帮助解决版本冲突。 这意味着应用程序的多个版本也可以共存,并且应用程序可在构建它的 .NET Framework 版本上运行

  • 多定向。 通过定向 .NET Framework 可移植类库,开发人员可创建在多个 .NET Framework 平台(例如,Windows 7、Windows 8、Windows 8.1、Windows 10、Windows Phone 和 Xbox 360)上工作的程序集。???

3. .NET Framework 概述

.NET Framework 旨在实现下列目标:

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

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

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

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

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

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

.NET Framework 包括CLR 公共语言运行时.NET Framework 类库

公共语言运行时是 .NET Framework 的基础。 您可以将运行时看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性

事实上,代码管理的概念是运行时的基本原则。 以运行时为目标的代码称为托管代码,而不以运行时为目标的代码称为非托管代码。

类库是一个综合性的面向对象的可重用类型集合(java jar包?),您可以使用它来开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序,还包括基于 ASP.NET 提供的最新创新的应用程序(如 Web 窗体和 XML Web Services)

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

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

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

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

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

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

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

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

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

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

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

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

4. .NET Framework 类库

.NET Framework 类库是一个与公共语言运行时紧密集成的可重用的类型集合。 该类库是面向对象的,并提供您自己的托管代码可从中导出功能的类型。

这不但使 .NET Framework 类型易于使用,而且还减少了学习 .NET Framework 的新功能所需要的时间。 此外,第三方组件可与 .NET Framework 中的类无缝集成。

例如,.NET Framework 集合类实现一组可用于开发您自己的集合类的接口。 您的集合类将与 .NET Framework 中的类无缝地混合。

正如您对面向对象的类库所希望的那样,.NET Framework 类型使您能够完成一系列常见编程任务(包括诸如字符串管理、数据收集、数据库连接以及文件访问等任务)。 除这些常规任务之外,类库还包括支持多种专用开发方案的类型。 例如,可使用 .NET Framework 开发下列类型的应用程序和服务:

  • 控制台应用程序。 请参阅在 .NET Framework 中构建控制台应用程序

    • ^^
  • Windows GUI 应用程序(Windows 窗体)。 请参阅 Windows 窗体。

  • Windows Presentation Foundation (WPF) 应用程序。 请参阅 Windows Presentation Foundation

  • ASP.NET 应用程序。 请参阅用 ASP.NET 开发 Web 应用程序。

  • Windows 服务。 请参阅 Windows 服务应用程序介绍。
  • 使用 Windows Communication Foundation (WCF) 的面向服务的应用程序。 请参阅用 WCF 开发面向服务的应用程序

  • 使用 Windows Workflow Foundation (WF) 的启用工作流程的应用程序。 请参阅Building Workflows in the .NET Framework

上面具体链接参考
例如,Windows 窗体类是一组综合性的可重用的类型,它们大大简化了 Windows GUI 的开发。 如果要编写 ASP.NET Web 窗体应用程序,可使用 Web 窗体类

.NET Framework 入门相关推荐

  1. ADO.NET Entity Framework 入门示例向导(附Demo程序下载)

    ADO.NET Entity Framework 入门示例向导(附Demo程序下载) ADO.NET Entity Framework 是.Net Framework 3.5 SP1 引入的实体框架, ...

  2. Swoole Framework 入门教程(1)

    Swoole Framework入门教程1 简介 Swoole为广大php 程序员带来了福音, 用一句话说 重新定义PHP, 底层用c扩展实现,配合PHP7 性能不弱于 golang ,并且还可以脱离 ...

  3. ADO.NET Entity Framework 入门示例

    ADO.NET Entity Framework 是.Net Framework 3.5 SP1 引入的实体框架,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据.实体框架Entit ...

  4. Android Framework入门介绍

    Android Framework入门介绍 https://blog.csdn.net/fu_kevin0606/article/details/79532710 framework概述 Androi ...

  5. php zend framework 教程,Zend Framework入门教程之Zend_Session会话操作详解

    本文实例讲述了Zend Framework入门教程之Zend_Session会话操作.分享给大家供大家参考,具体如下: 会话命名空间 实现会话 代码: require_once "Zend/ ...

  6. Zend Framework 入门教程(简体中文版)

    Zend Framework 入门教程(简体中文版) Getting Started With the Zend Framework Author:Rob Allen, www.akrabat.com ...

  7. Zend Framework入门教程

    转战了各个Blog平台,发现还是落户到csdn上吧,以后吐槽在新浪,发长文在csdn,整理链接在Baidu Hi 在大四的时候接下的实验室网站,网站是上三届的吴师兄写的,主要采用的是LAMP,其中PH ...

  8. .NET Entity Framework入门简介及简单操作

    Entity Framework是微软借鉴ORM思想开发自己的一个ORM框架. ORM就是将数据库表与实体对象(相当于三层中的Model类)相互映射的一种思想. 最大的优点就是非常方便的跨数据库平台. ...

  9. php zend框架入门,Zend Framework 入门——快速上手

    1. 安装 从 Zend Framework 的网页上下载最新版本.解压后,把整个目录拷贝到一个理想的地方,比如:/php/library/Zend. 打开 php.ini 文件,确认包含 Zend ...

最新文章

  1. [MySQL]快速解决is marked as crashed and should be repaired故障
  2. 电子计算机信息工程都是做什么的,电子信息工程专业将来干什么 就业前景好不好...
  3. Hadoop入门(二十)Mapreduce的最小值程序
  4. 珠海 第十届亚洲机器人锦标赛_滨和中学“VEX”团队斩获粤港澳机器人大赛多个大奖!...
  5. 记2020年秋季学期的微波期末考试
  6. 对Java语言的byte类型变量进行无符号提升
  7. linux和cisco有关系吗,如何在Linux环境下安装Cisco RTMT
  8. 新广告法涉及的敏感词列表
  9. java生成随机数的三种方法
  10. 语音信号处理频域语谱图matlab实验,语音信号的频域分析
  11. 【文献阅读2020】 像素级自适应学习的超分辨率Pixel-Level Self-Paced Learning For Super-Resolution
  12. 【FFT】快速傅里叶变换详解
  13. java元编程_一文读懂元编程
  14. 电子标签的制作及封装 射频标签通信协议简介 射频标签内存信息的写入方式
  15. SQL语法之 CHECK 约束
  16. Oracle数据库安装,以及使用plsql Dev连接数据库实例
  17. 解决使用Python连接Mysql数据库时出现错误:Access denied for user 'xxx'@'xxx' (using password: NO)
  18. 强项目经理,弱项目总监
  19. 门诊住院发票在线OCR识别,测试效果及体验链接
  20. Linux深度系统卡,Deepin很卡怎么办?Deepin卡顿解决方法盘点

热门文章

  1. C#命名空间(namespace)学习
  2. 几种常用RAID的特性
  3. Linux 探索之旅 | 开宗明义 + 第一部分第一课:什么是 Linux?
  4. 李志诉腾讯《明日之子》侵权案获赔20万
  5. Tableau 消费客户分析(二)分群规模和消费
  6. 输出1-100之间的素数
  7. Qt项目实战2:图片查看器QImageViewer
  8. 腾讯2017年校园招聘笔试题第一题
  9. 企业真的会做背调吗?都调查些什么?
  10. 【电脑更换电池】2018款联想小新Air15 IKBR更换电池全记录(自己更换!不要去专卖店!)