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 更好的性能。