转发自:https://blog.csdn.net/bingshan5haoao/article/details/32966581
https://www.cnblogs.com/liuxx/p/3576472.html
一、什么是.NET Framework?
.NET Framework又称 .Net框架。是由微软开发,一个致力于敏捷软件开发(Agile software development)、快速应用开发(Rapid application development)、平台无关性和网络透明化的软件开发平台。.NET是微软为下一个十年对服务器和桌面型软件工程迈出的第一步。.NET包含许多有助于互联网和内部网应用迅捷开发的技术。
.NET框架是微软公司继Windows DNA之后的新开发平台。.NET框架是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多种语言(C#、VB、C++、Python等)的开发。
.NET也为应用程序接口(API)提供了新功能和开发工具。这些革新使得程序设计员可以同时进行Windows应用软件和网络应用软件以及组件和服务(web服务)的开发。.NET提供了一个新的反射性的且面向对象程序设计编程接口。.NET设计得足够通用化从而使许多不同高级语言都得以被汇集。
二、.netframework的变迁
目前.netframework版本有1.0,1.1 ,2.0,3.0, 3.5,4.0 ,4.5,4.6,4.7.
三、.netframework各个版本之间的关系
.netframework 2.0 = CLR2.0 + FCL(framework class library)
.netframework 3.0 = .netframework2.0 +SP1 + WPF +WCF +WF+CardSpace
.netframework 3.5 = .netframework 3.0+SP2 +new compiler
这三个版本framework的CLR都是2.0,因此,asp.net的runtime还是只有1.1和2.0,像Linq这些新功能其实只是用新的编译器加上一些新的类库来实现的,3.5版本并没有对CLR做大的升级。
VS2008支持在2.0,3.0和3.5三种版本下开发项目,VS2005的项目可以平稳的升到VS2008上,在VS2008下做VS2005的项目,用的编译器和类库同VS2005都是一样的,但是提供了更好的开发环境。
.net framework各个版本介绍:
.NET框架 1.0
完整版本号 - 1.0.3705
这是最初的.NET构架,发行于2002年。它可以以一个独立且可重新分发的包的形式或在一个软件发展工具包集中被获得。它也是第一个微软Visual Studio .NET的发行版的一部分(也被称作Visual Studio .NET 2002)。
.NET框架 1.1
完整版本号 - 1.1.4322
这是首个主要的.NET框架升级版本,发行于2003年。它可以以一个独立的可重新分发的包的形式或在一个软件发展工具包集中被获得。它也是第二个微软Visual
Studio .NET版本的一部分(也被称作Visual Studio .NET 2003)。它也是首个被Windows操作系统-Windows Server 2003所内置的.NET框架版本。
自1.0版本以来的改进:
自带了对mobile asp .net控件的支持。这在1.0版本是以附加功能方式实现的,现在已经集成到框架的内部。安全方面的变更 -
使得Windows窗体代码以可靠的行为运行,从而可以在Internet环境内安全运行,并且加入了ASP
.NET应用程序的代码安全访问功能。自带了对ODBC和Oracle数据库的支持。这在1.0版本是以附加功能方式实现的,现在已经集成到框架的内部。.NET
Compact Framework- 这是一个用于智能设备(例如Pocket
PC或者SmartPhone)的.NET框架的子集。对IPv6的支持。大量的API变更。
.NET框架 2.0
完整版本号 - 2.0.50727.42,发行于2005年10月27日。
.NET框架 2.0的组件都包含在 Visual Studio 2005和SQL Server 2005里面。通过MSDN Universe版可以免费下载RTM版本。
自1.1版本以来的改进:
大量的API变更。新的API让需要管理.NET运行库实例的非.NET的应用程序可以做到这点。这个新的API对.NET运行库的各种功能,包括:多线程、存储器分配、代码加载等,提供了很好的控制。它最初是为Microsoft
SQL Server能够有效率的使用.NET运行库而设计的,因为Microsoft SQL
Server拥有它自己的日程管理器和存储器管理器。NET框架 2.0 SP1随.NET框架 3.5同时发行,请参看.NET框架
3.5一节。.NET框架 2.0 SP2随.NET框架 3.5 SP1同时发行,请参看.NET框架
3.5 SP1一节。
.NET框架 3.0
主条目:.NET框架 3.0
发布日期2006/11/21。曾用名“WinFX”。依然使用.NET框架 2.0版本的公共语言运行库(CLR),并加入了适应未来软件发展方向的4个框架:
Windows Presentation Foundation(WPF):提供更佳的用户体验,用来开发Windows
Forms程序以及流览器应用程序.Windows Communication
Foundation(WCF):提供SOA(面向服务的软件构架)支持的安全的网络服务(Web Service)框架。Windows
Workflow
Foundation(WF):提供一个设计与发展工作流程导向(Workflow-oriented)应用程序基础支持的应用程序接口。Windows
CardSpace:提供一个SSO的解决方案,每个用户都有各自的CardSpace。.NET框架
3.0 SP1随.NET框架 3.5同时发行,请参看.NET框架 3.5。.NET框架 3.0 SP2随.NET框架 3.5
SP1同时发行,请参看.NET框架 3.5 SP1。
.NET框架 3.5
这个版本将包含一个支持C#和VB .Net中心的语言特性的编译器,以及对语言集成查询(LINQ, Language-Integrated Query)的支持。该版本随Visual Studio 2008一起发布。
同时,.NET框架 3.5自动包含.NET框架 2.0 SP1以及.NET框架 3.0 SP1,用于为这两个版本提供安全性修复,以及少量新增的类库(如System.DateTimeOffest),此版本提供的新功能有:
- 与语言集成查询 (LINQ) 和数据感知紧密集成。借助这个新功能,您可以使用相同的语法,在任何支持 LINQ 的语言中编写相关代码,以筛选和枚举多种类型的 SQL 数据、集合、XML 和数据集,以及创建它们的投影。
- 利用 ASP.NET AJAX 可以创建更有效、更具交互性、高度个性化的 Web 体验,这些体验在所有最流行的浏览器上都能实现。
- 用于生成 WCF 服务的全新 Web 协议支持,包括 AJAX、JSON、REST、POX、RSS、ATOM 和若干新的 WS-* 标准。
- Visual Studio 2008 中面向 WF、WCF 和 WPF 的完整工具支持,其中包括支持工作流的服务这一新技术。
- .NET Framework 3.5 基类库 (BCL) 中的新类可满足许多常见的客户请求。
扩展方法(Extension Method)属性(Attribute),用于为扩展方法提供支持LINQ支持,包括LINQ to Object、LINQ to ADO .NET以及LINQ to XML表达式目录树(Expression Tree),用于为Lambda表达式提供支持与语言集成查询 (LINQ)和数据感知紧密集成。借助这个新功能,您可以使用相同的语法,在任何支持LINQ的语言中编写相关代码,以筛选和枚举多种类型的SQL数据、集合、XML和数据集,以及创建它们的投影。利用asp .netAJAX可以创建更有效、更具交互性、高度个性化的Web体验,这些体验在所有最流行的浏览器上都能实现。用于生成WCF服务的全新Web协议支持,包括AJAX、JSON、REST、POX、RSS、ATOM和若干新的WS-*标准。Visual Studio 2008中面向WF、WCF和WPF的完整工具支持,其中包括支持工作流的服务这一新技术。.NET框架 3.5基类库 (BCL)中的新类可满足许多常见的客户请求。[编辑].NET框架 3.5 SP1 .NET框架 3.5 SP1自动包含.NET框架 2.0 SP2以及.NET框架 3.0 SP2。该版本随Visual Studio 2008 SP1发布,此版本提供了下列的新功能:
.NET框架 3.5 Service Pack 1
.NET框架 4.0主要增加了并行支持,英文版于2010年4月12日推出。
企业基础 .NET提供开发软件的独立平台,自带高度安全的网络系统,相当倚重软件组件以及组件导向程序。在这方面它完全取代前者(COM)。
- ASP.NET 动态数据,它提供了丰富的框架,从而使用户可以快速进行数据驱动的开发,而无需编写代码;并且增加了一项 ASP.NET AJAX 的新功能,为管理浏览器历史记录提供支持(后退按钮支持)。有关更多信息,请参见 ASP.NET 4 和 Visual Web Developer 中的新增功能。
- 对CLR(公共语言运行时)的核心改进包括:改进了.NET Framework本机映像的布局、选择不再对完全信任的程序集进行强名称验证、提高了应用程序启动性能,为改进了生成的代码以缩短端到端应用程序执行时间、选择在ASLR(地址空间布局随机化)模式下运行托管代码。此外,从网络共享打开的托管应用程序在完全受信任环境下运行时与本机应用程序具有相同的行为。
- 提高了 WPF (Windows Presentation Foundation) 的性能,包括缩短了启动时间,提高了与位图效果有关的性能。WPF 的其他功能包括:改善了对业务线应用程序、本机初始屏幕、DirectX 像素着色器支持,并且新增了 WebBrowser 控件。
- ClickOnce 应用程序发行者可以决定在适当情况下不进行签名和加密,开发人员可以编程方式安装 ClickOnce 应用程序以显示自定义署名,并且 ClickOnce 错误对话框支持链接到 Web 上应用程序特定的支持网站。
- Entity Framework 是从现有的一套 ADO.NET 数据访问技术发展而来的。利用 Entity Framework,开发人员可以按照应用程序特定的域模型(而不是基础数据库模型)来针对关系数据库进行编程。有关更多信息,请参见 Entity Framework 入门(英文)。Entity Framework 还引入了一些其他功能,包括支持 SQL Server 2008 的新类型、默认实体图形序列化和实体数据源。此版本的 Entity Framework 支持 SQL Server 2008 中新的日期和文件流功能。图形序列化工作可帮助开发人员生成将全部图形建模为数据协定的 Windows Communication Foundation (WCF) 服务。实体数据源为希望使用 Entity Framework 的 ASP.NET Web 应用程序构建者提供了传统的数据源体验。
- LINQ to SQL 新增了对 SQL Server 2008 中新的日期和文件流功能的支持。
- ADO.NET Data Services Framework 由满足以下条件的模式和库组合而成:支持将数据公开为一项基于 REST(具象状态传输)的灵活数据服务,企业网络内部或整个 Internet 上的 Web 客户端都可以使用该服务。ADO.NET Data Services Framework 支持基于任何数据源创建数据服务。通过与 ADO.NET Entity Framework 的充分集成,可以轻松公开基础存储架构的概念视图模型。可以轻松地从任一平台访问使用 ADO.NET Data Services Framework 创建的服务以及兼容的 Windows Live (dev.live.com) 服务。针对在 Microsoft 平台上运行的客户端应用程序提供了一组客户端库,以简化与数据服务的交互。例如,基于 .NET Framework 的客户端可以使用 LINQ 查询数据服务,也可以使用简单的 .NET Framework 对象层更新此服务中的数据。
- 现在,Windows Communication Foundation 提供了改进的互操作支持、增强了部分受信任情况下的调试体验,并且扩展了整合协议支持以在 Web 2.0 应用程序中可以进行更广泛的应用,从而使 DataContract 序列化程序更易于使用。
- 用于 SQL Server (SqlClient) 的 .NET Framework 数据提供程序新增了对 SQL Server 2008 中的文件流和稀疏列功能的支持。
.NET框架 4.0
.NET Framework 是由 Microsoft 开发的一种全面且一致的编程模型,用于生成具有视觉震撼力的用户体验、无缝的安全通信和对一系列业务流程进行建模的能力的应用程序。.NET Framework 4 将与旧的 Framework 版本并行工作。 默认情况下,基于早期版本的 Framework 的应用程序将继续在目标版本上运行。
Microsoft .NET Framework 4 提供了以下新功能和改进:
- 公共语言运行时 (CLR) 和基类库 (BCL) 的改进
- 性能改进,包括更好的多核心支持、后台垃圾回收和服务器上的探查器附加。
- 新的内存映射文件和数字类型。
- 更轻松的调试,包括转储调试、Watson 小型转储、64 位的混合模式调试和代码协定。
- 有关 CLR 和 BCL 的增强功能的完整列表,请转到此处。
- Visual Basic 和 C# 语言中的创新,例如 lambda 语句、隐式行继续符、动态调度和命名/可选参数。
- 数据访问和建模的改进
1.利用 Entity Framework,开发人员可使用 .NET 对象和语言集成查询 (LINQ) 对关系数据库进行编程。 它具有多项新功能,包括持久性忽略和 POCO 支持、外键关联、延迟加载、测试驱动开发支持、模型中的函数和新的 LINQ 运算符。 其他功能包括:带自跟踪实体的更好的 n 层支持、使用 T4 模板的可自定义的代码生成、模型首次开发、改进的设计器体验、更好的性能以及实体集的复数形式。 有关更多信息,请转到此处。
2. WCF 数据服务是 .NET Framework 的一个组件,可以利用此服务创建基于 REST 的服务和应用程序,以便使用开放式数据协议 (OData) 在 Web 上公开和使用数据。 WCF 数据服务具有多项新功能,包括增强的 BLOB 支持、数据绑定、行计数、源自定义、投影和请求管道改进。 当前与 Microsoft Office 2010 的内置集成可将 Microsoft Office SharePoint Server 数据作为一个 OData 源公开,并使用 WCF 数据服务客户端库访问该数据源。 有关更多信息,请转到此处。
- ASP.NET 的增强功能
- 对 HTML、元素 ID 和自定义 CSS 的更多控制,通过这些控制可更轻松地创建符合标准且 SEO 友好的 Web 窗体。
- 新的动态数据功能,包括新的查询筛选器、实体模板、对 Entity Framework 4 的更丰富的支持以及可轻松应用于现有 Web 窗体的验证和模板化功能。
- 针对新的 AJAX 库改进的 Web 窗体支持,包括对内容传递网络 (CDN) 的内置支持。
- 有关 ASP.NET 增强功能的完整列表,请转到此处。
- Windows Presentation Foundation (WPF) 的改进
- 添加对 Windows 7 多点触控、功能区控件和任务栏扩展性功能的支持。
- 添加了对 Surface 2.0 SDK 的支持。
- 新的业务线控件,包括图表控件、智能编辑、数据网格以及其他用于改进生成以数据为中心的应用程序的开发人员体验的控件。
- 性能和伸缩性的改进。
- 文本清晰度、布局像素对齐、本地化和互操作性的可视化改进。
- 有关 WPF 的增强功能的完整列表,请转到此处。
- Windows 工作流 (WF) 的改进,利用这些改进,开发人员能够更好地承载工作流并与其进行交互。 这些改进包括:改进的活动编程模型、改进的设计器体验、新的流程图建模样式、展开的活动面板、工作流规则集成和新的消息相关功能。 .NET Framework 4 还显著提高了基于 WF 的工作流的性能。 有关 WF 的增强功能的完整列表,请转到此处。
- Windows Communication Foundation (WCF) 的改进,例如对 WCF 工作流服务的支持(可启用带消息传递活动的工作流程序)和相关支持。 此外,.NET Framework 4 还提供了新的 WCF 功能,如服务发现、路由服务、REST 支持、诊断和性能。 有关 WCF 的增强功能的完整列表,请转到此处。
- 创新的新并行编程功能,例如并行循环支持、任务并行库 (TPL)、并行 LINQ (PLINQ) 和协调数据结构(可让开发人员利用多核处理器)。
.NET框架 4.5
-
在部署期间,能够通过检测和关闭 .NET Framework 4 应用程序来减少系统重启。 请参见在 .NET Framework 4.5 安装期间减少系统重新启动。
-
在64位平台下支持大于2GB的数组 此功能可在应用程序配置文件中启用。 请参见 <gcAllowVeryLargeObjects> 元素,该元素列出有关对象大小和数组大小的其他限制。
-
通过服务器后台垃圾回收提高性能 当您在 .NET Framework 4.5 中使用服务器垃圾回收时,后台垃圾回收自动启用。 请参见垃圾回收的基础主题的背景服务器垃圾回收部分。
-
背景实时 (JIT) 生成,可以选择可用在多核处理器改进应用程序性能。 请参见 ProfileOptimization。
-
在它超时之前,能够限制正则表达式引擎要多久能尝试解决正则表达式。 请参见 Regex.MatchTimeout 属性。
-
能够定义应用程序域的默认区域性。 请参见 CultureInfo 类。
-
Unicode (UTF-16) 编码的控制台支持。 请参见 Console 类。
-
为版本控制区域性字符串排序和比较数据支持。 请参见 SortVersion 类。
-
在检索资源时的更佳性能。 请参见打包和部署桌面应用程序中的资源。
-
Zip 压缩改进可减少压缩文件的大小。 请参见 System.IO.Compression 命名空间。
-
通过 CustomReflectionContext 类,能够自定义反射上下文来重写默认反射行为。
-
支持依照应用程序 (IDNA) 标准的国际化域名的 2008 版(当 System.Globalization.IdnMapping 类在 Windows 8 上使用时)。
-
当 .NET Framework 在 Windows 8 使用时,到操作系统的字符串比较的委托实现 Unicode 6.0。 在其他平台上运行时,.NET Framework 包括其自己的实现 Unicode 5.x 的字符串比较数据。 请参见 SortVersion 类的 String 类和标注部分。
-
每个应用程序域的基础上能够计算字符串的哈希代码。 请参见 <UseRandomizedStringHashAlgorithm> 元素。
-
类型反射支持在 Type 和 TypeInfo 类之间拆分。 请参见 .NET Framework 中用于 Windows 应用商店应用程序的反射。
Managed Extensibility Framework (MEF)
在 .NET Framework 4.5 中,Managed Extensibility Framework (MEF) 具有以下新功能:
-
泛型类型的支持。
-
基于命名约定而不是属性,可以创建部件的基于约定的编程模型。
-
多个作用域。
-
当你创建 Windows 应用商店应用时,你可以使用 MEF 子集。 此子集可作为 NuGet 库中的一个可下载的程序包。 若要安装包,打开 Visual Studio 中的项目,请从“项目”菜单选择“管理 NuGet 程序包”,然后联机搜索Microsoft.Composition 包。
有关更多信息,请参见Managed Extensibility Framework (MEF)。
在 .NET Framework 4.5 中,添加到 C# 和 Visual Basic 语言的新的异步功能。 这些功能为执行异步操作添加基于任务的模型。 若要使用此新模型,请使用 I/O 类中异步方法。 请参见异步文件 I/O。