.Net各版本介绍及.net3.5新增功能

.Net各版本介绍及.net3.5新增功能

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/johnsuna/archive/2008/03/23/2208684.aspx

.Net 新技术不断翻新,.net框架的版本已经从1.0开始,经过1.1, 2.0, 3.0, 现在已到了3.5。很多人惊呼:变化太快了,我们刚刚学会一个,下一个又来了,似乎永远有学不完的东西!其实,当你爱上IT行业的那一刻起,就应该有“活到老,学到老”的思想准备。在IT业,也印证了“想说爱你不容易”这句时髦的流行语。

.net框架的版本不断更新,是旧瓶装新酒还是新瓶装旧酒?答案似乎更趋后者。且看如下公式:

.NET Framework 3.5 = .NET Framework 3.0 + .NET Framework 3.0 SP1
.NET Framework 3.0 = .NET Framework 2.0 + .NET Framework 2.0 SP1 + WPF + WCF + WF + WCS

.NET Framework 3.5 版以 .NET Framework 2.0 版和 .NET Framework 3.0 版为基础,包括 .NET Framework 2.0 和 3.0 版的 Service Pack。

.NET Framework 2.0 SP1: 它更新包含在 .NET Framework 2.0 中的程序集。
.NET Framework 3.0还包含 .NET Framework 3.0 中引入的技术所必需的程序集。例如,WPF等
.NET Framework 3.0 Service Pack 1,它更新在 .NET Framework 3.0 中引入的程序集(PresentationFramework.dll,PresentationCore.dll等)。

应用程序无论针对的是 .NET Framework 2.0、3.0 还是 3.5 版,都使用相同的程序集。
例如: 对于使用 WPF 并针对 .NET Framework 3.0 的应用程序,其所使用的 mscorlib 程序集实例与使用 Windows 窗体并针对 .NET Framework 2.0 的应用程序是相同的。如果 .NET Framework 2.0 SP1 已安装在计算机上,则 mscorlib.dll 已更新,并且两个应用程序将都使用 mscorlib.dll 的更新版本。

所以,有人又这么总结:

.NET 3.0 = .NET 2.0 SP 1 with WCF, WPF, WF and WCS
.NET 3.5 = .NET 2.0 SP 2 with LINQ, C# 3.0, WCF 2.0, WPF 2.0, WF 2.0 and ASP.NET Ajax

值得一提的是,.NET Framework 2.0、3.0 和 3.5 版之间的关系不同于 1.0、1.1 和 2.0 版之间的关系。.NET Framework 1.0、1.1 和 2.0 版是彼此完全独立的,对于其中任何一个版本来说,无论计算机上是否存在其他版本,自己都可以存在于该计算机上。当 1.0、1.1 和 2.0 版位于同一台计算机上时,每个版本都有自己的公共语言运行库、类库和编译器,等等。也就是,应用程序可以选择是针对 1.0、1.1 还是 2.0 版。

.Net版本比较表 .NET打包版本 1.0 1.1 2.0 3.0 3.5
CLR版本 1.0 1.1 2.0 2.0 2.0
C#编译器版本 1.0 1.1 2.0 2.0 3.0
VB编译器版本 7.0 7.1 8.0 8.0 9.0


版本兼容性

关于版本的兼容性,以下是MSDN的解释:
       .NET Framework 对向后和向前兼容性的支持与版本相关。.NET Framework 只对使用 1.1 版创建的应用程序支持向后和向前兼容性。在使用 2.0 版创建的应用程序中,.NET Framework 不支持向前兼容性。在 .NET Framework 的上下文中,向后兼容性意味着使用 .NET Framework 的较早版本创建的应用程序可以在更高的版本上运行。相反,向前兼容性意味着使用 .NET Framework 的更高版本创建的应用程序可以在较早的版本上运行。

       .NET Framework 提供高度的向后兼容性支持。例如,大多数使用 1.0 版创建的应用程序将在 1.1 版上运行,使用 1.1 版创建的应用程序将在 2.0 版上运行。只有对于 1.1 版,.NET Framework 还支持向前兼容性。但是,对于向前兼容性,可能需要修改应用程序以使应用程序按预期的方式运行。使用 2.0 版创建的应用程序将不在 .NET Framework 的早期版本上运行。对于向后和向前兼容性,对 .NET Framework 所做的可以提高安全性、正确性和功能性的更改也可能会引发兼容性问题。

.NET Framework 3.5 = .NET Framework 3.0 + .NET Framework 3.0 SP1
.NET Framework 3.0 = .NET Framework 2.0 + .NET Framework 2.0 SP1 + WPF + WCF + WF + WCS

下面略做相关简介,以便有个大致的认识:
.NET Framework 2.0
- 公共语言运行库 (CLR)。
- 对泛型类型和方法的支持。
- C#、Visual Basic、C++ 和 J# 的编译器。
- 基类库。
- ADO.NET。
- ASP.NET。
- Windows 窗体。
- Web 服务。

NET Framework 2.0 SP 1:
   更新了 .NET Framework 2.0 附带的 CLR 和一些程序集,并可以独立于 .NET Framework 3.5 进行安装。对 .NET Framework 2.0 的大部分更新都不是重大更改,但也有少数几处地方添加了新的 API 元素或更改了行为,属于重大更改。如果应用程序依赖新的或更改的功能,则建议应用程序以 .NET Framework 3.5 作为目标。如果应用程序依赖于 .NET Framework 2.0 SP1 附带的更改,则可以让应用程序以 .NET Framework 2.0 为目标,并要求客户下载 .NET Framework 2.0 SP1。

.NET Framework 3.0
   .NET Framework 3.0 需要在计算机上安装 .NET Framework 2.0。如果用户在未安装 .NET Framework 2.0 的计算机上安装 .NET Framework 3.0,则会自动安装 .NET Framework 2.0。
   以下技术是随着 .NET Framework 3.0而 引入的新技术:
- Windows Presentation Foundation (WPF)。
- Windows Communications Foundation (WCF)。
- Windows Workflow Foundation (WF)。

NET Framework 3.0 SP 1
    它更新了 .NET Framework 3.0 附带的一些程序集,并可以独立于 .NET Framework 3.5 进行安装。更新的内容包括非重大更改、新的API 元素和针对 .NET Framework 3.0 附带的技术的附加功能。如果应用程序依赖于新功能,则建议应用程序以 .NET Framework 3.5 为目标。如果应用程序依赖于 .NET Framework 3.0 SP1 附带的更改,则可以让应用程序以 .NET Framework 3.0 为目标,并要求客户下载 .NET Framework 3.0 SP1。
    安装 .NET Framework 3.0 SP1 时,将会安装 .NET Framework 2.0 SP1(如果尚未安装在计算机上)。

.NET Framework 3.5引入的新技术包括:
- LINQ。
- C#、Visual Basic 和 C++ 的新编译器。
- ASP.NET AJAX。
- 基类库中的附加类型。

再次强调:应用程序无论针对的是 .NET Framework 2.0、3.0 还是 3.5 版,都使用相同的程序集。


上文做了简要介绍,下面根据MSDN上的具体描述,作了资料整理:

.NET Framework 3.5 版中的新增功能体现在以下诸多方面:
- .NET Compact Framework
- ASP.NET
- 外接程序和扩展性(AddIn)
- 公共语言运行库
- 密码(Cryptography)
- 网络
- WPF(Windows Presentation Foundation)
- WCF(Windows Communication Foundation)
- WF (Windows Workflow Foundation)
- Windows窗体(Windows Forms)
- LINQ
- 表达式目录树(Expression Trees)
- C#,C++.net, VB.net等编程语言的丰富和完善

.NET Compact Framework

    .NET Compact Framework 3.5 版 通过包含 Windows Communication Foundation (WCF) 技术扩展了对分布式移动应用程序的支持。它还添加了新的语言功能(如 LINQ)和基于社区反馈的新 API,并使用更新的诊断工具和功能来改进调试。

ASP.NET

(1)支持 AJAX(一组新的服务器控件和 API)
    .NET Framework 3.5 针对 ASP.NET 和 Visual Web Developer 中的特定方面提供了增强功能。

   - 一组新的服务器控件
     ScriptManager 控件和 UpdatePanel 控件
    .NET Framework 3.5 改进了对支持 AJAX 的网站的开发支持。ASP.NET 支持使用一组新的服务器控件和 API 进行以服务器为中心的 AJAX 开发。通过添加 ScriptManager 控件和 UpdatePanel 控件,可以让现有 ASP.NET 2.0 页面支持 AJAX 功能,这样更新页面时将无需整页刷新。

   - API (Microsoft AJAX Library)
     ASP.NET 还支持使用名为 Microsoft AJAX Library 的新客户端库进行以客户端为中心的 AJAX 开发。Microsoft AJAX Library 支持以客户端为中心、面向对象且独立于浏览器的开发。借助 ECMAScript (JavaScript) 中的库类,可以提供丰富的 UI 行为,而无需反复访问服务器。您可以根据应用程序的需要,调整以服务器为中心和以客户端为中心这两种开发模式的比例。

   - Visual Web Developer 还包括改进的对 JavaScript 的 IntelliSense 支持和对 Microsoft AJAX Library 的支持。

(2)支持创建基于 ASMX 和 WCF 的 Web 服务
    现在,ASP.NET 和 Visual Web Developer 支持创建基于 ASMX 和 WCF 的 Web 服务,还支持在采用了 Microsoft AJAX Library 的网页中无缝使用任一实现。此外,包括 Forms 身份验证、角色管理和配置文件的服务器端应用程序服务现已作为 Web 服务公开,这些服务可以在 WCF 兼容应用程序(包括客户端脚本和 Window 窗体客户端)中使用。ASP.NET 允许所有的基于 Web 的应用程序共享这些公共应用程序服务。

(3)其他改进:

    - ListView: 用于显示数据的新数据控件;
         ListView 是一个可高度自定义的控件(使用模板和样式),该控件还支持编辑、插入和删除操作以及排序和分页功能。一个名为 DataPager 的新控件为 ListView 提供了分页功能。

    - LinqDataSource:通过 ASP.NET 数据源控件结构向 Web 开发人员公开语言集成查询 (LINQ) 的新数据源控件;

    - Aspnet_merge.exe:用于合并预编译程序集的新工具 ASP.NET 合并工具;
        可以用它来合并程序集以支持各种部署和发布管理方案。

    - 与 IIS 7.0 的紧密集成。
         ASP.NET 和 IIS 7.0 的集成提供了对任何内容类型使用 ASP.NET 服务(如身份验证和缓存)的能力,还提供了使用 ASP.NET 托管代码开发服务器管线模块的能力,并且支持模块和处理程序的统一配置。

    - Visual Web Developer 中的其他改进:
       多目标支持、包含 Web 应用程序项目、新的“设计”视图、新的级联样式表 (CSS) 设计工具以及对 LINQ for SQL 数据库的支持。
        - 多目标功能使您能够使用 Visual Web Developer 针对特定的 .NET Framework 版本(包括 2.0、3.0 和 3.5 版)开发 Web 应用程序。
        - Visual Studio 2008 和 Visual Web Developer 速成版中新增:
          新的“设计”视图和 CSS 设计工具: 象Dreamweaver一样,使用网页设计器,可以在“设计”视图、“源”视图或“拆分”视图(同时显示“设计”视图和“源”视图)中工作。

 

NET Framework 3.5 版中的新增功能体现在以下诸多方面:
- .NET Compact Framework
- ASP.NET
- 外接程序和扩展性(AddIn)
- 公共语言运行库
- 密码系统(Cryptography)
- 网络
- WPF(Windows Presentation Foundation)
- WCF(Windows Communication Foundation)
- WF (Windows Workflow Foundation)
- Windows窗体(Windows Forms)
- LINQ
- 表达式目录树(Expression Trees)
- C#,C++.net, VB.net等编程语言的丰富和完善

外接程序和扩展性(AddIn)
    .NET Framework 3.5 中的 System.AddIn.dll 程序集向可扩展应用程序的开发人员提供了强大而灵活的支持。它引入了新的结构和模型,可帮助开发人员完成向应用程序添加扩展性的初始工作,并确保开发人员的扩展在宿主应用程序发生更改时仍可继续工作。该模型提供了以下功能:

- 发现
    使用 AddInStore 类可以很容易地在计算机上的多个位置中查找和管理外接程序集。可以使用此类来按照外接程序的基类型搜索和获取有关它们的信息,而不必加载它们。

- 激活
    使用 AddInToken 类可以轻松地激活应用程序选中的外接程序。只需选择隔离和沙盒级别,系统就会完成剩余的工作。

- 隔离
    提供了对应用程序域和外接程序的进程隔离的内置支持。每个外接程序的隔离级别由宿主控制。系统将处理应用程序域和进程的加载,并在这些域和进程的外接程序停止运行后关闭它们。

- 沙盒
    可以轻松地将外接程序配置为具有默认信任级别或自定义信任级别。提供的支持包括 Internet、Intranet、完全信任和“与宿主相同”权限集,以及让宿主指定自定义权限集的重载。

- UI 构成
    外接程序模型支持直接构成跨应用程序域边界的 Windows Presentation Foundation (WPF) 控件。可以轻松地允许外接程序直接构成宿主的 UI,同时保留隔离、卸载能力、沙盒和版本控制的好处。

- 版本控制
    外接程序结构使宿主可以引入新版本的宿主对象模型,而不中断现有外接程序或不影响开发人员对新版本的体验。


公共语言运行库(Common Language Runtime)

- HashSet 集合
    HashSet<(Of <(T>)>) 提供对 .NET Framework 的高性能集合运算。集合是一组不重复出现且无特定顺序的元素。有关更多信息,请参见 HashSet 集合类型。

- 诊断 (EventSchemaTraceListener 类)
    EventSchemaTraceListener 类提供端到端、符合架构的事件的跟踪。可以对包含跨线程、AppDomain、进程和计算机边界的异类组件的系统使用端到端跟踪。已定义一个标准化事件架构来启用跨这些边界的跟踪。此架构由多种跟踪技术共享,其中包括类似事件查看器这样的 Windows Vista 诊断工具。该架构还可支持添加符合架构的自定义元素。
    EventSchemaTraceListener 类已针对日志记录性能进行了调整,现在隐式支持无锁定的跟踪。

- I/O 和管道
    管道提供在同一台计算机上或网络中任意其他 Windows 计算机上运行的任何进程之间的进程间通信。.NET Framework 提供对两种类型的管道的访问:匿名管道和命名管道。

- 垃圾回收(GCSettings 类和GC 类)
    GCSettings 类具有一个新的 LatencyMode 属性,可用来调整垃圾回收器侵入应用程序的时间。可以将此属性设置为新的 [System.Runtime.GCLatencyMode] 枚举值之一。
    GC 类具有一个新的 Collect(Int32, GCCollectionMode) 方法重载,可用来调整强制垃圾回收的行为。例如,可以使用此重载来指定垃圾回收器应确定当前时间是否为回收对象的最佳时间。此重载采用新的 GCCollectionMode 枚举中的值。

- 部分信任环境中的反射和反射发出(DynamicMethod)
    现在,在部分信任下运行的程序集可以发出并执行代码。已发出的只调用公共类型和方法的代码不需要超出所访问的类型和方法要求的权限。使用新的 DynamicMethod(String, Type, array<Type>[]()[]) 构造函数可以很容易地发出类似的代码。
    当发出的代码需要访问私有数据时,新的 DynamicMethod(String, Type, array<Type>[]()[], Boolean) 构造函数将允许进行受限制的访问。宿主必须授予 ReflectionPermission 新的 RestrictedMemberAccess 标志以启用此功能,这使发出的代码能够访问私有数据,但仅对具有等于或小于信任级别的程序集中的类型和方法适用。
    对于反射,授予 RestrictedMemberAccess 的宿主同样允许受限制地使用用来访问私有属性、调用私有方法等的方法,但仅对具有等于或小于信任级别的程序集适用。

- 线程处理
    更好的读取器/编写器锁(ReaderWriterLockSlim)
       新的 ReaderWriterLockSlim 类提供明显优于 ReaderWriterLock 的性能,可与 lock 语句相当(在 Visual Basic 中为 SyncLock)。锁定状态之间的转换已得到简化,从而使编程更容易并减少发生死锁的几率。新类支持递归,可简化从 lock 和 ReaderWriterLock 的迁移。
    ThreadPool 性能增强
       显著提高了在托管线程池中调度工作项和 I/O 任务的吞吐量。现在,调度可在托管代码中进行处理,而无需转换到非托管代码,并且具有较少的锁。建议对特定于应用程序的线程池实现使用 ThreadPool。

- 时区改进(DateTimeOffset 和 TimeZoneInfo)
      两种新的类型 DateTimeOffset 和 TimeZoneInfo 改进了对时区的支持,可以更容易地开发使用不同时区中的日期和时间的应用程序。
    TimeZoneInfo
       新的 TimeZoneInfo 类在很大程度上取代了现有的 TimeZone 类。可以使用 TimeZoneInfo 来检索注册表中定义的任何时区,而不仅仅是本地时区和协调世界时 (UTC)。还可以使用此类来定义自定义时区、序列化和反序列化自定义时区数据以及在时区之间转换时间。
    DateTimeOffset
       新的 DateTimeOffset 结构对 DateTime 结构进行了扩展,可以更容易地使用跨时区的时间。DateTimeOffset 结构将时间和日期信息存储为一个 UTC 日期和时间以及一个指示该时间与 UTC 之差的偏移量值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值