WEB开发网
开发学院软件开发VC 微软Visual Studio2005开发工具路线图详解 阅读

微软Visual Studio2005开发工具路线图详解

 2007-03-15 21:48:11 来源:WEB开发网   
核心提示:随着企业需要的不断演变,Microsoft 依旧致力于提供创新的开发人员工具来满足这些不断变化的需求,微软Visual Studio2005开发工具路线图详解,从而确保客户的成功,为帮助组织规划未来的软件开发工作,Microsoft 将继续履行其提供高生产率工具的承诺,以便帮助客户在生成范围广泛的软件解决方案的同时,M
 随着企业需要的不断演变,Microsoft 依旧致力于提供创新的开发人员工具来满足这些不断变化的需求,从而确保客户的成功。为帮助组织规划未来的软件开发工作,Microsoft 提供了一个开发人员工具计划版本的路线图(如下):

Visual Studio 2005(以前称为“Visual Studio 代号 Whidbey”)。该版本的 Visual Studio 与 .NET Framework 共同提供对类库、公共语言运行库 (CLR)、编程语言和集成开发环境 (IDE) 的革新和增强。此外,该产品还使开发人员能够编写存储过程,从而提供对 SQL Server 2005(以前称为“SQL Server 代号 Yukon”)的深入支持。

Visual Studio 代号“Orcas”。该版本的 Visual Studio 和 .NET Framework 为代号为“Longhorn”的 Windows 操作系统提供工具支持。


图 1. 开发人员工具路线图

生成 Microsoft 开发人员工具的目的始终围绕着使开发人员能够利用 Windows 平台中的最新进展这一主题。如图 1 所示,Microsoft 提供支持即将面世的 SQL Server 和 Windows 操作系统版本的工具,从而继续发扬了这一传统。

Visual Studio 2005

该版本的 Visual Studio 2005 和 .NET Framework 2.0 将在应用程序开发的所有方面取得大幅进展。首先,Visual Studio 2005 根据开发人员个人的需要调整软件开发体验,设置新的开发人员工作效率标准。这一“个性化工作效率”将在开发环境和 .NET Framework 类库中提供相应的功能,以帮助开发人员在最少的时间内克服其最为紧迫的困难。其次,Visual Studio 2005 使开发人员能够通过与 Microsoft Office System 和 SQL Server 2005 的更好集成,在更广泛的应用程序开发方案中应用现有的技能。最后,Visual Studio 2005 将提供一组新的工具和功能,以满足目前大规模企业的应用程序开发需要。

Visual Studio 2005 的中心内容包括:



HYPERLINK l "language" 语言和 IDE 工作效率。作为 Visual Studio 一部分的四种语言(Visual Basic、Visual C++、Visual C# 和 Visual J#),Microsoft 为其每一种语音都构建了独特的特征。这一语言上的革新将丰富每个开发人员群体的编程体验,而不会牺牲现有的语言功能和互操作性。通过语言革新展现的功能将由 IDE 体现,并且为所有的开发人员团体提供个性化的工作效率。



Microsoft .NET Framework。.NET Framework 2.0 将在 .NET Framework 类库中引入增强功能。通过新的控件和设计器功能,将简化 Windows 客户端应用程序开发,而“ClickOnce”技术的引入将显著简化 Windows 客户端应用程序部署。ASP.NET 2.0 引入一组新的功能,以改善 Web 应用程序开发并在根本上减轻编码工作。其他增强功能包括,更有效的 ADO.NET 数据访问、对最新 Web 服务标准的支持以及基于设备的开发的扩展功能。



Microsoft Office 解决方案开发。Visual Studio 2005 Tool for Microsoft Office System 版本将显著增强基于 Microsoft Office Excel 2003 和 Microsoft Office Word 2003 的业务解决方案的开发。生成 Office 解决方案的开发人员将得益于以下几方面:Visual Studio 和 Office 之间改进的集成、熟悉的编码体验、改善的安全性和部署。



SQL Server 2005 解决方案开发。SQL Server 2005 将数据库对象的开发与调试集成到 Visual Studio 2005 开发环境中,从而使开发人员能够使用与其目前用于编写托管组件和应用程序相同的工具来生成和部署数据库对象。



企业开发和生存期支持。Microsoft 计划在 2005 版本中为架构师和企业开发人员提供改善的支持。新的工具将提供增强的项目分析和设计、软件配置管理和部署,以及可伸缩的、新的生成引擎,以确保 Microsoft 开发人员工具能够跨越应用程序生存期。

语言和 IDE 工作效率

通过 Visual Studio,Microsoft 提供了四种用于生成软件的编程语言。在 Visual Studio 2005 中,Microsoft 将对 Visual Basic、Visual C++、Visual C# 和 Visual J# 的独特功能进行扩展,以便为一系列软件的开发提供丰富的语言服务。这些通过 IDE 展现的语言革新将与增强的 IDE 配置文件和直观的帮助系统协同工作,以便根据开发人员团体的需要提供有效率的自定义开发体验(图 2)。


图 2. 自定义的帮助和改进的 IDE 配置文件使开发人员能够使用 Visual Studio 2005 开发环境更有效地访问信息。

Visual Basic

Visual Basic 的 2005 版本将继续提供对 .NET Framework 的完全访问,同时显著提高开发人员的工作效率。Visual Basic 2005 的主要设计目标包括:减少完成常见任务所需的代码数量;在设计时显著减少编程错误;简化数据访问;改善 RAD 调试体验;为高级 Visual Basic 开发人员提供高端功能。

Visual Basic 2005 将与很多常见编程任务相关联的编码数量至少减少 50%。新的对象和方法将提供对 .NET Framework 中最常用功能的有效访问,这些功能包括与项目有关的资源(如窗体、数据源和 Web 服务)以及计算机级别组件(如打印机、文件系统和注册表)。图 3 中的代码显示一个示例,该示例对上述 Visual Basic 语言扩展如何显著简化常见操作所需的代码进行说明。

Visual Basic .NET 2003

Const GreetingName As String = "Greeting"Dim sDisplay As ObjectDim
ResMgr As ResourceManagerResMgr = New ResourceManager
("ResourcesSample.MyStrings",_Me.GetType.Assembly)
sDisplay = ResMgr.GetString(GreetingName)

Visual Basic 2005

My.Resources.MyStrings.Greeting


图 3. My. 类的使用为 Visual Basic 开发人员提供了对 .NET Framework 中常用功能的更为快速的访问。

此外,Visual Basic 代码编辑器将提供预生成的代码模板,以使开发人员能够“填充空白”,并且集中精力解决手头的问题,而不是解决语言语法问题(图 4)。开发人员还能轻松地创建并分发自己的自定义代码片段。


图 4. 代码片段自动创建常见编程任务。

Visual Basic 代码编辑器中的新功能将在设计时为初级和高级开发人员减少编程错误。通过提供与 Microsoft Word 拼写和语法检查类似的功能,Visual Basic 2005 将提出对常见语法错误的纠正。

图 5 显示的智能标记为命名错误的类型提出纠正。要捕获的错误示例包括:忘记引用所需的程序集;试图用不正确的签名重写方法,以及拼错类名。此外,编译器将针对可能导致运行时错误(如试图在初始化之前访问代码元素)的语义错误代码,对开发人员提出警告。


图 5. 智能标记为 Visual Basic 代码提供自动语法纠正机制。

Visual Basic 2005 还将从根本上增强操纵和检索数据的体验。来自开发环境中的简化数据源设计将用于本地和远程数据、业务对象和 Web 服务。Visual Basic 2005 还将重新引入无需代码即可创建数据绑定窗体的功能。该功能对于很多常见的数据访问方案而言都是理想的,而对于要求最高的分布式应用程序而言又具有足够的健壮性和可伸缩性;它将使开发人员能够在将表或列拖放到窗体中时自动生成可自定义的数据绑定 UI。

Visual Basic 2005 将提供对 Visual Basic 开发人员而言既强大又熟悉的调试体验。在重新引入“编辑并继续”功能以后,开发人员将能够修改并测试源代码,而无需停止和重新启动调试会话。调试器的进步将使开发人员可以截获异常、获得有关异常的附加信息,并根据情况继续(图 6)。这一迭代开发和调试周期与中断模式下的高级错误纠正和代码分析相结合,为使用 Visual Basic 的开发人员提供既强大又灵活的调试体验。


图 6. 异常帮助器使开发人员能够更有效地诊断运行时错误。

在开发之后,通过引入“ClickOnce”部署,Visual Basic 2005 能简化将已完成的 Windows 客户端应用程序部署到用户计算机的任务。使用该技术,开发人员将能够创建可通过 Web 页、文件共享或其他媒体分发的应用程序包。应用程序用户只需单击分发包以安装该应用程序及其所有必备组件。有关 ClickOnce 部署和 Visual Basic 2005 中其他部署改进的详细信息,请参阅下文。

对于已在 Visual Basic 6.0 代码方面进行了投入的开发人员而言,Visual Basic 2005 将包含对 Visual Basic 升级向导的多项关键改进。虽然 Visual Basic .NET 2003 提供的当前版本的升级向导能成功地升级多达 95% 的应用程序,但 Visual Basic 2005 中的改进将通过对升级 COM+ 项目的支持、附加 Visual Basic 6.0 控件(包括 TreeView、ListView 和 MaskedEdit 控件)以及对升级涉及编程打印的代码的增强支持来提高这一比率。升级向导还利用 Visual Basic 2005 中引入的很多新语言功能来产生更干净且更容易维护的升级代码。

对于更高级的 Visual Basic 开发人员,语言增强功能包括对运算符重载、无符号数据类型和不完全类型的支持。此外, 使用 Visual Basic 的开发人员将能够访问跨多种数据类型促进代码重用的泛型的 CLR 实现。Visual Basic 2005 将引入内联的 XML 文档注释,以帮助开发人员创建易于在企业内外部署的具有完备资料的应用程序。最后, Visual Basic 2005 开发人员将继续具有对 .NET Framework 中的所有类和功能的完全和直接访问权限。

像以前的同类产品一样,Visual Basic 2005 将专门致力于使开发人员能够快速生成跨越所有层的应用程序。计划中横跨可视设计器、代码编辑器、语言和调试器的增强功能将极大提高工作效率,从而使开发人员能够更快地创建健壮、一流的应用程序,并能够在 Web、业务组或企业中部署它们。

Visual C++

Visual C++ 2005 将为面向 Windows 和 .NET Framework 的系统和应用程序开发人员提供比其较低版本更多的功能和更细粒度的控制。 人们计划在该产品的所有领域(包括语言、编译器和核心库)进行关键改进。这些增强功能将使 C++ 开发人员能够更有效地面对 CLR、优化代码的性能、面对 64 位 Windows 以及提高应用程序的安全性。此外,Visual C++ 2005 将 使开发人员能够直接在 Visual Studio 2005 IDE 中为移动设备生成本机 C++ 应用程序。(有关嵌入式 C++ 开发的详细信息,请参阅 “基于设备的开发”一节)。

通过 Visual C++ .NET 2002 版和 2003 版,托管扩展使开发人员能够显式利用 CLR 和 .NET Framework。在 Visual C++ 2005 中,现有的托管扩展语法将继续得到完全支持。此外,Visual C++ 将通过强大的新功能以及用于编写托管代码的更为优雅的语法为 CLR 和 .NET Framework 提供扩展支持。该语法现正在作为到 ECMA 标准化公共语言基础结构 (CLI) 的 C++ 绑定而进行 ECMA 标准化。这一新语法将称为 C++/CLI。

C++ 语言的 C++/CLI 子集主要将在 Visual C++ 2005 中实现,并将为 Visual C++ 开发人员提供很多新功能。C++ 开发人员将第一次能够使用真正的 C++ 编程范型编写 .NET 连接的应用程序。例如,将为由 CLR 和垃圾回收器管理的代码和数据启用 C++ 模板和 C++ 样式的确定性终止。此外,C++/CLI 还为 C++ 提供很多 CLR 编程范型,包括泛型的 CLR 实现。

C++/CLI 还简化了定义和使用托管数据类型的方式。新标准引入的关键字对于 C++ 开发人员而言,比当前托管扩展的下划线-下划线 关键字更为直观。在 C++/CLI 中,ref 关键字用来以与托管扩展 __gc 关键字类似的方式定义垃圾回收类:

ref class MyRefClass { /* ... */ };

此外,C++/CLI 还引入一种新的类型 — 句柄,该类型用来表示自动垃圾回收的使用。句柄借用指针的语法,但使用加字符号 (^) 而不是星号 (*)。关键字 gcnew 用于创建上述垃圾回收对象,并且返回一个句柄:

MyRefClass ^ c = gcnew MyRefClass();

通过 C++/CLI,开发人员还将能为句柄类型合并入传统的 C++ 样式确定性终止。这意味着可使用正常的 C++ 堆栈分配语法选择性地将引用类型作为对象进行实例化。这样,该对象将在脱离作用范围时自动调用它的析构函数。该功能启用了在其他面向 CLR 的语言中不可用的编程风格。

除了 C++/CLI 支持以外,Visual C++ 编译器还将为面向 CLR 的代码提供多个代码生成增强功能。这些增强功能包括:能够指定不包含本机 x86 指令的“纯粹”图像,以及通过 CLR 验证过程的“安全”图像。而且,Visual C++ 2005 编译器能够比其他托管语言更好地优化 MSIL。

为 Visual C++ 2005 中的 C++ 编译器规划了很多增强功能,其中之一便是 Profile Guided Optimizations (POGO)。POGO 技术使编译器能够测量应用程序的各种数据,并收集有关应用程序在运行时使用方式的信息。这些信息使 Visual C++ 能够基于真实的应用程序使用模式进一步优化生成的代码。目前,在免费下载的 Platform SDK (PSDK) 中附带有 64 位 POGO 技术的预发布版本。在 Visual C++ 2005 中,该技术将扩展到核心 32 位编译器,且有关的支持将集成到 IDE 中(图 7)。


图 7. Visual C++ 2005 中的 POGO 支持将通过规范和运行时分析来优化应用程序。

该版本还将包含目前在 PSDK 中仅以预发布形式提供的 64 位 C++ 编译器。这些编译器使 Visual C++ 开发人员能够编写面向在 Intel 和 AMD 硬件上运行的 64 位版本 Windows 的非托管代码。对面向 64 位 Windows 的支持将完全集成到 IDE 中(图 8)。


图 8. Visual C++ 2005 中的平台支持范围被扩展以包括 64 位 Windows 以及各种移动设备。

除语言和编译器增强功能以外,Visual C++ 2005 还为核心 C++ 库(如 Microsoft 基础类库 (MFC)、标准模板库 (STL) 和 C 运行时库 (CRT))提供改进和增强。这些增强将使 C++ 开发人员能更好地支持 .NET Framework,并提供内置的应用程序安全性。

首先,将引入新版本的标准模板库 (STL)。该版本的 STL 将被调整以与托管代码和数据进行交互。那些习惯于使用 STL 编写传统 C++ 应用程序的程序员将发现,他们能应用相同的编码技术来编写基于 CLR 的应用程序。其次,新版本带有增强安全功能的 C 运行库 (CRT) 将随 Visual C++ 2005 一起发布。作为 Microsoft 对“可信赖计算”倡议的持续承诺的一部分,该版本的 CRT 将有助于增强集成了 CRT 的应用程序的集体安全性。

对于 Visual C++ 2005,开发人员将继续选择 Visual C++ 来生成最为苛求的应用程序和组件。Visual C++ 2005 通过提供令人兴奋的新增和改进功能,为具有控制和性能意识的 C++ 开发人员扩展了在 Visual C++ .NET 2003 版中提供的核心功能集。

Visual C#

在 Visual C# 2005 中,Microsoft 计划在 C# 中注入多种语言和代码编辑器功能,这些功能将为 C# 开发人员提供“专注于代码的 RAD”,从而提高创建业务框架和可重用的面向对象组件的工作效率。这些功能包括泛型、迭代器、匿名方法、不完全类型以及重构。

随着项目的复杂性不断提高,程序员经常需要一种方式来更好地重用和自定义现有的基于组件的软件。为了达到这样一种高级代码重用,程序员通常利用一种称为泛型的功能。在 Visual C++ 2005 中,CLR 包含一个类型安全、高性能、编译时验证版本的泛型,与 C++ 中的模板以及为 Java 语言提供的泛型相比,该泛型的语法稍有不同,而实现则有很大区别。泛型使开发人员能一次性地创作、测试和部署代码,然后将这些代码重用于多种不同的数据类型,而性能影响可忽略不计。与其他强类型实现相比,CLR 的泛型实现还将减小代码膨胀,从而使源代码更加易于阅读和维护。

下面的示例,创建一个一般性的 Stack 类,该类将接受为其创建的类型,并以本机方式存储该类型的数据,而不是强制与基类类型进行转换:

public class Stack
{
private ItemType[] items;
public void Push(ItemType data)
{
...
}
public ItemType Pop()
{
...
}
}

一般性的 Stack 类使用的类型只在实例化时指定。在该示例中,通过在实例化语句中使用尖括号表示法将基元整数类型指定为参数,指示 Stack 类使用该类型:

Stack stack = new Stack;stack.Push(3);int x = stack.Pop();

除通过泛型提高代码重用性以外,Visual C# 还将提供对迭代器的支持,以便消除与实现枚举数模式相关联的、频繁重复的事务性工作。基于研究型语言(如 CLU、Sather 和 Icon)中的类似功能,迭代器使类型易于声明 foreach 语句对其元素进行迭代的方式。C# 编译器会自动将迭代器代码转换为适当的类,而无需创建类和生成状态机,以便手动实现枚举数模式。

匿名方法是实用的语言构造,让使用 Visual C# 2005 的程序员能够创建可封装在委托中且后期执行的代码块。它们基于称为 λ 函数这一语言概念,类似于 Lisp 和 Python 中对应的语言概念。匿名方法在其使用时动态定义,而不是作为特定类的命名方法预定义。匿名方法使某些类型的操作更加方便,尤其是方法签名或方法体在运行时需要更改的情况。

该示例使用一个匿名方法直接修改窗体上的列表框,放弃为该类创建全新方法的做法,而是直接引用那里包含的可执行步骤。用于修改该列表框的代码存储在紧跟委托创建语句之后的执行范围内:

public class MyForm
  {
   ListBox listBox;
   TextBox textBox;
   Button button;

public MyForm()
   {
   listBox = new ListBox(...);
   textBox = new TextBox(...);
   button = new Button(...);
   button.Click += new EventHandler(sender, e)
   {
     listBox.Items.Add(textBox.Text);
   };
   }
  }

Visual C# 2005 还使 C# 开发人员能够使用不完全类型将包含大量源代码的类型分割到多个不同源文件。不完全类型提供更方便的开发和代码维护,使开发人员能够分隔计算机生成和用户编写的类型部分,以便更有效地补充或修改由工具生成的代码。

除扩展 C# 语言以外,Visual C# 2005 还为 C# 开发人员引入一些代码编辑器增强功能。其中一项增强功能是代码重构,即以规范的方式重新组织代码的过程(图 9)。通过重构,C# 开发人员可在编写代码以后改进代码的设计和效率。Visual C# 2005 包含下列重构类型:重命名、封装字段、更改方法签名、提取方法和提取接口。


图 9. 重构使开发人员能够有效管理组织混乱的代码。

其他 C# 代码编辑器增强功能包括:公共编码构造(如循环和 try/catch 块(图 10))的“填充空白”代码扩展、对于属性和泛型的改进的智能感知支持,以及一组丰富的、用于自定义 IDE 格式化 C# 代码的方式的选项。


图 10. 代码扩展为公共编码构造提供模板。

通过致力于语言革新,C# 仍将是很多框架设计人员和软件架构师首选的语言。通过用面向组件的功能、现代语言构造和代码编辑器增强功能来补充它的现代语法,C# 将继续信守与专注于代码的 RAD 有关的承诺。

Visual J#

Visual J# 的 2005 版将引入多项计划增强 Java 语言开发体验的功能。首先,Visual J# 2005 将包含一些针对语言语法的增强功能,以改善代码迁移和互操作性方案。其次,Visual J# 2005 版是完整的 CLS 扩展程序,能够更好地实现与其他符合 CLS 的语言的互操作性。第三,Visual J# 将集成 J# 浏览器控件(目前可以作为附加程序使用),以促进在 .NET Framework 上下文中运行的 Java 小程序的迁移。

为了改进跨语言的互操作性,并支持将来的 Windows 操作系统功能,Visual J# 2005 将包含多项语言附加功能和增强功能。这些语言增强功能使那些使用 Visual J# 的开发人员能够编写更有效、安全和富于表现力的代码。首先,Visual J# 引入对 volatile 关键字的支持,以改善优化代码方案中的代码灵活性。其次,Visual J# 2005 启用对 .NET 样式序列化的支持,从而在交换数据时提供更高的互操作性。第三,为 J# Redistributable 启用 APTC 属性(允许不完全受信任的调用方),这意味着开发人员可以部署通过不完全信任运行的应用程序(给定适当的代码访问安全性设置)。最后,Visual J# 提供对使用泛型的支持,以便在将来版本的 .NET Framework 中确保跨语言一致性。

Queue q; // System.Collections.Generic.Queue
Stack s; // System.Collections.Generic.Stack
KeyValuePair k;

除语法增强功能以外,Visual J# 2005 将通过遵守语言互操作性的“公共语言规范”规则成为完全的 CLS 扩展程序。 Visual J# .NET 2003 是一个完全的 CLS 使用者,但只是一个有限的 CLS 扩展程序,即 Visual J# 应用程序可充分访问和利用符合 CLS 的框架,但由于该语言中的一些限制,无法始终创建它们。Visual J# 2005 将通过添加对创作值类型和类型安全枚举的支持来克服这些限制。

值类型通常被视为轻量级类。值类型和类之间的主要差异是:值类型不需要堆分配,且包含该类型的数据,而类类型的一个变量包含对数据的引用。值类型还被称为用户定义的值类型,它启用以下方案:对象的使用方式与基元类型类似,而没有与垃圾回收相关联的系统开销。Visual J# 中用于创建值类型的语法与创建类类型的语法类似,区别在于值类型是从 System.ValueType 扩展而获得的:

public final class Point extends System.ValueType
{
public int x;
public int y;
}

枚举(或类型安全枚举)类型是一种值类型。每个枚举类型都具有一个称为基础类型的相应整数类型。该基础类型必须能表示在枚举中定义的所有枚举数值。枚举是类型安全的,它们改善了代码可读性并可在 switch 语句中用作控制类型。枚举类型类似于值类型,不同之处在于它是从 System.Enum 扩展而获得的:

public final class Color extends System.Enum
{
public static final int Red = 1;
public static final int Green = 2;
public static final int Blue = 3;
}

可按如下方式对上面的枚举类型进行实例化:

Color c = new Color();
int i = (int) c.Red; //i = 1

作为完整的 CLS 扩展程序,Visual J# 2005 还支持 CLSCompliant 属性 — 开发人员可以将该属性应用于他们的程序集,以指示给定的组件是否只在它公开的 API 中使用符合 CLS 的功能。

自从 Visual J# 于 2002 年问世以来,就要求 Java 社区的成员具备将 Java 小程序迁移到托管代码的能力,以使它们能在 .NET Framework 的上下文中运行。除提供比小程序更好的功能和安全性以外,这种技术还将缓解有关已计划的结束 Microsoft Java 虚拟机生存期的担忧。为响应这些客户请求,Microsoft 开发了一种称为 J# 浏览器控件的技术。J# 浏览器控件使开发人员能迁移现有的小程序源代码以在 .NET Framework 上运行 — 只需打开源代码,进行最少量的更改或完全不做任何更改,然后重新编译。一旦完成这一转换,开发人员即可利用与目前嵌入小程序类似的方式将 J# 浏览器控件嵌入到 Web 页。另外,J# 浏览器控件还具有对 .NET Framework 的完整访问权限,并包含对使用 Web 服务的支持。J# 浏览器控件将作为 J# 2005 Redistributable 的一部分提供,并且目前可作为 .NET Framework 1.1 的附加程序使用。请参阅 J# 浏览器控件。

通过熟悉的语法和面向对象的功能,Visual J# 将继续提供最有效的工作方式,从而使 Java 语言开发人员可用 .NET Framework 开始生成应用程序。对于使用 Java 语言和 Visual J++ 的学生、教师、教授和开发人员,Visual J# 2005 中的增强功能将拓宽他们可使用的功能的范围。

Microsoft .NET Framework

通过与 Visual Studio .NET 协同开发,Microsoft .NET Framework 提供一个可靠的基础,可构建基于 Windows、Web 和移动设备的应用程序。这些应用程序按照设计进行集成并能够在整个企业中有效进行部署。在版本 2.0 中,.NET Framework 将通过在其各个功能领域中引入重大的增强功能来进一步扩展开发人员的能力。新的类将使开发人员能更有效地访问常用组件,如打印机、文件系统和注册表。对 Windows 窗体和 ASP.NET 类进行的改进可将常见方案中的代码量最多减少 70%。通过支持 Intel 和 AMD 的 64 位处理器、改进的 ASP.NET 缓存和页处理以及总体改善的工作集和应用程序启动时间,可靠性和可伸缩性也将得到显著改善。

Windows 客户端应用程序开发(Windows 窗体)

Windows 窗体使开发人员能够具备 Windows 客户端 PC 的全部强大功能。在 .NET Framework 2.0 中,Windows 窗体类将得到增强,以便包含改进的应用程序部署模型、提高的开发人员的工作效率和简化的数据访问。.NET Framework 2.0 还将包含对 Windows 客户端应用程序性能和安全性的显著增强。

.NET Framework 2.0 非接触部署策略通过引入“ClickOnce”(一种将 Web 应用程序部署的简易性和安全性带给 Windows 客户端应用程序的新技术)进而得到改进(图 11)。建立在自说明性程序集、组件清单和并排组件安装的特征基础之上,ClickOnce 使开发人员能够发布、安装和维护 Windows 客户端应用程序,而无需害怕破坏客户端操作系统上的现有功能。尽管传统的部署会生成可能要求对系统注册表和到共享系统文件夹的安装进行修改的 MSI 软件包,但 ClickOnce 发布被定制为安装独立的、无需注册的程序集。开发人员可选择最适合其 Windows 客户端应用程序的模型:ClickOnce 发布、MSI 部署或者两者的组合。

使用 ClickOnce 安装的 Windows 客户端应用程序新功能包括:对脱机运行应用程序的支持,回滚到以前版本的应用程序,在 Windows“开始”菜单中列出应用程序,以及控制面板中的“删除程序”目录。此外,.NET Framework 2.0 中的 ClickOnce 部署使开发人员能够用 Windows 客户端应用程序分发 .NET Framework。


图 11. 发布向导使 Windows 客户端应用程序能够像 Web 应用程序一样方便地进行部署。

为进一步支持该部署模型,我们正在代码访问安全方面进行大量的投入,以便控制从远程 Web 服务器部署的应用程序的功能,从而防止用户受到恶意代码的攻击。在 .NET Framework 2.0 中,授权操作(可以由已部署的应用程序安全地执行)的范围将得到扩展。此外,对 .NET Framework 进行的增强将使系统管理员更容易安全地产生对代码访问安全策略的更新。

其次,Windows 窗体将包含能够提高开发人员工作效率的功能和控件。这些功能和控件包括:用于承载 Office 文档的活动文档容器、Microsoft Office 样式工具栏、直观的拆分器控件、可以在不完全信任模式下运行的声音组件、可以通过托管代码安全访问的 Web 浏览器控件,以及随屏幕分辨率或窗体大小的更改而自动调整窗体上控件位置和大小的布局控件。此外,通过在 Windows 窗体异步编程模型方面的大规模投入,多线程应用程序的实现将得到简化。很多 Windows 窗体控件将具有异步属性,并且将由一个能管理异步任务的新的、直观的 BackgroundWorker 组件加以补充。

这些新的控件和组件将使用为 Windows 窗体设计器计划的增强功能,包括智能标记、视图轮廓线、数据预览等。 使用智能标记,Windows 客户端应用程序开发人员可通过单击鼠标方便地自定义数据绑定控件的外观和行为(图 12);视图轮廓线将简化窗体内控件组的布局,而数据预览将使开发人员能够在设计时查看填充的数据绑定控件。


图 12. 智能标记可轻松地自定义数据绑定控件和窗体。

Web 应用程序开发 (ASP.NET)

Web 应用程序基础结构 ASP.NET(作为 .NET Framework 版本 1.0 的一部分引入)将提供 Windows 客户端开发的瘦客户端对应物。通过显著改善的性能、工作效率和安全性,Visual Studio 2005 和 ASP.NET 2.0 将带来简化、高性能且强大的 Web 开发体验。ASP.NET 2.0 将具有一组新的控件和基础结构,可简化基于 Web 的数据访问,并且将包含能够促进代码重用、可视化一致性以及增强美感的功能。

首先,通过引入用于与数据交互的新控件来调整 ASP.NET 2.0 数据访问。DataSource 控件将以声明方式或编程方式在应用程序中使用,以便封装使用数据(来自数据库、XML 文件、中间层业务对象和其他来源)所需的查询逻辑。DataSource 公开一组公共接口,以便数据绑定控件可以轻松地使用不同类型的数据,而不必要求它支持的每个数据类型都具有唯一的 API。

尽管 DataSource 控件有助于简化数据的检索和更新,但 ASP.NET 2.0 还提供用于显示和操作数据的新控件。GridView 控件是 ASP.NET DataGrid 的后继控件,它添加了自动处理数据的分页、排序、编辑和删除的功能(图 13)。DetailsView 是一个数据绑定控件,它一次呈现其关联数据源中的一个记录。与 Microsoft Access 数据库的窗体视图类似,DetailsView 提供分页按钮,以便在记录之间进行导航。开发人员可以在主控件-详细信息控件方案中使用 DetailsView 控件来更新和插入新记录,其中,主控件的选定记录确定 DetailsView 显示记录。上述控件和其他控件的附加功能大大简化了生成动态的、数据驱动 Web 站点和 Web 应用程序。


图 13. GridView 控件提供网格元素的分页、排序、编辑、删除和选择,而无需附加代码。

其次,ASP.NET 2.0 包含能够在 Web 站点中的页之间确保一致性和代码重用的功能。母版页的引入将使开发人员能够在多个页之间快速共享布局,方法是设计指定控件、菜单栏、页眉和页脚位置的模板(图 14)。与 Windows 窗体中的可视化继承类似,母版页使 Web 站点中的其他页可从母版页继承从而自动获得外观。当开发人员要更改所有页的布局时,只需对母版页进行更新。其他的平台工作效率增强功能包括一组可以简化很多常见 Web 方案(如身份验证、站点导航、管理、个性化等)的框架服务。这些增强功能可减少代码膨胀,增加可维护性,并简化大多数常见 Web 应用程序开发任务的实现。


图 14. 通过母版页可在多个页之间有效地共享 Web 站点布局。设计器中的灰色区域表示母版页布局;白色区域表示可编辑的页内容。

ASP.NET 还有一项新增功能,即合并主题和外观以增强 Web 应用程序的外观。外观是一组属性、模板和自定义代码,可用于将页上控件的大小、字体和其他特征进行标准化。主题合并了多个外观和样式表来指定 Web 站点的整体外观。主题和外观将易于打包、传输以及应用于其他 Web 站点。此外,ASP.NET 将提供多个内置主题,以便开发人员可轻松生成具有艺术美感的 Web 站点。

第三,使用 ASP.NET 2.0 的 Web 应用程序开发人员将能够利用 SQL 缓存无效化来提高其应用程序性能。通过缓存从 SQL Server 数据库中检索的数据(更新该数据之前),这种数据缓存方法将显著提高性能。通过当前可用版本的 SQL Server,ASP.NET 将按照指定的时间间隔轮询该数据库,以确定是否已经对该数据进行更新。然后,只有当有迹象显示对该数据进行了更新时,ASP.NET 才会重新查询该数据库。但是,在针对 SQL Server 2005 数据库进行开发时,开发人员将能够在不确定的时间内缓存数据驱动的页。具备这一功能的原因是 SQL Server 2005 能主动将对数据进行的更改通知 ASP.NET。SQL 缓存无效化的内部测试已证明了,性能好处最高为非缓存数据方案的 10 倍。

第四,通过使用 Visual Studio 2005 IDE,Web 应用程序开发人员将体验到工作效率方面的显著改善。在启用新的 Web 开发人员 IDE 配置文件后,Visual Studio 2005 将只公开与 Web 应用程序开发有关的功能,从而优化开发环境和用户体验。此外,新的基于目录的项目模型将消除解决方案文件的系统开销,同时通过对直接 IIS 枚举、FTP 和文件系统访问的支持,使 Web 开发人员能够享受传统的基于文件系统的项目范型。结果,FrontPage Server Extensions 不再是生成 ASP.NET 页的必要条件。

最后,对 ASP.NET 代码隐藏模型的增强消除了对由脆弱工具生成的代码的依赖,这些代码是传统意义上协调 ASP.NET 2.0 Web 页与其关联类文件所需的。使用不完全类,ASP.NET 提供一个更为可靠的模型,以分隔表示标记与代码。不完全类还将使开发人员能够轻松地以内联方式编写代码(图 15),从而遵守很多 Web 开发人员所熟悉的模型。其他对 Web 开发的 IDE 工作效率增强功能包括:设计时验证引擎、内联 CSS 支持、更灵活的调试等。


图 15. 通过脚本块中的智能感知可以在设计时执行语句完成和语法检查。

通过在控件集、可视化设计器和编码体验中计划的改进,ASP.NET 2.0 将完成常见编码方案所需的代码量最多减少 70%,从而大大简化 Web 应用程序开发体验。

基于设备的开发

通过 Visual Studio .NET 2003 和 .NET Compact Framework,使用 Visual Basic 和 Visual C# 的开发人员获得如下功能:使用与基于桌面和 Web 的开发相同的工具和方法来生成基于设备的应用程序。在 Visual Studio 2005 中,将对智能设备可编程性进行扩展,以便包含更新版本的 .NET Compact Framework,以及对从 IDE 中进行本机 Visual C++ 智能设备开发的支持。

通过在 Visual Studio 2005 中包含本机 Visual C++ 智能设备开发,使开发人员在为 Pocket PC、Smartphone 和其他 Microsoft Windows 驱动设备开发应用程序时具有更大的灵活性。面向移动设备的开发人员将得益于以下几方面:本机 Visual C++ 开发功能和一致的开发体验在所有 Visual Studio 项目类型(从智能设备到 Windows 服务器)中的紧密集成。

对于使用 .NET Compact Framework 生成托管应用程序的开发人员而言,Visual Studio 2005 将支持创建可以在最新设备(包括 Smartphone、基于 Windows CE .NET 的设备和最新版本的 Pocket PC)上运行的应用程序。该版本还将引入一些新的类和控件,用于访问电话功能、消息处理 (MSMQ) 和短消息服务 (SMS)。最后,本机代码互操作性增强功能(包括改进的封送处理、COM 互操作性和运行库承载)将改善智能设备应用程序开发体验。

数据访问 (ADO.NET)

通过第一版的 .NET Framework,Microsoft 引入 ADO.NET — ActiveX 数据对象 (ADO) 的演进产品。ADO.NET 设计为以本机方式支持 XML 以及传统的数据集,它提供强类型的分布式数据访问并通过广泛使用本地数据缓存和开放数据库连接防止不必要地占用数据库端口。产生的性能和可伸缩性方面的改进提供了一个坚实的基础,可在其上增强将来版本的 ADO.NET。

在 .NET Framework 2.0 中,通过添加新的数据访问控件、服务,与 SQL Server 2005 更无缝集成的功能,以及对 ADO.NET 类库本身的改进,数据访问将得到增强。这些增强功能将集中于使用的简易性、代码可重用性以及对 XML 的改进支持等方面。

首先,对数据访问对象模型的可用性进行大量改进。尽管 .NET Framework 的初始版本主要致力于为数据访问开发人员提供强大的核心,但 .NET Framework 2.0 将用附加的类扩展该核心,以便进一步提高开发人员工作效率。此外,跟踪支持将得到改进,以便在多个层以及 .NET Framework 托管代码和本机代码中对数据访问组件进行细致调试。

其次,.NET Framework 2.0 将包含用于对 XML 进行编辑、调试和编码的增强工具以及相关技术(图 16)。除在访问和管理 XML 时提供改善的性能以外,.NET Framework 2.0 版还提供一些扩展功能,用于执行与 XML 操作有关的常见任务,以及其他基于 XML 的标准和技术。


图 16. 新的 XML 编辑器支持 XSLT 的大纲显示、验证和编辑。

最后,Visual Studio 2005 中用于创建 XML 架构的增强功能包括从现有 XML 文档中推断 XSD 架构的功能,以及对基于 XML 的数据处理(使用 XML 查询语言 (XQuery))的本机支持。

高级 Web 服务

通过 Visual Studio .NET 2002 和 2003,开发人员可轻松创建、使用、发现和部署 Web 服务。在 Visual Studio 2005 中,Microsoft 对 Web 服务的持续承诺将通过对 Web 服务增强 (WSE) 库中实现的最新行业标准的支持得到证实。对 WSE 的更新将为创建业务关键的 Web 服务(服务涉及多个信任域、长期运行的操作和对等通信)提供便利。

此外,随着 WSE 的应用日趋广泛,以及高级 Web 服务开发行业规范的不断成熟,WSE 库将被集成到 .NET Framework 中。将来版本的 WSE 将包含这些规范的最新版本,并且将包含策略框架、增强的安全模型和 SOAP 消息处理基础结构。此外,WSE 将支持 IIS 外部的承载(作为可执行文件或 Windows 服务),并且将支持 HTTP 和 TCP 通信。

Microsoft Office 解决方案开发

2003 年 10 月,Microsoft 发布了 Visual Studio Tools for Microsoft Office System。这一新技术使开发人员能够编写响应 Word 和 Excel 自动化模型中事件的托管代码,从而为 Word 2003 和 Excel 2003 解决方案带来基于 .NET Framework 的开发方法。以长期以来 Visual Basic for applications (VBA) 和基于 COM 自动化的成功为基础,Visual Studio Tools for Office (VSTO) 为开发人员提供与生成 Office 解决方案有关的重大好处,包括熟悉的编码体验、改进的解决方案部署和维护以及改进的安全性。

VSTO 2005 版为基于 Microsoft Office Excel 2003 和 Microsoft Office Word 2003 的业务解决方案的开发提供重大的增强。根据该版本 VSTO 提供的基础,Visual Studio 2005 Tool for Office 将解决 Office 解决方案开发人员目前面临的一些最大的难题,包括数据和视图元素的分隔、Office 解决方案程序集的部署、服务器端和脱机方案以及与 Visual Studio 工具集的无缝集成。

VSTO 2005 的主要目标之一是在 Office 文档中分隔“数据”和“视图”,以便简化基于 Office 的解决方案的创建。目前,Excel 电子表格和 Word 文档,由单元格值/文本(表示数据)以及字体等与数据有关的描述性信息(表示视图)组成。因为 Word 和 Excel 不具有内置的编程数据概念,所以开发人员将受到文档中存储的数据有效开发解决方案的能力的制约。

VSTO 2005 将通过使数据能够作为 XML 数据岛嵌入来在 Office 文档中分隔数据和视图。这提供了一种开发人员在编程时可依靠的,易于理解且易于解决的结构。开发人员能够分隔视图和数据,因而能够直接更新数据,而无需考虑视图代码的编写。类型化数据集用来于提供面向架构的编程模型,该编程模型用于与数据岛进行交互以确保编写对托管代码的智能感知支持。将在数据岛和视图之间使用数据绑定,以使这两个实体保持同步。开发人员还能向数据添加独立于文档视图组件的验证代码。

借助于基于 XML 架构的模型直接对数据进行编程,开发人员可以显著提高工作效率。处理数据的代码无需考虑 Excel 和 Word 对象模型。这简化了在生成 Office 解决方案的过程中涉及的大量代码,并且使解决方案保持对文档中更改的弹性。产生代码的易损坏性降低了,因为它不需要过度依赖于对最终用户可以任意移动的特定单元格、范围和表的引用。相反,托管代码直接访问 XML 数据岛。

在 Office 文档中,使数据成为透明的、可直接访问的组件能够带来新的服务器端机遇。首先,无需启动 Office 应用程序即可操作该文档中嵌入的数据岛。与当前模型(为使代码能够操作文档、Excel 或 Word 的内容必须按照该模型运行)相比,这是一项巨大的转变。这一限制使很多客户无法实现从 ASP.NET 应用程序内创建 Office 文档的常见解决方案要求。

相比之下,VSTO 2005 运行库将支持服务器上的实例化,而无需运行 Excel 或 Word。这样,就可以从服务器端代码操作文档中的数据岛。当打开关联的 Office 文档时,视图与数据岛重新同步,并且将自动向用户呈现经过更新的数据。在该模型中,不需要使用 Excel 和 Word 对服务器上的数据进行写操作,而只需使用它们查看客户端上的数据。这一经过更新的模型将为客户提供所需的可伸缩性,以及对包含服务器上数据岛的文档执行高性能批处理的能力。

将数据存储到数据岛中还能够提供一种机制,以实现可靠的脱机方案。当从服务器首次请求文档或用户首次打开文档时,将用最新的数据填充数据岛。然后,在文档中缓存该数据岛并使其可以脱机使用。用户和代码无需活动连接即可操作这些数据。当用户重新连接时,可将对数据进行的更改回传到服务器数据源。

除根本改进数据编程模型以外,VSTO 2005 版还引入对开发人员以编程方式访问用户界面或视图、元素(例如,范围、列表和书签)方式的增强。即使开发人员目前可以编写代码来操作上述元素,他们仍然会受到 Office 对象模型公开事件、属性和方法的程度的影响。例如,Excel 对象模型提供 WorkSheet_Change 事件,但没有为单个单元格或范围提供类似的事件,因此需要编写附加代码来处理对特定元素进行的更改。VSTO 2005 在视图元素领域引入了对 Excel 和 Word 对象模型的增强。元素(例如,单元格、范围、列表和书签)将成为可在代码中轻松访问的一流控件。每个控件都将唯一标识,都将启用数据绑定,并且都将提供更为完整的事件模型。

VSTO 2005 还将 Excel 和 Word 与 Visual Studio 进行集成,从而在生成 Office 解决方案时,削弱目前存在的障碍。目前,开发人员在 Visual Studio .NET 中编写托管代码。然后,他们必须切换到 Excel 或 Word 来创建用户界面。在 VSTO 2005 中,Excel 和 Word 将直接作为设计器驻留在 Visual Studio 2005 IDE 中(图 17)。开发人员能够使用 Excel 和 Word 中的完整 Windows 窗体控件集合,仅通过从工具箱中拖放托管控件(包括第三方控件)在 Visual Studio 环境中设计 Office 文档。按照预期,双击 Excel 或 Word 中的托管控件将调用代码视图,从而可在该控件的自动生成事件处理程序中编写自定义。


图 17. Visual Studio 2005 IDE 将支持 Excel 电子表格以及 Word 文档的承载。

驻留在 Word 和 Excel 文档中的托管控件与 Visual Studio IDE 中的 Excel 和 Word 集成相结合,将减少目前在 Office 解决方案开发以及基于 Windows 和 Web 的解决方案开发之间存在的差异。

SQL Server 2005 解决方案开发

Microsoft 计划将其开发人员工具的未来版本与重要的平台里程碑进行协调,作为该计划的一部分,Visual Studio 2005 将为 SQL Server 2005 提供深度的集成和支持。SQL Server 2005 将 CLR 功能合并到其数据库引擎,以便带来数据库和工具之间新的集成级别,从而减少在开发数据中心应用程序时的代码和工作量。

首先,SQL Server 2005 将引入在托管代码中创建数据库对象的功能。这使开发人员能够使用 Visual Basic、Visual C++ 和 Visual C# 等语言生成 SQL Server 过程化对象,包括函数、存储过程和触发器。此外,开发人员能够使用托管代码来生成 SQL Server 2005 中引入的新 SQL Server 对象,包括用户定义的类型和聚合。因此,使用 Visual Studio 2005 的开发团队不仅可创建和调试分布式应用程序的表示形式和中间层,而且可以创建和调试组成数据层的数据库对象。此外,.NET 语言将在很多方面比传统的 Transact-SQL 更为丰富,并且通过 SQL 开发人员以前不可用的构造和功能提供了增强的编程模型。

其次,用托管代码编写的数据库对象将提供增强的安全性。因为这些数据库对象将在数据库引擎中承载的 CLR 环境中运行,所以它们将在细粒度的 CLR 安全模型的上下文中进行操作。本质上,该模型比较低版本 SQL Server 中提供的扩展存储过程更为安全。它还赋予管理员更大的控制权,以便在试图访问或操作 SQL Server 2005 内部或外部资源时,为代码定义一组允许的操作。

最后,使用托管语言生成 SQL Server 2005 数据库对象通常会在性能和可伸缩性方面产生可观的收益。由于 Visual Studio 2005 语言编译器和执行模型中内置的优化,用托管代码编写的数据库对象(例如,存储过程、函数和触发器)将在很多情况下能提供比 T-SQL 更好的性能。

企业开发和生存期支持

要满足目前大型企业应用程序开发的需要,通常要求具有复杂的、高度专业化的工具、技术和设计方法集。借助于 Visual Studio 2005 Team System (VSTS),Microsoft 提供获得可预测、可重复结果所需的工具和指南,从而解决了应用程序开发生存期复杂性日益增长的问题,而无需对工作效率和革新性进行折衷。

Visual Studio 2005 Team System 是一个可扩展的生存期工具平台,对于提供面向服务的现代解决方案而言,它能够帮助软件团队通过协作来降低其复杂性。Microsoft 的产品和服务现在包括集成生存期工具、一组全面的经过检验的过程框架、最佳做法以及说明性的体系结构指南,它们使 IT 组织能够成功地在 Windows Server System 上提供自定义解决方案。另外,大量行业合作伙伴将用能够为软件生存期提供更大支持的工具扩展 Visual Studio Team System。通过 Visual Studio 2005 Team System,组织能够:



降低复杂性,即提供面向服务的现代解决方案(为操作设计)的复杂性



在软件团队的所有成员之间促进协作,包括业务用户、项目经理、架构师、开发人员、测试人员和运营经理



用它们自己的内部工具和过程框架自定义和扩展 Team System,或者从来自 200 多个合作伙伴的 400 多种辅助产品中进行选择

Visual Studio 2005 Team System 包含下列产品供应:



Visual Studio Team Architect Edition:可视化设计器,使架构师和首席开发人员能够设计可针对其操作环境进行验证的、面向服务的解决方案



Visual Studio Team Developer Edition:高级开发工具,使开发团队能够在生存期的早期(通常贯穿整个生存期)确保设计质量



Visual Studio Team Test Edition:高级负载测试工具,使开发团队能够在部署之前验证应用程序的性能



Visual Studio Team Foundation Edition:基于服务器的团队协作工具,使组织能够毫不费力地管理和跟踪项目进度和运行状况



经过检验的过程指南、说明性的体系结构指南和解决方案加速器:提供任务关键的解决方案时,帮助组织改善可预测性和可靠性。


图 18. VSTS 概述。

复杂性是现代企业的毒药。它使企业突破了财务底线,牺牲了利润,并且对两者之间的所有事物施加了压力。随着其应用程序复杂性的增长,软件团队迫切需要相同的简单性和灵活性 RAD 原则,以便将其作为标尺。降低复杂性意味着获得更高的工作效率,节省成本,降低财务底线,同时节省时间并且提供更多的增加利润的机会。在下列部分中,我们将讨论 Visual Studio 2005 Team System 中提供的、有助于降低生成复杂分布式系统的复杂性的技术。

分析和设计“为操作设计”

收集应用程序需求后,组织通常会为其解决方案设计详细的体系结构模型。这些体系结构设计并不总能很好地转换为代码,而且即使能够,实现和设计也并不总能在整个开发生存期中保持同步。此外,应用程序架构师必须能够使其应用程序设计符合数据中心(在其中最终部署其解决方案)的要求。实际上,应用程序架构师必须能够在设计其解决方案时考虑操作基础结构。

通过 Visual Studio 2005,Microsoft 提供一组设计器(作为 Visual Studio 2005 Team Architect Edition 的一部分),能够使架构师和开发人员同时轻松地设计面向服务的应用程序和操作基础结构。这些分布式系统设计器使用 Visual Studio 中熟悉的拖放范型来连接构成应用程序的服务,然后针对逻辑数据中心环境验证得到的应用程序。在该环境中,应用程序可以针对数据中心应用安全等约束(反之亦然)。这样,应用程序体系结构架构师和基础结构架构师可以协同工作,以便在设计过程的早期确定应用程序体系结构是否能够在部署环境中有效工作。


图 19. 应用程序连接设计器将使开发组织能够按照原始规范完成应用程序。

在提供综合分布式服务设计工具的过程中,Visual Studio 2005 使组织能够按时且按照原始规范更有效地完成其应用程序。而且,不同于使用复杂且特定于域的建模语言作为应用程序体系结构的中间形式,Visual Studio 2005 中的设计工具将提供从类到组件、Web 服务、程序集、活动和过程的粗粒度抽象,并且在应用程序模型和基础源代码之间维持动态同步。

在创建任务关键的软件时,应用程序架构师经常发现自己正在与管理数据中心操作的架构师通信。在开发最终解决方案的过程中,人们经常发现应用程序的逻辑设计与部署环境的需求和约束不符,其原因在于开发团队之间缺乏及早的、适当的沟通。通常,这种沟通不畅会导致工作效率下降,因为架构师和运营经理需要使应用程序的功能与数据中心的现实相符。在 Visual Studio 2005 中,这些差异得到了缓解,原因是逻辑数据中心设计器(图 20)使运营经理能够指定他们的逻辑基础结构,并且与应用程序架构师协作,从而验证应用程序的设计使它们能够在指定的部署约束下工作。


图 20. 逻辑数据中心设计器使运营经理能够指定基础结构要求。

在很多情况下,企业架构师和开发人员特别偏爱其解决方案更具代码中心特征的视图。Visual Studio 2005 还包含一个功能丰富的类设计器(图 21),这样,即使最大的软件项目也可快速地理解、设计和生成。


图 21. 类设计器为企业关键应用程序提供 RAD 设计。

Microsoft 的分布式系统设计器使架构师、开发人员和运营经理能够参与应用程序开发的展望阶段。当架构师使用应用程序连接设计器设计他们的解决方案时,运营经理可以使用逻辑数据中心设计器施加约束。架构师和开发人员可以使用应用程序连接设计器和类设计器方便地通信。这些工具共同使团队能够获得更好的沟通和更高的工作效率。

生成健壮且可靠的软件

要开发健壮且可靠的软件,开发人员需要一组集成的分析工具,以便帮助他们在开发周期的早期检测代码缺陷和性能问题。Visual Studio 2005 Team Developer Edition 提供了高级开发工具,使开发团队能够在生存期的早期(通常贯穿整个生存期)确保质量。Static Code Analyzer 帮助开发人员在开发周期的早期检测与编码和安全有关的问题,从而减少解决代码缺陷的总体成本。此外,可以使用代码分析工具作为每夜生成过程的签入策略的一部分,从而使开发团队能在代码签入到源代码树之前纠正缺陷。Visual Studio Team Developer Edition 中的性能分析工具使开发人员能够衡量、评估和瞄准其代码中与性能有关的问题,从而趁早标识性能瓶颈。该工具集还集成使开发人员在开发过程中对其代码模块执行单元测试的功能。

Static Code Analyzer 向开发人员提供有关其 C/C++ 源代码中可能存在的缺陷的信息,这些缺陷包括非常常见的代码缺陷,例如缓冲区溢出、未初始化的内存、空指针取消引用、内存和资源泄漏等。Static Code Analyzer 完全集成到 Visual Studio 2005 IDE,以便使开发人员可使用他们了解的工具和环境工作。


图 22. 为源代码生成的 Static Code Analyzer 出现在错误列表中。

Static Code Analyzer 还会检测托管代码程序集中的代码缺陷,并且报告有关这些程序集的信息,例如违反了在 Microsoft .NET Framework Design Guidelines 中提出的编程和设计规则。Static Code Analyzer 还可以通过 MSBuild 系统调用,使开发人员能从命令行对托管项目运行其解决方案的生成。

图 23. FxCop 中的规则消息标识了相关编程和设计问题,并且在可能的时候提供有关如何解决目标问题的信息。

Visual Studio 2005 Team System 中的性能工具帮助开发人员衡量、评估和瞄准其代码中与性能有关的问题。这些工具被完全集成到 IDE 中,以提供无缝且友好的用户体验。

通过更好的测试获得更好的软件

Visual Studio 2005 Team Test Edition 引入一套新的测试工具。这些工具已经在 Microsoft 内部使用,并且将首次集成到 Visual Studio 2005 Team Test Edition 中。这些测试工具不仅在它们自己的测试框架中工作,而且还被完全集成到 Visual Studio Team System 中,从而提供完整的软件开发生存期解决方案。

Visual Studio 2005 Team Test 引入新的项目类型 — a??testa??Project — 该类型在解决方案资源管理器中与传统的项目类型一起显示。这样,包括单元、Web、负载和手动测试在内的所有测试都是 Visual Studio 中的一类公民,并且可以在组织中共享。您可以将测试结果发布到数据库,生成趋势报告和历史报告,比较不同种类的数据,查看作为测试结果找到了多少以及哪些错误,并且确认哪些错误与有助于再现它们的测试没有联系。


图 24. 单元测试 UI 包含一个代码覆盖率窗口,并通过颜色显示覆盖和未被覆盖的代码。

Visual Studio Team Test Edition 支持多种测试机制。单元测试工具可用于测试现有的源代码,并且它们是测试驱动开发必不可少的元素。另一方面,Web 测试包含一系列可创建或者从浏览器会话中录制的 HTTP URL。一般性测试使测试者能够使用其团队现有的自动化测试和工具。负载测试模拟多个用户运行自动化测试。手动测试可用于遍历尚未自动化的任务。除任何自动化测试(所有非手动测试)以外,还可以从命令行运行测试组。

在 Visual Studio 2005 内部,测试现在被视为一种顶层活动,能够减少提供复杂的 Web 和桌面应用程序所固有的风险,它还能通过减少支持成本而将收益最大化,并且被集成到整个软件开发生存期中。

源代码控制和工作项跟踪

软件配置管理 (SCM) 是一种规范的方法,在软件开发和维护做法随着时间的推移而更改时,可对其演变进行管理和控制。通过 SCM,企业开发人员可以对现有代码进行安全更改,跨越开发人员、项目和时间来跟踪更改,有效地管理生成过程,以及跟踪项目错误和问题。

Visual Studio Team Foundation(Visual Studio 2005 Team System 的服务器组件)提供了集成的源代码控制、工作项跟踪、报告,以及使团队能够有效管理软件开发项目中更改的自定义策略。这些更改管理组件无缝地集成到开发环境中,从而在开发人员的日常工作流中,提供了不引人注目的 SCM 过程和特定于团队的需求。

Visual Studio Team Foundation 使项目参与者能够将工作项与其他类型的配置项(如工作项、源文件、更改集和版本)相关联,从而将源代码控制、工作项跟踪和版本管理连结在一起。签入策略在将一组挂起的更改签入到储存库中之前,验证开发人员的更改是否符合组织需求。可以在单个工作项的处理过程中生成报告,还可以跟踪单个工作项直至其完成,甚至还可以查看与其解决相关联的代码。另外,团队无需安装 Visual Studio 的所有组件,即可使用工作项跟踪工具集的 Web 界面外壳程序来跟踪工作项。总之,Visual Studio Team Foundation 提供了一个灵活的、集成的工具集,将 Visual Studio 的工作效率和创新潜力与面向过程的解决方案的可预测性和可再生产性相结合,以便有效地管理软件开发项目中的更改。

此外,在 Visual Studio 2005 中,Microsoft 将扩展 Visual SourceSafe 以提供对 Web 服务和 Unicode 项目的支持,从而帮助程序员更加有效地应对当今业务的挑战。而且,Visual SourceSafe 通过使常见操作变得更快速并且使其异步进行,以及启用通过防火墙的访问,用远程访问更好地支持团队开发。因此,开发人员将享受到改进的性能以及 Visual SourceSafe 和 Visual Studio IDE 之间的更紧密的集成。

软件项目管理和过程

Visual Studio 2005 Team System 提供了很多不同的项目管理工具。Visual Studio 项目管理工具支持更好的计划、安排、协作、通信、报告和过程控制。这些工具与 Visual Studio 集成开发环境 (IDE)、Microsoft Office、Windows SharePoint Services 和 SQL Server 2005 Reporting Services 相集成。

Visual Studio Team System 在整个团队可以共享的单个服务器端数据库中收集有关项目需求、功能、任务、错误、问题、风险的所有工作项。团队可以从他们最熟悉的下列很多不同工具中查看、编辑、跟踪和分析这些工作项:Visual Studio、Microsoft Excel、Microsoft Project 和 Windows SharePoint Services。这些工具紧密集成并同步,它们共享信息和数据以使团队不断地相互通信。这就能够进行更好的计划、安排、协作、通信、报告和过程控制。


图 25. 项目管理工具捕获视图以便存储功能规范、风险评估和项目计划之间的关系。

在项目的整个生存期中,Visual Studio Team System 收集和报告有关错误趋势、代码覆盖状态、生成状态等数据。通过丰富的、可自定义的报告,Visual Studio Team System 为生存期中的所有参与者提供了该项目的快速宏观视图。


图 26. Microsoft Excel 外接程序将电子表格中的列表对象与存储了所有工作项(如错误、风险和任务)的工作项数据库绑定在一起。

Visual Studio Team System 包含集成过程指南,它封装了来自 Microsoft 内部和软件开发行业其余部分的最佳做法,并且使它们易于访问和效仿。为项目选择 Microsoft Solutions Framework (MSF) Methodology Template 可以配置 Visual Studio Team System 中的所有工具:带有工作流的自定义工作项类型、自定义报告、源代码签入策略以及规范、准备计划、风险分析的文档模板等。过程指南完全可以由最终用户、团队和系统集成商自定义。

Visual Studio 项目管理工具将通过启用项目数据和生存期的非侵入可视性和规范化来改革 IT 部门管理其开发过程的方式。

产品生成

过去,开发人员曾经因为试图将复杂的生成基础结构映射到 Visual Studio IDE 中而进行过一番努力。传统意义上,障碍围绕下列方面:在开发环境中生成项目时,无法完全自定义或了解发生了什么事情;无法在 Visual Studio 不可能在场的生成实验室环境中再现生成;由于优化生成系统的目的不是模拟整个产品而是模拟单个项目而带来的限制。

Visual Studio 2005 版将通过引入一个名为 MSBuild 的新生成引擎来显著改善这一软件开发领域。MSBuild 的主要设计目标包括:提供一种资料完备、且受到已发布的 XML 架构定义支持的文件格式;使 MSBuild 引擎成为 .NET Framework Redistributable 不可分割的组成部分;使开发人员可以自定义、扩增或完全重新定义生成过程;提供与 Visual Studio 2005 IDE 的无缝集成。

首先,MSBuild 引入一种新的基于 XML 的、易于理解且易于扩展的文件格式。MSBuild 文件格式使开发人员能完整描述需要生成的工件,以及在不同的配置下需要如何生成它们。此外,该文件格式还使开发人员能创作可分解到单独文件中的可重用规则,以便在产品内的不同项目中一致地执行生成。

其次,MSBuild 将作为 .NET Framework 2.0 Redistributable 的核心部分提供。这一基本原理方面的转变将使开发人员可依赖于 MSBuild 基础结构,而不用考虑 IDE 是否在场以及许可问题。此外,通过将 MSBuild 类库作为 .NET Framework 的核心部分提供,开发人员将能够使用他们选择的托管语言创建和调试自定义 MSBuild 过程的组件。

第三,MSBuild 处理和生成软件的方式将完全透明。所有生成步骤都将在 XML 项目文件中显式表示,而无论是手动创作还是由 Visual Studio 2005 IDE 自动生成。这还意味着,Visual Studio 不再将“F5”生成体验的任何部分视为黑盒。用户现在可了解、复制、编辑、删除或扩大生成过程的任何部分。

最后,像原来一样,MSBuild 将被完全集成到 Visual Studio 2005 IDE 中。这一紧密集成将使开发人员能够利用 Visual Studio 提供的所有内置工作效率功能,同时使开发人员可以根据其独特的基础结构需要,对 Visual Studio 2005 生成系统进行伸缩、自定义和修改。

部署和运行

在软件生存期的最后一个阶段,已完成的应用程序被放到生产环境中。该阶段的活动涉及创建部署包以及涵盖任务的运行计划,如预期可用性、备份、更新和灾难恢复。

Visual Studio 2005 与多种其他的 Microsoft 和第三方软件(包括 Enterprise Instrumentation Framework、Microsoft Operations Manager 等)一起,使组织能够在构建和测试解决方案以后对其进行部署和运行。

而且,前述的分布式系统设计工具将使运营经理更密切地参与整个开发团队的活动。

合作伙伴企业工具支持

除上述描述的 Visual Studio 的进步以外,通过选择各种行业领先应用程序生存期工具供应商的产品,企业客户还将继续享受到巨大的乐趣。通过改进的集成支持,工具公司生产将能够生产与 Visual Studio 2005 产品的其余部分具有无缝互操作性的产品。而且,通过修改的 Visual Studio Industry Partner (VSIP) 程序,独立供应商以及企业客户可以自由访问生成生存期工具(该工具与 Visual Studio 2005 紧密耦合)所需的 API。对于客户而言,结果将是 Microsoft 和合作伙伴工具的组合,这一组合将使企业应用程序设计、开发、测试和部署变得比原来容易很多。

Visual Studio "Orcas"

该版本的 Visual Studio 2005 和 .NET Framework 2.0 将代表 Microsoft 开发人员工具路线图中的一个重大里程碑。紧随大批 SQL Server 2005 和 Visual Studio 2005 产品之后,下一个重大的平台更新将是代号为“Longhorn”的 Windows 操作系统版本。该版本的 Visual Studio 2005 和 .NET Framework 2.0 将运行在这一划时代的操作系统版本之上,而用 Visual Studio 2005 生成的应用程序也将如此。

此外,Microsoft 正在计划一个代号为“Orcas”的 Visual Studio 版本,目的是利用 Windows Longhorn 中引入的功能。这些功能包括对 Longhorn 高级用户界面功能(代号为“Avalon”)、存储服务(代号为“WinFS”)和 Web 服务功能(代号为“Indigo”)的支持。例如,Longhorn 将引入一个声明性编程模型(代号为“XAML”),该模型将通过在开发特定于 Longhorn 的客户端 UI 时改进工作效率,使现有的编程语言和 Windows 窗体变得更加完美。

此外,Orcas 将使开发人员能够利用 WinFS 功能来查找、关联和处理信息,包括对基于事件的操作和同步类的支持。最后,Orcas 将提供对 Indigo(Microsoft 用于生成 Web 服务的下一代编程模型)的支持。Indigo 引入一个统一模型,用于在 Windows 平台上开发互连的应用程序,该模型无缝地合并了远程过程调用、消息处理和远程对象调用。将来对该文档的更新将包含有关 Orcas 版本和功能集的其他信息。

小结

通过发布 Visual Studio .NET 2002 和 Microsoft .NET Framework 1.0,Microsoft 为 Windows、Web 和移动解决方案引入了一致的编程模型,引入了新的、增强的编程语言,及其比以往集成程度更高、更强大的开发人员工具集。一年之后,Visual Studio .NET 2003 和 .NET Framework 的 1.1 版本以这一初始版本为基础生成,并且提供了前所未有的与 Windows Server 2003 操作系统的集成。展望未来,Microsoft 将继续这一趋势,即在主要产品版本中集成托管代码支持 — 首先是在 SQL Server 2005 中,然后是 Windows Longhorn 操作系统。

在这一产品路线图的轨迹中,Microsoft 同时在工具和框架方面规划了一股稳定的革新潮流,从而为现在和将来的企业提供了一流的 工具,以便满足它们不断演变的业务需要。Microsoft 将继续履行其提供高生产率工具的承诺,以便帮助客户在生成范围广泛的软件解决方案的同时,最大限度地利用 基础平台并获得成功。

Tags:微软 Visual Studio

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接