技术开发 频道

超出预期 .net2.0 与1.1之比较

[it168技术文档]

“虽然业界对Visual Studio 2005的期望值很高,但它正式推出后,依然远远超出业界的预期。以.NET Framework 2.0为基础的Visual Studio 2005包括微软5年来对.NET 1.0的所有修正。在1.0中还需花费大量时间编写代码的功能,在2.0几乎不需要再写代码或者只需短短几行代码就可以完成。更重要的是,.NET Framework 2.0增添了的不少新类,同时相当多的类被重写,并赋予新的功能,从某种角度来说,2.0更像一种新的语言,由于它的严重“超值”,引来不少开发人员得抱怨。除此以外,微软努力使Visual Studio 2005更适应团队开发,落实了生命周期管理和流程管理,整合了单元测试功能。在2000年我们震惊于.NET 1.0,今天Visual Studio 2005带来的无疑是第二次震撼。”--------天极开发者网络

一、asp.net 2.0的先进性。

asp.net2.0将成为下一代Windows应用程序的基础支柱并集成在Windows Vista之内。

<!--[if !supportLists]-->1、 <!--[endif]-->支持泛型

泛型就是将类型参数化,实现更加广泛的复用。由于减少了装箱和拆箱,泛型对于值类型的对象性能提升明显。

(1) 对于int这样的简单值类型,泛型能够提高2-5倍的速度。数据量越大,越明显。

(2) 对于复杂的值类型,泛型能够提高30%-300%。数据量越大,越明显。

(3) 对于引用(Reference)类型,泛型和传统的方式速度相当。

(4) 泛型是 C# 2.0 的最强大的功能。通过泛型可以定义类型安全的数据结构,而无须使用实际的数据类型。这能够显著提高性能并得到更高质量的代码,因为您可以重用数据处理算法,而无须复制类型特定的代码。

<!--[if !supportLists]-->2、 <!--[endif]-->微软的asp.net ajax(原来叫atlas)与asp.net2.0无缝集成

为了改善用户体验,我们应该在项目中尽可能使用ajax技术来减少页面刷新。

与 .NET 和 Java 平台下其它 AJAX 框架相比,微软的asp.net ajax框架最大的亮点就在于与 ASP.NET 现有机制的无缝融合。通过 VS.NET 集成开发环境,使用者可以在对 js 和 AJAX 不甚了解的情况下,以非常自然的方式使用到非常先进的技术。此外直接在 js 一级提供 WebService 的调用支持,也大大降低了对 ws 技术的使用门槛。而 ASP.NET 中一直引以为豪的数据绑定等技术,也可以在 Altas 中无缝得到支持,让现有投资能够最大限度得到保护。从这些意义上来说,虽然 Altas 在 AJAX 理念上没有太多突破,但不失为一个强大且实用的 AJAX 框架,非常符合 MS 在技术运用上的一贯原则。

传统的 WEB 应用程序模型是这样工作的:用户的界面操作触发 HTTP 请求,服务器在接收到请求之后进行一些业务逻辑处理,如保存数据等,然后向客户端返回一个 HTML 页面。但这种方式并没有给予用户很好的应用体验,当服务器在处理数据的时候,用户则处于等待的状态,每一步操作都需要等待,太多的等待会使用户越来越没有耐心。而 Ajax 则大不相同,它通过 Ajax 引擎,使得应用过程很自然,操作很流畅,因为其只和服务器交换有用的数据,而页面显示等不必要的数据则不再重新加载,通过适当的Ajax应用达到更好的用户体验而且可以把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担。

ASP.NET AJAX是微软进军跨平台网络功能领域的作品,用于异步JavaScript的网络开发,可以让开发人员开发出更具互动行动网络应用,提高用户个性化水平。ASP.NET AJAX 1.0的主要功能有:异步客户端到服务器网络、服务器端ScriptManager和ScriptManagerProxy控件、客户端Trace类、Timer控件、Selector控件、JavaScript认证等等。

<!--[if !supportLists]-->3、 <!--[endif]-->使用ADO.NET2.0

(1)、新的索引引擎:

在 ADO.NET 2.0 中已经彻底重新编写了用于 DataTable 的索引引擎,并且使其能够更好地针对大型数据集进行伸缩。这会使基本的插入、更新和删除操作变得更加快速,从而使 Fill 和 Merge 操作变得更快。

(2)、流到缓存,缓存到流

对于 ADO.NET 2.0 中的 DataSet 和 DataTable 类的另一个主要增强是,提供了用来消耗 DataReader(将数据加载到 DataTable 中)以及在 DataTable 的内容之上公开 DataReader 的机制。

有时,我们具有(或收到)DataReader 形式的数据,但实际上是希望具有缓存 DataTable 形式的数据。通过新增的 Load 方法,我们可以获得现有的 DataReader,并使用它的内容来填充 DataTable。

有时,我们具有(或收到)缓存形式的数据 (DataTable),并且需要通过 DataReader 类型接口来访问它。通过新增的 GetTableReader 方法,我们可以获得现有的 DataTable,并通过 DataReader 接口和语义来访问它。

(3)、很多以前DataSet的方法,现在可以用DataTable直接使用了

大多数 .NET 开发人员都知道 DataTable 本身(没有封装在 DataSet 内部)极为有用,并会利用这一事实。但是,在某些情况下,我们无法通过 DataTable 完成我们希望完成的工作,除非我们首先获得它并将其强行转换为 DataSet。这方面的最突出并且通常令人痛苦的示例是在 DataTable 中读取和写入(加载和保存)XML 数据。在 ADO.NET 1.x 中,我们必须首先将 DataTable 添加到 DataSet 中,只有这样我们才能读取或写入 XML,这是因为完成该工作的方法只能在 DataSet 上使用!

ADO.NET 2.0 的目标之一是使独立的 DataTable 类比在 ADO.NET 1.x 中更为实用和有用。

DataTable 可单独序列化,并且可以在 Web 服务和远程处理方案中使用。

 

附:ADO.NET 2.0 中的新增 DataSet 功能

http://www.microsoft.com/china/MSDN/library/NetFramework/default.mspx?mfr=true

0
相关文章