什么是.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设计得足够通用化从而使许多不同高级语言都得以被汇集。
.NET Framework有哪些版本?
.NET框架 1.0、.NET框架 1.1、.NET框架 2.0、.NET框架 3.0、.NET框架 3.5、.NET框架 4.0。
.NET Framework各个版本间的关系?
net framework 2.0,3.0与3.5三个版本之间关系如下:
.net framework 2.0 = CLR 2.0 + FCL(framework class library)
.net framework 3.0 = .net framework 2.0 + SP1 + WPF + WCF + WF + CardSpace
.net framework 3.5 = ..net framework 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),此版本提供的新功能有:
扩展方法(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发布,此版本提供了下列的新功能:
新增的ASP .NET功能包括ASP .NET动态数据和ASP .NET AJAX附加功能,前者提供了无需编写代码就可实现数据驱动的快速开发的丰富支架框架,后者为管理浏览器历史记录提供了支持(后退按钮支持)。ADO .NET Entity Framework。对SQL Server 2008的数据提供程序支持。.NET框架客户端配置文档是完整版.NET框架的子集,面向客户端应用程序。这改善了尚未安装.NET框架的计算机上的安装体验。改进Windows Presentation Foundation的性能,其中包括启动速度的位图效果性能的提高。为Windows Presentation Foundation增加的功能包括对业务线应用程序的更好支持、本机闪屏支持、DirectX像素着色器支持以及新的WebBrowser控件。ClickOnce应用程序发布者可以根据具体情况决定是否取消签名和散列,开发人员可以以编程方式安装显示自定义署名的ClickOnce应用程序,ClickOnce错误对话框支持指向网络上特定于应用程序的支持站点的链接。用于SQL Server的.NET框架数据提供程序 (System.Data.SqlClient)完全支持SQL Server 2008数据库引擎的所有新功能。有关.NET框架对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框架 4.0
.NET框架 4.0主要增加了并行支持,英文版于2010年4月12日推出。
企业基础 .NET提供开发软件的独立平台,自带高度安全的网络系统,相当倚重软件组件以及组件导向程序。在这方面它完全取代前者(COM)。
有关新 API 的列表,请参阅 .NET Framework 4.5.1 中的新增类型和成员。
核心新增功能和增强功能包括:
程序集的自动绑定重定向。 从 Visual Studio 2013 开始,当您编译面向 .NET Framework 4.5.1 的应用程序时,如果您的应用程序或其组件引用同一程序集的多个版本,则绑定重定向可能被添加到应用程序配置文件中。 您也可以对面向 .NET framework 的早期版本的项目启用此功能。 有关详细信息,请参阅程序集绑定重定向。
可以收集诊断信息,以帮助开发人员提高服务器和云应用程序的性能。 有关详细信息,请参阅 EventSource 类中的 WriteEventWithRelatedActivityId 和WriteEventWithRelatedActivityIdCore 方法。
可以在垃圾回收过程中显式压缩大对象堆 (LOH)。 有关更多信息,请参见 GCSettings.LargeObjectHeapCompactionMode 属性。
其他性能改进,例如 ASP.NET 应用程序挂起、多核 JIT 改进,以及更新 .NET Framework 后的更快的应用程序启动。 有关详细信息,请参阅 .NET Framework 4.5.1 声明和 ASP.NET 应用程序挂起博客文章。
在 Visual Studio 2013 中调试 .NET Framework 应用程序时的改进包括:
返回 Visual Studio 调试器中的值。 在 Visual Studio 2013 中调试托管应用程序时,“自动”窗口会显示方法的返回类型和值。 此信息可用于桌面、Windows 应用商店和 Windows Phone 应用程序。 有关详细信息,请参阅 MSDN 库中的检查方法调用的返回值。
针对 64 位应用程序的“编辑并继续”。 Visual Studio 2013 支持桌面、Windows 应用商店和 Windows Phone 的 64 位托管应用程序的“编辑并继续”功能。 现有的限制对 32 位和 64 位应用程序仍然有效(请参阅支持的代码更改 (C#)文章的最后一节)。
异步识别调试。 为了更易于在 Visual Studio 2013 中调试异步应用程序,调用堆栈会隐藏编译器提供的基础结构代码以支持异步编程,并且链入逻辑父级框架,以便您可以更清楚地了解逻辑程序执行。 “任务”窗口将替换“并行任务”窗口,并显示与特定断点相关的任务,还会显示应用程序中当前处于活动状态或计划状态的任何其他任务。 您可以在 .NET Framework 4.5.1 公告的“异步识别调试”一节中了解此功能。
改进对 Windows 运行时组件的异常支持。 在 Windows 8.1中,Windows 应用商店应用产生的异常保留了有关导致异常的错误的信息(可跨语言使用)。 您可以在.NET Framework 4.5.1 公告的“Windows 应用商店应用开发”一节中了解此功能。
从 Visual Studio 2013 开始,您可以使用按托管配置优化工具 (Mpgo.exe) 来优化 Windows 应用商店应用以及桌面应用程序。
有关 ASP.NET 4.5.1 中的新增功能,请参阅 ASP.NET 站点上的 ASP.NET 4.5.1 和 Visual Studio 2013。
请注意,.NET Framework 团队已开始进行功能的连续交付,如带有 NuGet 的不可变的集合。 功能在带外 (OOB) 发布,用于扩展平台支持并引入新功能。 有关详细信息,请参阅 .NET Framework 和带外版本。
返回页首
能够在部署期间通过检测并关闭 .NET Framework 4 应用程序来减少系统重启。 请参阅在 .NET Framework 4.5 安装期间减少系统重新启动。
在64位平台下支持大于2GB的数组 此功能可在应用程序配置文件中启用。 请参阅
通过服务器后台垃圾回收提高性能 当您在 .NET Framework 4.5 中使用服务器垃圾回收时,后台垃圾回收自动启用。 请参阅垃圾回收的基础主题的“后台服务器垃圾回收”一节。
后台实时 (JIT) 编译,可在多核处理器上使用此功能改进应用程序性能。 请参阅 ProfileOptimization。
限制正则表达式引擎在超时之前要多久才能尝试解决正则表达式的能力。 请参阅 Regex.MatchTimeout 属性。
定义应用程序域的默认区域性的能力。 请参阅 CultureInfo 类。
Unicode (UTF-16) 编码的控制台支持。 请参阅 Console 类。
支持对区域性字符串排序和比较数据进行版本控制。 请参阅 SortVersion 类。
在检索资源时的更佳性能。 请参阅打包和部署桌面应用程序中的资源。
Zip 压缩改进,可减少压缩文件的大小。 请参阅 System.IO.Compression 命名空间。
可以通过 CustomReflectionContext 类自定义用于重写默认反射行为的反射上下文。
支持应用程序的国际域名 (IDNA) 标准的 2008 版(在 Windows 8 上使用 System.Globalization.IdnMapping 类时)。
可以在 Windows 8 使用 .NET Framework 时,将字符串比较委托给操作系统(这将实现 Unicode 6.0)。 在其他平台上运行时,.NET Framework 包括其自己的字符串比较数据,这将实现 Unicode 5.x。 请参阅 String 类和 SortVersion 类的“备注”部分。
能够在每个应用程序域基础上计算字符串的哈希代码。 请参阅
类型反射支持 Type 和 TypeInfo 类之间的拆分。 请参阅 .NET Framework 中用于 Windows 应用商店应用程序的反射。
在 .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。
返回页首
在 .NET Framework 4.5 中,利用资源文件生成器 (Resgen.exe),您可以从嵌入在 .NET Framework 程序集中的 .resources 文件中创建用于 Windows 应用商店应用的 .resw 文件。 有关详细信息,请参阅 Resgen.exe(资源文件生成器)。
利用按托管配置优化 (Mpgo.exe) 工具,您可以通过优化本机映像程序集来改进应用程序的启动时间、内存使用率(工作集大小)和吞吐量。 该命令行工具会针对本机映像应用程序程序集生成配置文件数据。 请参阅 Mpgo.exe(按托管配置文件优化工具)。 从 Visual Studio 2013 开始,可以使用 Mpgo.exe 优化 Windows 应用商店应用以及桌面应用程序。
.NET Framework 4.5 提供了针对并行计算的多项新功能和改进功能。 其中包括改进的性能、增强的控件、对异步编程的增强支持、新的数据流库以及对并行调试和性能分析的增强支持。 请参阅“使用 .NET 进行并行编程”博客中的 .NET 4.5 中有关并行的新增功能条目。
返回页首
ASP.NET 4.5 和 4.5.1 为 Web 窗体、WebSocket 支持、异步处理程序、性能增强和许多其他功能添加了模型绑定。 有关更多信息,请参见以下资源:
MSDN 库中的 ASP.NET 4.5 和 Visual Studio 2012。
ASP.NET 站点上的 ASP.NET 4.5.1 和 Visual Studio 2013。
返回页首
.NET Framework 4.5 提供了一个用于 HTTP 应用程序的新的编程接口。 有关详细信息,请参阅新的 System.Net.Http 和 System.Net.Http.Headers 命名空间。
还包含针对用于接受 WebSocket 连接并与之交互(通过使用现有 HttpListener 和相关类)的新编程接口的支持。 有关详细信息,请参阅新的 System.Net.WebSockets 命名空间和 HttpListener 类。
此外,.NET Framework 4.5 包括以下网络改进:
与 RFC 兼容的 URI 支持。 有关详细信息,请参阅 Uri 和相关类。
对国际域名 (IDN) 分析的支持。 有关详细信息,请参阅 Uri 和相关类。
对电子邮件地址国际化 (EAI) 的支持。 有关更多信息,请参见 System.Net.Mail 命名空间。
改进对 IPv6 的支持。 有关更多信息,请参见 System.Net.NetworkInformation 命名空间。
双重模式套接字支持。 有关更多信息,请参见 Socket 和 TcpListener 类。
返回页首
在 .NET Framework 4.5 中,Windows Presentation Foundation (WPF) 包含以下方面的更改和改进:
利用新的 Ribbon 控件,您可以实现承载快速访问工具栏、应用程序菜单和选项卡的功能区用户界面。
支持同步和异步数据验证的新 INotifyDataErrorInfo 接口。
VirtualizingPanel 和 Dispatcher 类的新功能。
通过在非 UI 线程上访问集合,改进了在显示大型分组数据集时的性能。
针对静态属性的数据绑定、针对实现 ICustomTypeProvider 接口的自定义类型的数据绑定,以及从绑定表达式中检索数据绑定信息。
在值发生更改时重新定位数据(实时数据整理)。
能够检查项目容器的数据上下文是否已断开连接。
能够设置属性更改和数据源更新之间的时间间隔。
改进了对实现弱事件模式的支持。 此外,事件现在可以接受标记扩展。
有关详细信息,请参阅 WPF 版本 4.5 的新增功能。
返回页首
在 .NET Framework 4.5 中,已添加以下功能,以便更轻松地编写和维护 Windows Communication foundation (WCF) 应用程序:
简化生成的配置文件。
对协定优先开发的支持。
能够更轻松地配置 ASP.NET 兼容模式。
对默认传输属性值的更改,可减小您必须设置这些值的可能性。
对 XmlDictionaryReaderQuotas 类进行更新,可减小您必须手动为 XML 字典读取器配置配额的可能性。
作为生成过程的一部分,由 Visual Studio 验证 WCF 配置文件,以便您可以在运行应用程序之前检测配置错误。
新的异步流支持。
新的 HTTPS 协议映射,使您能够更轻松地通过 Internet Information Services (IIS) 在 HTTPS 上公开终结点。
能够通过将 ?singleWSDL 追加到服务 URL,来在单个 WSDL 文档中生成元数据。
WebSockets 支持,通过端口 80 和 443 启用真正的双向通信,其性能特性与 TCP 传输类似。
对在代码中配置服务的支持。
XML 编辑器工具提示。
ChannelFactory 缓存支持。
二进制文件编码器压缩支持。
对 UDP 传输的支持,这可使开发人员编写使用“发后不理”消息的服务。 客户端向服务发送消息,且不希望从该服务获得响应。
能够在使用 HTTP 传输和传输安全性时,支持单个 WCF 终结点上的多个身份验证模式。
对使用国际域名 (IDN) 的 WCF 服务的支持。
有关详细信息,请参阅 Windows Communication Foundation 中的新增功能。
返回页首
在 .NET Framework 4.5 中,已将几项新功能添加到 Windows Workflow Foundation (WF) 中,包括:
首次作为 .NET Framework 4.0.1(.NET Framework 4 平台更新 1)的一部分引入的状态机工作流。 此更新包括可使开发人员创建状态机工作流的多个新类和活动。 已针对 .NET Framework 4.5 更新这些类和活动以包含:
可以在状态上设置断点。
可以在工作流设计器中对转换进行复制和粘贴。
为创建共享触发器转换提供的设计器支持。
创建状态机工作流的活动,包括:StateMachine、State 和 Transition。
增强的工作流设计器功能如下:
增强 Visual Studio 的工作流搜索功能,包括“快速查找”和“在文件中查找”。
将第二个子活动添加到容器活动中时自动创建“序列”活动以及在“序列”活动中包括这两个活动的能力。
平移支持,可让工作流的可见部分发生更改,而无需使用滚动条。
新“文档大纲”视图,它在树样式的大纲视图中显示工作流组件并可让您在“文档大纲”视图中选择组件。
向活动中添加批注的能力。
通过使用工作流设计器定义和使用活动委托的能力。
状态机和流程图工作流中活动和转换的自动连接和自动插入。
XAML 文件的单个元素中工作流的视图状态信息存储,以便您可以轻松定位和编辑视图状态信息。
可防止子活动持久化的 NoPersistScope 容器活动。
对 C# 表达式的支持:
使用 Visual Basic 的工作流项目将使用 Visual Basic 表达式,C# 工作流项目将使用 C# 表达式。
在 Visual Studio 2010 中创建并具有 Visual Basic 表达式的 C# 工作流项目与使用 C# 表达式的 C# 工作流项目兼容。
版本控制增强功能:
新 WorkflowIdentity 类,它提供了保留的工作流实例与其工作流定义之间的映射。
同一主机中多个工作流版本的并行执行,包括 WorkflowServiceHost。
在动态更新中,修改保留的工作流实例的定义的能力。
协定优先工作流服务开发,它为自动生成活动以匹配现有服务协定提供支持。
有关详细信息,请参阅 Windows Workflow Foundation 中的新增功能。
返回页首
Windows 应用商店应用为特定窗体因素而设计,并利用 Windows 操作系统的功能。 通过使用 C# 或 Visual Basic,.NET Framework 4.5 或 4.5.1 的子集可用于生成面向 Windows 的 Windows 应用商店应用。 该子集称为适用于 Windows 应用商店应用的 .NET,并在 Windows 开发人员中心的 概述中对其进行了讨论。
利用 Visual Studio 2012(和更高版本)中的可移植类库项目,您可以编写和生成在多个 .NET Framework 平台上运行的托管程序集。 使用可移植类库项目,您可以选择这些平台(如 Windows Phone 和适用于 Windows 应用商店应用的 .NET)作为目标。 项目中的可用类型和成员自动限制为这些平台中的公共类型和成员。 有关详细信息,请参阅使用 .NET Framework 的跨平台开发。