“虽然业界对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
4、改进的ViewState
ViewState 在 ASP.NET 中有个重要的角色。如果使用恰当,它能够简化页面开发,改进用户与站点的交互。如果置之不理,它能够显著增加站点响应大小,在连接速度慢的情况下,使您的 响应时间更加缓慢。ASP.NET 2.0 的发布带来了 ViewState 机制的一些改进,这使得 ViewState 使用更简单,又不会防碍站点性能。这些改进包括:减少编码数量,采用控件状态从内容中分离出行为状态,以及智能集成数据绑定控件。
5、URL映射
使用这个特性我们可以不安全的浏览器地址映射成另一个我们设定的地址,避免出现安全问题。
<!--[if !supportLists]-->6、 <!--[endif]-->新增加不少的类,同时很多类被重写,或添加新功能
<!--[if !supportLists]-->1、 <!--[endif]-->串口操作
新增System.IO.Ports命名空间,提供了SerialPort类来实现串口操作的功能。
<!--[if !supportLists]-->2、 <!--[endif]-->压缩解压
新增System.IO.Compression命名空间,用来处理常用的文件压缩或解压。
<!--[if !supportLists]-->3、 <!--[endif]-->范型
新增System.Collections.Generic命名空间,提供范型支持。
4、网络处理功能增强
新增System.Net.NetworkInformation命名空间,包含了一大堆类型,里面有一个Ping类,就是来实现ping命令的功能。
5、使用FTP
在System.Net 中看到增加了FtpWebRequest和FtpWebResponse两个类,这次可以直接使用Ftp了,不需要再使用第三方的组件。
6、使用SmtpClient
在System.Net.Mail命名空间中提供了对邮件操作的支持。
7、使用多媒体
在System.Media命名空间中提供了一些处理声音的类,不过好像没有看到支持视频的,要使用还是要调用Media Player的组件。
<!--[if !supportLists]-->7、 <!--[endif]-->用户界面控制
asp.net2.0母版页面(Master Pages),可以实现统一的布局效果,可以对系统布局进行集中控制。
<!--[if !supportLists]-->二、 <!--[endif]-->开发环境比较
除了启动速度慢、占用系统资源较多这个缺点外,Visual Studio 2005与Visual Studio 2003相比在易用性,功能方面有了很大的提高。
<!--[if !supportLists]-->1、 <!--[endif]-->支持代码重构
<!--[if !supportLists]-->2、 <!--[endif]-->支持单元测试,自动生成单元测试代码
(1)对私有方法的单元进行测试
使用 Visual Studio 对公共方法进行单元测试,跟以前 NUnit 一样,都是引用需要的类,然后对公共方法进行测试。
(2)用户界面自动化测试
想必大家对类的单元测试已经比较熟悉,这里我们来看看它提供的另一项更为有趣的测试——用户界面自动化测试。事实上这个测试的本质仍是单元测试,单元测试的各种方法在用户界面测试中仍然可用。
而这些测试只需在需要进行测试的方法上简单地点击鼠标右键,在右键菜单中选择 “创建单元测试”,系统就自动产生了这个方法的单元测试代码。
3、类设计器
使用 Visual Studio 类设计器可以显现类和其他类型的结构,还可以通过可视化表示方法编辑它们的源代码。对类图的更改将直接反映在代码中,且对代码的更改会直接影响设计器的外观。设计器和代码之间的同步关系,使得可视化创建和配置复杂的 CLR 类型变得容易。
类设计器包含一些专门设计的功能,这些功能将有助于重构代码、方便地重命名标识符以及重载方法。您可以自动生成类和结构,并通过自动生成存根可以实现接口。
最后,类设计器也可作为通信工具使用,您可以使用它与同事共享代码库区域。类图可以打印成硬拷贝或另存为图像,以便在 HTML 页或 PowerPoint 演示文稿中显示。
<!--[if !supportLists]-->3、 <!--[endif]-->更多更好用的服务器控件
在ASP.NET 2.0中微软内置了更多控件,在1.x中需要程序员费尽心思才能完成的功能,在2.0中只需要简单的套用这些控件就能完成。
<!--[if !supportLists]-->4、 <!--[endif]-->开发和调试彻底摆脱了虚拟目录
1.x版本的asp.net必须信赖虚拟目录进行调试和运行,现在asp.net2.0版本自带一个 development web server进行调试,省去了配置虚拟目录的麻烦。
三、Visual Studio 2005 team suite介绍
Visual Studio 2005 Team Suite 是 Visual Studio 2005 Team System 的一个组成部分,可为软件开发核心团队中的每个成员提供最全面的、用于软件设计、开发和测试的工具集。此外,Team Suite 还为具有多方面专业技能的团队成员提供了极大的灵活性,使他们可以在同一个熟悉的 Visual Studio 开发环境中快速适应结构设计师、开发人员和测试人员的工作。Team Suite 还基于microsoft使用了多年的工具为您提供了用于创建世界一流软件的新功能。当将 Team Suite 与microsoft Visual Studio 2005 Team Foundation Server 一起使用时,Team Suite 可以更好地加强团队的沟通和协作,并可为项目的利益相关方提供有关软件开发过程的、前所未有的透明性。
VS2005采用软件开发生命周期,作为企业在选择信息系统发展方法论(System Development Methodology)时的标准流程,其特征是将开发流程区分为几个连续阶段(3个~20个不等),标示着不同的系统发展成果,实作时则配合专门的技术 角色(分析师、架构师、开发人员、测试人员与项目经理等),目的是容易管理、分层负责与确保软件质量。VS2005则在软件开发生命周期中定义出区分架构 师(Architect)、开发人员(Developer)、测试人员(Tester)与项目经理(Project Manager),并将软件依角色区分为3种版本:Team Architect、Team Developer、Team Tester等,项目经理的权责则包含在Excel或Project上,可与Team System整合。