.NET Framework 各个版本的区别

.NET Framework 1.1

自1.0版本以来的改进:
自带了对mobile asp .net控件的支持。这在1.0版本是以附加功能方式实现的,现在已经集成到框架的内部。安全方面的变更 - 使得Windows窗体代码以可靠的行为运行,从而可以在Internet环境内安全运行,并且加入了ASP .NET应用程序的代码安全访问功能。自带了对ODBC和Oracle数据库的支持。这在1.0版本是以附加功能方式实现的,现在已经集成到框架的内部。.NET Compact Framework- 这是一个用于智能设备(例如Pocket PC或者SmartPhone)的.Net Framework的子集。对IPv6的支持。大量的API变更。

.NET Framework 2.0

自1.1版本以来的改进:大量的API变更。新的API让需要管理.NET运行库实例的非.NET的应用程序可以做到这点。这个新的API对.NET运行库的各种功能,包括:多线程、存储器分配、代码加载等,提供了很好的控制。它最初是为Microsoft SQL Server能够有效率的使用.NET运行库而设计的,因为Microsoft SQL Server拥有它自己的日程管理器和存储器管理器。

.NET Framework 3.0

这个版本将包含一个支持C#和VB .Net中心的语言特性的编译器,以及对语言集成查询(LINQ,Language-Integrated Query)的支持。该版本随Visual Studio 2008一起发布。
同时,.NET Framework 3.5自动包含 .NET Framework 2.0 SP1以及 .Net Framework 3.0 SP1,用于为这两个版本提供安全性修复,以及少量新增的类库(如System.DateTimeOffest)。此版本提供的新功能有:
扩展方法(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 Framework 3.5基类库 (BCL)中的新类可满足许多常见的客户请求。
该版本新增的ASP .NET功能,随Visual Studio 2008 SP1发布,此版本提供了下列的新功能:
新增的ASP .NET功能包括ASP .NET动态数据和ASP .NET AJAX附加功能,前者提供了无需编写代码就可实现数据驱动的快速开发的丰富支架框架,后者为管理浏览器历史记录提供了支持(后退按钮支持)。ADO .NET Entity Framework。对SQL Server 2008的数据提供程序支持。.Net Framework客户端配置文档是完整版.Net Framework的子集,面向客户端应用程序。这改善了尚未安装.Net Framework的计算机上的安装体验。改进Windows Presentation Foundation的性能,其中包括启动速度的位图效果性能的提高。为Windows Presentation Foundation增加的功能包括对业务线应用程序的更好支持、本机闪屏支持、DirectX像素着色器支持以及新的WebBrowser控件。ClickOnce应用程序发布者可以根据具体情况决定是否取消签名和散列,开发人员可以以编程方式安装显示自定义署名的ClickOnce应用程序,ClickOnce错误对话框支持指向网络上特定于应用程序的支持站点的链接。用于SQL Server的.Net Framework数据提供程序 (System.Data.SqlClient)完全支持SQL Server 2008数据库引擎的所有新功能。有关.Net Framework对SQL Server 2008的支持的更多信息,请参见SQL Server中的新功能 (ADO .NET)。ADO .NET数据平台是一种多版本策略,它使开发人员能够针对概念性实体数据模型进行编程,从而减轻他们的编码和维护工作。此平台提供了ADO .NET Entity Framework、实体数据模型 (EDM)、对象服务、LINQ to Entities、Entity SQL、EntityClient、ADO .NET数据服务及实体数据模型工具。Windows Communication Foundation现在提供了改进的互操作性支持,增强了部分信任方案中的调试体验,并扩展了集成协议支持以更广泛地应用于Web 2.0应用程序,进而使DataContract串行化程序更易于使用。Microsoft.VisualBasic.PowerPacks命名空间引入了新的DataRepeater控件,该控件以可自定义的列表格式显示数据。此命名空间还包含新的矢量形状。

.NET Framework 4.0

企业基础 .NET提供开发软件的独立平台,自带高度安全的网络系统,相当倚重软件组件以及组件导向程序。在这方面它完全取代前者(COM1)。

应用程序池.net Framework版本 v4.0.30319,包含4.5

.NET Framework 4.5

.NET Framework 4.5 发行于2012年8月16日,是支持生成和运行下一代应用程序和 Web 服务的内部 Windows 组件。 .NET Framework 的关键组件为公共语言运行时 (CLR) 和 .NET Framework 类库(包括ADO .NET、ASP .NET、Windows 窗体和 Windows Presentation Foundation (WPF) 和 Windows Workflow Foundation (WF))。 .NET Framework 提供了托管执行环境、简化的开发和部署以及与各种编程语言的集成。[4]
.NET for Windows Store apps:Windows Metro 风格 应用程序为特定窗体因素并利用 Windows 操作系统的功能。 通过使用 C# 或 Visual Basic,.NET Framework 4.5 的子集可用于生成 Windows 的 Metro 风格 应用程序。 这个子集称为 .NET for Windows Store apps
更新内容:
1.在部署期间,能够通过检测和关闭 .NET Framework 4 应用程序来减少系统重启。为大于20 GB 在 64 位平台上 (GB) 的数组支持。 此功能可在应用程序配置文件中启用。
2.通过服务器的背景垃圾回收改进性能。 当您使用服务器垃圾回收在 .NET Framework 4.5 中时,后台垃圾回收自动启用。
3.背景实时 (JIT) 生成,可以选择可用在多核处理器改进应用程序性能。
4.在它超时之前,能够限制正则表达式引擎要多久能尝试解决正则表达式。
5.能够定义应用程序域的默认区域性。5.1异步与等待(Async and Await)
6.Unicode (UTF-16) 编码的控制台支持。
7.为版本控制区域性字符串排序和比较数据支持。
8.在检索资源时,请改进性能。 请参见 打包和部署桌面应用程序中的资源。
9.Zip 压缩改进可减少压缩文件的大小。
10.通过 CustomReflectionContext 类,能够自定义反射上下文来重写默认反射行为。
11.对于国际化域名的 2008 版在应用程序 (IDNA) 标准的支持,当 System.Globalization.IdnMapping 选件类在 Windows 8 使用时。
12.当 .NET Framework 在 Windows 8 使用时,到操作系统的字符串比较的委托实现 Unicode 6.0。 在其他平台上运行时,.NET Framework 包括其自己的实现 Unicode 5.x 的字符串比较数据。每个应用程序域的基础上能够计算字符串的哈希代码。

.NET Framework 4.6.1

NET Framework 4.6.1 值得关注的更新如下:

  • WPF 的拼写检查改进,支持每个用户的自定义字典,性能改进

  • 增强对 Elliptic Curve Digital Signature Algorithm (ECDSA) X509 certificates 的支持

  • 为 AlwaysOn 新增 SQL Connectivity 支持

  • Azure SQL 数据库支持分布式事务,使用更新的 System.Transactions APIs 

  • 大量 RyuJIT,GC,WPF 和 WCF 的性能,稳定性,可靠性改进

.NET Framework 4.6.1 支持 Windows 10, Windows 8.1, Windows 8, Windows 7 等平台。

.NET Framework 4.6.2

    • .NET Framework 4.6.2新增DSA(数字签名算法)X509证书支持,其密钥长度超过FIPS 186-2 的1024位限制,支持FIPS 186-3。
    • 除了支持FIPS 186-3更大的密钥大小外,.NET Framework 4.6.2允许使用SHA-2族哈希算法(SHA256、SHA384和SHA512)计算签名。FIPS 186-3支持由新增的类DSACng提供。
    • 我们还是回到ASP.NET 4.6.2 吧,这次主要的更新是异步和SessionStateModule 和 Output-Cache Module, 也就是说ASP.NET 4.6.2 完全支持异步化了,,包括Session和OutputCache,异步化的支持非常重要,大家都听说过了ASP.NET Core的高性能了,是怎么做到的呢,这个就和完全异步化有很大的关系。

.NET Core 1.0

  2016.6.28发布

 在介绍ASP.NET Core 1.0之前有必要澄清一些产品名称及版本号。ASP.NET Core1.0是微软下一代ASP.NET 框架,在这之前ASP.NET版本稳定在ASP.NET  4.6,对应的.NET Framework版本为.net 4.6.2。 

  该文还指出了.NET其他产品命名变化

  1. ASP.NET 5 现在叫做 ASP.NET Core 1.0
  2. .NET Core 现在叫做 .NET Core 1.0
  3. Entity Framework 7 现在叫做 Entity Framework Core 1.0 或者简称 EF Core 1.0

.NET Core 2.0

  2017.08.14发布

降低入门及学习的障碍,.NET Standard 2.0通过标准化共享API,可以轻松地跨.NET Framework,.NET Core和Xamarin共享代码。

.NET Framework 4.6.1支持.NET Standard 2.0

.NET Standard 2.0 添加了许多.NET Framework 4.6.1 支持的API,以及.NET Standard 2.0  自己特有的API

  • .NET Standard 2.0 添加了 14,994 个.NET Framework 4.6.1已经支持的API 
  • .NET Standard 2.0 只有 43 个 .NET Framework 4.6.1不支持的API

.NET Standard 2.0 将是.NET Standard 1.6的超集。 换句话说,.NET Standard 2.0和1.x不会发生突破性的变化。
.NET Framework 4.6.1将允许引用根据.NET Standard 2.0编译的二进制文件。

最终可以理解为.NET Core 2.0 将是等价于 .NET Framework 4.6.1。

----------------------

,但是开发人员中间仍然存在一些疑惑,就是.NET Core、.NET Standard、Xamarin和.NET Framework有什么不同

.NET Framework用于构建桌面应用程序和运行在互联网信息服务器(IIS)上的ASP.NET应用程序。它是第一个托管框架。

Xamarin是一个用于构建iOS、Android、macOS和桌面应用程序的框架。

.NET Core

.NET Core是免费、跨平台的,是托管框架的开源实现。它支持4种类型的应用程序:控制台、ASP.NET Core、云和通用Windows平台(UWP)。Windows FormsWindows Presentation Foundation(WPF)并不包含在.NET Core中。

从技术上讲,.NET Core仅支持控制台应用程序。ASP.NET Core和UWP是以.NET Core为基础构建的应用程序模型。

与.NET Framework不同,.NET Core没有作为Windows组件考虑。因此,更新是以NutGet包的形式,而不是通过Windows Update。由于.NET Core运行时安装成了App-Local,而应用程序升级是通过包管理器完成的,所以应用程序可以关联特定的.NET Core版本以及单独升级。

.NET Standard

托管框架的每一种实现都有一套自己的基类库。基类库(BCL)包含诸如异常处理、字符串、XML、I/O、网络和集合这样的类。

.NET Standard是一项实现BCL的规范。由于.NET实现需要遵循这项规范,所以应用程序开发人员就不用担心每一种托管框架实现的BCL不同。

框架类库(FCL),如WPF、WCF、ASP.NET,不包含在BCL中,因此,也就不包含在.NET Standard中。

.NET Standard与.NET实现之间的关系就和HTML规范与浏览器之间的关系一样。后者是前者的实现。

因此,.NET Framework、Xamarin和.NET Core,每一种托管框架都实现了.NET Standard中的BCL。随着计算机工业不断推出新的硬件和操作系统,将来还会出现新的.NET托管框架。该标准让应用程序开发人员知道,他们可以依赖于一套始终如一的API。

每个.NET版本都对应一个.NET Standard版本。

API一致,将应用程序移植到不同的托管实现以及提供工具都会更简单。

.NET Standard被定义为一个单独的NuGet包,因为所有的.NET实现都必须支持它。工具变得简单了,因为对于特定的版本,它们有一套相同的API。你还可以针对多个.NET实现构建一个库项目。

你还可以构建特定平台API的.NET Standard封装器。

.NET Standard vs 可移植类库

可移植类库做的不是同一件事吗?

可移植类使用多个平台均都支持的通用API。因此,支持的平台越多,可用的API就越少,而且,对于特定的平台组合,很难知道到底支持哪些API。对于一个新平台,已有的PCL必须重新编译。PCL还需要微软针对每个平台创建一个新的框架实现分支。

由于.NET Standard确定了API,而不是一个实现,所以不需要重新编译应用程序。任何新发布的.NET实现都实现了必须的库。应用程序不需要重新编译就可以运行在新的硬件平台或操作系统上。从理论上讲,在调用API时可能会捕获到NotSupportedException异常,但那种情况应该很少见。

小结

.NET Standard是一项API规范,每一个特定的版本,都定义了必须实现的基类库。

.NET Core是一个托管框架,针对构建控制台、云、ASP.NET Core和UWP应用程序进行了优化。每一种托管实现(如Xamarin、.NET Core或.NET Framework)都必须遵循.NET Standard实现BCL。

 

posted @ 2017-04-25 11:16  qaidouding  阅读(793)  评论(0编辑  收藏  举报