Visual Studio Tools for Office Version 2005 中的服务器功能概述

发布日期: 4/15/2005 | 更新日期: 4/15/2005

Matt Hessinger
Hessinger Consulting

适用于:
Microsoft Visual Studio Version 2005
Microsoft Visual Studio Tools for the Microsoft Office System Version 2005
Microsoft Office Professional 2003

摘要:学习使用 Microsoft Visual Studio Tools for the Microsoft Office System Version 2005 Beta 1(使用 Microsoft Office Word 2003 和 Microsoft Office Excel 2003)在服务器上创建服务器解决方案。(本文包含一些指向英文站点的链接。)

注意:本文是预发布文档,以后的版本如有更改,恕不另行通知。Microsoft Visual Studio Tools for the Microsoft Office System Version 2005 Beta 1 包含在 Microsoft Visual Studio Version 2005 Beta 1 中。

下载 ServerSample.msi

*
本页内容
引言引言
使用服务器数据功能时的体系结构注意事项使用服务器数据功能时的体系结构注意事项
部署和安全性注意事项部署和安全性注意事项
示例解决方案的开发步骤示例解决方案的开发步骤
代码安全性代码安全性
结论结论
参考资料参考资料
关于作者关于作者

引言

Microsoft Office Word 2003 和 Microsoft Office Excel 2003 为用户提供了非常强大的功能。Excel 中的管理和操作大量数据的功能为用户进行数据分析提供了很大的灵活性。而 Word 则是编写非结构化内容以及基于模板的方案的理想应用程序选择。使这些功能自动实现的功能(第一个是宏,然后是文档内的 Microsoft Visual Basic for Applications [VBA],其次是文档外的 COM 可访问性)日趋成熟,使创建新的解决方案成为可能。其中的许多方案都涉及到将现有数据从一个或多个外部源放入文档中预定义模板或结构中的特定位置。当您想到数据时,尤其是在 Web 应用程序中,自然会考虑创建这些功能,使它们能够部署到一个高性能的服务器环境中。

直到最近,在服务器上使用 Office 应用程序仍是一项非常具有挑战性的工作,虽然并不是完全不可能。Microsoft Office 2003 Edition 中的应用程序是交互式的,这使得在服务器上配置它们很困难。为了帮助用户解决这个问题,Microsoft 提供了详细的指导(有关详细信息,请参阅 Microsoft 知识库文章 INFO:在服务器端自动运行 Office 的注意事项),但这并不是解决问题的最佳方法,也不是符合逻辑的方法。

在 Visual Studio Tools for Office Version 2005 Beta 1 中,Microsoft 在实现 Office 的服务器方案方面取得了重大进展。2005 版侧重于在文档中存取数据。但是,并不能通过对象模型实现全部的文档自动化,这只是实现全部服务器功能的最符合逻辑的第一步。

本文介绍了可以在服务器上使用 Office 的某些业务方案,还讨论了创建在服务器上使用 Office 的解决方案时要考虑的体系结构问题。最后,使用相关示例解决方案中的代码片段展示了一个完全可行的方案,该方案演示了在 Word 和 Excel 中使用数据的情况,还展示了 Visual Studio Tools for Office Version 2005 Beta 1 的一些新功能。

通过查看相关下载和支持文档中的代码,您将学会如何:

在 Word 文档和 Excel 工作簿中添加代码,为在服务器上缓存数据做准备。

打开服务器文档,引用缓存的内容并缓存新数据。

使用 Visual Studio Tools for Office Version 2005 Beta 1 的几个新功能,包括视图控件、文档操作窗格和 Microsoft Windows 窗体控件。

数据绑定业务方案

有几类解决方案的要求完全适用于 Visual Studio Tools for Office Version 2005 Beta 1 中新的服务器数据绑定功能。我会在介绍 Word 和 Excel 使用方式差别的上下文中介绍这些内容,但只强调这些新功能的适用性。

使用 Word 的解决方案

在基于 Word 的解决方案中,我们通常使用预定义的模板,其中的某些特定结构能够满足业务需要。这种结构可能更侧重于用户(例如表和标题),也可能使用新的 Office XML 功能将结构化数据放入非结构化的用户内容中。在任一种情况下,我们都可以通过数据绑定,使用数据源中的数据预填充模板实例的内容。此外,您还可以通过分析数据的状态来更改用户界面(例如,更改控件,使其显示在操作窗格中)。此功能仍然在客户端运行,而实际的数据已添加到服务器上。

例如,您可以使用 Word 解决方案预填充窗体。可以预先创建需要非结构化条目和可重用数据的窗体,根据请求的上下文对窗体进行自定义,然后再展示给用户。这种方案适用于需要结构化和个性化信息请求的多个垂直行业(例如,保险业、税收业和政府机构)、需要反馈的行业(旅店、运输业和事件管理部门)或调查行业(营销、广告和市场调查)。

使用 Excel 的解决方案

Excel 解决方案通常更侧重于分析,而不是编写。现有的许多解决方案(打包的和自定义的、侧重于服务器的和侧重于客户端的)都试图解决如何将大型数据集放入 Excel 的问题。利用 Visual Studio Tools for Office Version 2005 Beta 1 中的新的服务器功能,开发人员可以解决现有技术中固有的复杂性和安全性问题。此外,在客户端使用文档中内嵌的托管代码的能力,以及在服务器端以高效的方式合并数据的能力为解决方案开发人员提供了许多新的选择。

例如,许多组织使用 Excel 对来自内部系统和外部系统的数据进行复杂的报告和分析。使用这些新服务器功能的 Excel 解决方案使您可以利用 Excel 的分析功能提供较高的性能和非常有针对性的报告数据。需要有针对性的销售和营销分析(例如产品销售数据 [消费品、食品和药品] 或不同业务部门的财务报告)方案的垂直行业可能会从这种解决方案中受益。

关于示例解决方案的说明

本文提供的示例解决方案说明了一个使用 Word 和 Excel 以及 Visual Studio Tools for Office Version 2005 Beta 1 中新的服务器功能的完整业务方案。

该方案假定需要典型的销售报告和客户关系管理。Northwind Trading 是一家虚构的食品销售公司,因此该公司的销售经理们非常关注销售报告。根据这些报告,他们为销售代表制定客户服务任务。系统使用销售和客户关系管理 (CRM) 系统中的数据简化这一通信系统的各个方面。通过生成有针对性的销售报告和预填充的客户服务文档,经理和代表们对客户端应用环境(Excel 或 Word)有了充分的认识,从而能够更快速有效地进行分析、添加内容并完成工作。

该解决方案包括以下步骤:

1.

销售经理访问公司的 Intranet 站点,浏览到能够让系统生成最新的销售报告的页面。


1:销售经理视图

2.

销售报告系统根据不同的营销和销售功能需求在 Excel 中生成有针对性的报告。

3.

销售经理查看该年度的所有销售报告,然后打开一个报告。在 Microsoft Internet Explorer 中打开 Excel 报告。

销售经理标明希望特殊对待的客户。他选择目标客户的一个订单,然后在 Document Generation(生成文档)菜单上单击 Customer Discount Letter(客户折扣信函)。系统提示他输入要发送给销售代表的消息,如图 2 所示。


2Excel 报告

4.

Excel 应用程序调用 Web 服务,创建一个新的客户服务 Word 模板实例,然后添加客户数据。

5.

选定客户的销售代表登录内部门户,看到一封新的客户服务请求信函,如图 3 所示。


3:客户代表视图

6.

销售代表在 Word 中打开文档(已预填充内容和客户数据),如图 4 所示。他阅读经理的注释,然后设置折扣额。他还可以在预设的文本中添加自己的注释。完成文档修改后,销售代表让系统删除了缓存的数据,保存文档,然后将文档发送给客户。


4:客户信函

下图形象地描述了该方案的流程:


5:解决方案的流程

要求:您需要具备什么条件

要运行该解决方案,必须安装下列组件:

Microsoft Office 2003 Edition(尤其是 Microsoft Office Word 2003 和 Microsoft Office Excel 2003),包括 .NET 可编程性支持,必须在安装 Microsoft .NET Framework 之后安装

Microsoft Visual Studio 2005 Beta 1 Refresh

Visual Basic .NET,包括 Office 项目

Microsoft Visual Web Developer

安装示例解决方案

从本文开始处的链接下载并安装 MSI。有关具体的安装说明,请参阅 MSI 中的文档“Setting Up the VSTO Server Sample”

注意:建议将示例安装到默认目录中。如果需要安装到其他位置,请确保阅读设置文档中有关本方案的其他说明。

返回页首返回页首

使用服务器数据功能时的体系结构注意事项

从不同的系统上访问大型数据集的需求产生了该解决方案的要求。通常情况下,为这些系统创建客户端连接器都是件很麻烦的事情,不管它们是基于 SQL、组件还是基于其他对象。对于我们刚才讨论的方案,理想的情况是既能使用客户端应用程序的功能,又能在服务器环境下保持高性能和可缩放数据操作。

决定是否使用服务器数据功能时,应考虑以下几个问题:

将要操作的大型数据集嵌入到文档或工作簿中之前,它们是否已就绪?

客户端环境是否被锁定,使得部署连接器和其他新组件的工作难以进行?

后端系统是否具有专用的连接机制?

是否需要直接调用 SQL 来获取数据?

使用此功能的代价是所有数据绑定和可视操作都在客户端进行。尽管这样可以分散大量请求产生的负载,但当用户第一次打开文档或工作簿时,需要更多的时间和资源。尤其是在使用数据操作视图时(例如,添加小节或工作表),这一问题会表现得更加明显。如果您的业务方案还对文档性能有要求,那么第一次打开文档时,应注意保持数据量和执行的视图操作之间的平衡。

.NET 解决方案的优点

不用加载 Excel Word 就能访问文档数据的主要优点在于,Microsoft .NET 使您可以编译高性能、可缩放的服务器端代码,还可以使用具有 Word Excel 客户端组件的解决方案所能提供的一切功能。您可以通过前端 Web 服务器访问和创建文档,同时仍然能够完全逼真地显示这些文档。您可以使用严格类型的对象,也可以使用普通的 DataSet 对象。您可以使用 .NET 数据绑定功能将 DataSet 数据映射到 Visual Studio Tools for Office Version 2005 Beta 1 支持的许多新的托管代码控件。

Visual Studio Tools for Office 的优点

Visual Studio Tools for Office Version 2003 证明,将托管代码功能与 Office 绑定在一起为解决方案开发人员提供了许多新的选项,使他们能够在使用 Word 和 Excel 功能的解决方案中使用他们的 .NET 技巧和方法。使用 Visual Studio Tools for Office Version 2005,.NET 可编程性支持得到了增强,而体验则被集成到 Visual Studio Shell 中。它还包括向集成了客户端和服务器功能的企业应用程序中添加 Office 功能的新机制。

返回页首返回页首

部署和安全性注意事项

客户端注意事项

包含服务器数据的 Word 和 Excel 解决方案的客户端部署和安全性配置与所有 Visual Studio Tools for Office Version 2005 Beta 1 项目的原则相同。

因为数据绑定和其他用户界面更改都在客户端进行,所以当用户在进行服务器数据绑定后第一次打开文档时,大型数据集可能会影响性能。

建议:您可以随着用户激活不同的工作表而将数据逐步绑定到这些工作表上。还要查看数据是否已经绑定(并保存到实际的文件中),以避免重复的数据绑定操作。

服务器注意事项

部署 Visual Studio Tools for Office Version 2005 Beta 1 解决方案的服务器组件时应遵循配置和部署基于服务器的应用程序的标准 .NET 原则。但是,还应该考虑某些特定的要求:

对模板的访问权限。在通过模板生成文档的方案中,服务器代码需要对模板位置具有读取权限;如果新文档作为文件写出,还需要对模板目标位置具有写入权限。

建议:将新文档存储在 Microsoft SQL Server 中。这样,即使对文件系统和路径生成不具有写入权限也能加载文档,还可以实现全文索引搜索方案。

数据安全性。您可能会在方案中使用文档提交数据。这样,只要能够访问该文档,任何人都能查看文档中的数据。如果数据具有时效性或者属于私有数据,这样就会产生问题。即使对文档应用了密码保护也会产生问题。

建议:不要存储已提交文档的副本。在可能需要路由文档的方案中,路由之前应从文档的数据块中删除所有敏感数据。

模板完整性。因为您的解决方案可能需要模板,而这些模板都基于标准的 Office 格式,所以非开发人员用户所做的修改可能会破坏模板。

建议:从开发过程中的控制以及部署过程中的安全性两个方面,按照处理任何其他资源的方式处理作为 Visual Studio Tools for Office Version 2005 Beta 1 项目一部分的模板文件。

返回页首返回页首

示例解决方案的开发步骤

示例解决方案是按照以下步骤创建的:

创建一个 Visual Studio Tools for Office Version 2005 Beta 1 Excel 项目,以包含销售报告。添加数据块、数据绑定列表、数据绑定代码和自定义菜单,以调用生成客户信函的 Web 服务。

创建一个 Visual Studio Tools for Office Version 2005 Beta 1 Word 项目,以包含客户信函。添加数据块、自定义用户控件和代码,以便向操作窗格中添加新的用户控件。将 XML 架构映射到文档结构,为 XML 和用户控件添加数据绑定代码,然后添加事件处理程序,以允许设置折扣额并清除缓存的数据。

创建一个共享的类库。这个库中有一个数据访问层,它使用文件中存储的 DataSet 对象 XML,这样就不需要 SQL Server 访问。库中还包括组件调用,用于生成 Excel 工作簿(由 ASPX 调用)和 Word 文档(由 Web 服务调用)的数据绑定实例。

创建一个 ASP.NET 项目。Default.aspx 调用报告生成方法并在生成报告后立即显示报告。Letters.aspx 列出现有的所有信函模板实例。同时,从 Excel 中调出 Web 服务,以调用客户信函生成方法。

解决方案组件

下图概述了解决方案的组件:


6:解决方案的体系结构概述

设置用于缓存数据的 Word Excel 代码

在创建启用了服务器的 Word 或 Excel 项目之前,首先要告诉编译器您希望服务器端代码可以看到哪些 DataSet 对象。要完成此操作,可以向 DataSet 或从 DataSet 继承的任何成员级变量中添加 Cached() 属性。

在 Excel 项目中,一个 DataSet 对象存储服务器添加的报告数据。Sheet1 类中的以下代码可实现此功能:

<Cached()> Protected reportData As DataSet

在 Word 项目中,ThisDocument 类中的以下代码允许服务器向文档中添加特定的客户和订单信息,以及来自销售经理的消息。

<Cached()> Protected configData As DataSet
<Cached()> Protected orderHeaderData As DataSet
<Cached()> Protected orderLineItemData As DataSet

将数据绑定到服务器上的 Word Excel

为了简化 ASP.NET 代码的编写,还为了表明此功能确实可用于使用了针对服务器执行的类库的解决方案,我创建了一个简单的类以创建 Word 和 Excel 文件的填充实例。因为对 Word 和 Excel 都可以使用 ServerDocument 类及其相关类,所以代码基本上是一样的。在我的应用程序中,Word 和 Excel 之间的唯一区别是 Word 具有几个 DataSet 对象,而我为 Excel 创建了多个工作簿副本以模拟报告解决方案。

注意:为了消除示例中的 SQL Server 访问要求,数据访问类可以读取从 DataSet 对象中导出的两个 XML 文件。数据来自 NorthWind 数据库中的 Orders 表。

以下示例使用 Report 类中 GenerateCustomerLetter 方法的代码,该类可以生成客户信函文档的新副本,并使用选定订单 ID 的数据和销售经理的消息填充这些副本。

设置类库项目

要在项目中使用服务器文档功能,您需要添加对 Microsoft.VisualStudio.OfficeTools.Interop.Runtime 程序集的引用。安装 Visual Studio 2005 Beta 1 时,此程序集会与 Visual Studio Tools for the Microsoft Office System Version 2005 Beta 1 一起安装。

加载 ServerDocument

服务器文档功能依赖于添加到 Excel 工作簿或 Word 文档二进制文件的自定义存储。ServerDocument 类在目标文件中进行读取,使您可以访问其中缓存的数据项。

ServerDocument 提供了几个构造函数,例如,允许从路径、字节数组或数据流中进行初始化。我选择了使用接受路径参数的构造函数,为模板(位于变量 destinationPath 中存储的路径中)制作了一个新的副本,然后实例化所复制的文件路径中的服务器文档,如以下代码所示:

Dim serverReport As ServerDocument = New ServerDocument(destinationPath)

现在已经具有文档的活动引用,所以可以访问缓存的数据了。

访问 CachedDataItems

ServerDocument 中,缓存的数据分布到包含数据项的各个视图中。CachedDataViewCachedDataItem 类型就表示了这些对象。您可以按名称找到特定的视图或数据项,名称符合以下约定:

Word 视图。完整的命名空间需要包括 ThisDocument。例如:VSTOServerSample.ThisDocument

Excel 视图。完整的命名空间需要包括 ThisWorkbook 或包含代码的 WorkSheet 类的名称。例如:VSTOServerSample.Sheet1

Word Excel 数据项。使用 Cached() 属性声明变量的名称。例如:orderHeaderData from <Cached()> Protected orderHeaderData As DataSet

在服务器示例应用程序中,我为需要访问的视图和三个数据项设置了变量:

Dim viewName As String = "VSTOServerSample.ThisDocument"
Dim itemNameHeader As String = "orderHeaderData"
Dim itemNameLineItem As String = "orderLineItemData"
Dim itemNameConfig As String = "configData"

现在我可以访问文档中的实际数据项,并使用我想添加的数据更新它们。首先,我使用 ServerDocument 的 CachedDataManifest 获得所需视图的引用:

cachedView = serverReport.CachedDataManifest.Views(viewName)

然后使用 CachedDataView 实例访问所需的 CachedDataItems

cachedItemHeader = cachedView.CachedData(itemNameHeader)
cachedItemLineItem = cachedView.CachedData(itemNameLineItem)
cachedItemConfig = cachedView.CachedData(itemNameConfig)

更新数据并保存文档

现在我可以使用数据项引用用新数据更新数据项。我使用了两个已经填充的 DataSet 对象,并从 EmbeddedConfiguration 类(使用 DataSet 作为其内部存储)中获得第三个对象:

cachedItemHeader.SerializeDataInstance(dsOrderHeader)
cachedItemLineItem.SerializeDataInstance(dsOrderLineItem)
'获取配置数据
Dim config As New EmbeddedConfiguration
config.Message = messageToRep
cachedItemConfig.SerializeDataInstance(config.DataToCache)

现在,我需要做的就是保存并关闭 ServerDocument

serverReport.Save()
serverReport.Close()

现在,我已具有项目的文档部分的新副本,其中填充的数据是在 Word 中打开文档时代码可以绑定的数据。我用几行代码准备了一个用于服务器访问的 Excel 和 Word 项目,还编写了将新数据绑定到这些文档中的例程,以及无需加载 Word 或 Excel 应用程序就可以在服务器上运行的例程。

其他 ServerDocument 功能

如果具有 ServerDocument 的有效实例,您可以在 CachedDataManifest 中遍历视图和数据项集合:

For Each cachedView As CachedDataView In _ 
serverDocumentInstance.CachedDataManifest.Views
For Each cachedItem As CachedDataItem In cachedView.CachedData
'对 CachedDataItem 执行某些操作
Next
Next

如果具有 CachedDataItem 的实例,并且希望将数据读入 DataSet 对象,您可以将该数据项中的架构和 XML 读入一个新的 DataSet

dim newDataSet as DataSet = New DataSet()
newDataSet.ReadXmlSchema(New StringReader(cachedDataItemInstance.Schema))
newDataSet.ReadXml(New StringReader(cachedDataItemInstance.Xml))

完成 Excel 模板

设置工作表

显示报告的工作表需要具有某些格式和一个用于绑定数据的列表控件。Sheet1 类还包含创建和删除自定义菜单的代码。

注意:在 Internet Explorer 中加载 Excel 时,自定义菜单自动化无法持续运行。我在工作表中包含了一个按钮,如果菜单失败,按钮就会显示在浏览器加载框中。如果直接从文件系统中打开文档,就会加载菜单。

图 7 显示了配置完整的工作表。


7Visual Studio 中配置完整的工作表

绑定到列表对象

ListObject 是一个新的视图控件,用于容纳 Excel 列表。这样我们就可以很容易地将数据绑定到该列表:

If (Not reportData Is Nothing) Then
listReport.DataSource = reportData.Tables(0)
Else
listReport.DataSource = Nothing
End If
listReport.Refresh()

调用 Web 服务以生成客户信函

Sheet1 类中的 generateLetter 专用方法查看是否在列表中选择了有效的行,获取订单 ID 值,提示用户输入发送给客户代表的消息,然后调用客户信函 Web 服务。

完成 Word 模板

设置文档

文档项目包含某些格式、模板内容以及从被引用架构到 XML 节点之间的映射。ThisDocument 类将当前用户的姓名添加到文档的签名区域中,将 OrderInfo 用户控件添加到操作窗格中,将服务器上添加的数据绑定到 XML 节点,并处理来自用户控件的事件。项目中还包含用户控件和一个窗体,该窗体用于在 DataGridView 中显示订单的详细信息。

图 8 显示了配置完整的文档。


8Visual Studio 中配置完整的文档

文档操作窗格的用户控件

此自定义用户控件显示请求中的某些数据,包括销售经理在生成信函时输入的注释。它还允许代表设置折扣额,此操作将更新文档。代表还可以清除文档中缓存的数据,从而允许其他用户打开文档而不会更改文档的内容。

图 9 显示了用户控件布局。


9:操作窗格用户控件

使用 Word XML 控件将数据绑定到 XML 节点

在准备文档时,我已将 XML 架构元素映射到文档内容。Visual Studio 为映射的每个节点添加了 Microsoft.Office.Word.Tools.Word.XMLNodes 类的一个实例。这使您可以直接在节点上设置数据,而不用浏览整个架构。

注意:Visual Studio Tools for Office Version 2005 将这些 XML 节点的引用添加到与 ThisDocument 相关的局部类中。局部类是 Visual Studio 2005 中引进的一项新功能。

加载文档时,我可以读取添加到服务器上的数据,并在正确的节点对象上设置值。下面的代码显示了如何使用 DataSet 对象中的正确值设置 Order ID 节点:

Table1OrderIDNodes.Item(1).Text = orderHeaderRow("OrderID").ToString()

清除数据缓存

当用户单击 Clear Cached Data(清除缓存的数据)时,我先初始化 DataSet 对象,保存文档,然后从操作窗格中删除控件。此操作(与文档保护或权限管理配置相结合使用)可以防止更改文档的内容。清除文档数据的代码如下所示:

orderHeaderData = Nothing
orderLineItemData = Nothing
configData = Nothing
Me.Save()
MessageBox.Show("All cached data has been cleared from the document.")
Me.ActionsPane.Controls.Remove(controlContext)

ASP.NET Intranet

小结

ASP.NET Web 项目包含两个简单的页面,用于显示可用的报告和信函。Default.aspx 页面还允许用户创建 Excel 报告文件。Letters.aspx 显示了所有可用客户信函的列表。

返回页首返回页首

代码安全性

本文提供的示例代码仅供参考,未经修改不能在已部署的解决方案中使用。特别要考虑代码安全性问题。

为了说明此示例应用程序的简单性,已使用 Microsoft Security Developer Center 的“Threat Modeling”部分介绍的病毒建模过程和工具识别出潜在的病毒列表。

下面列出了已识别的某些病毒,扩展或部署此解决方案之前应该考虑这些问题:

病毒的危害入口点已知的预防措施

XML 数据文件受到破坏且包含无效数据。

XML 数据文件

将 XML 数据文件标记为只读文件。

Web 服务受到电子欺骗,应用程序的行为被改变。

ASP.NET Web 服务

控制 DNS 条目和服务器映射。

有关代码安全性的详细信息,请访问 Microsoft Security Developer Center

返回页首返回页首

结论

在本文中,我向您介绍了 Visual Studio Tools for Office Version 2005 Beta 1 中强大的新的服务器功能。本文开头的方案和体系结构概述使您了解到这些功能在哪些方面可能适合您需要开发的解决方案。附带的示例解决方案清楚地说明了开发解决方案所需的主要组件。示例解决方案还使用某些适用于 Word 和 Excel 解决方案开发的新的客户端功能。

返回页首返回页首

参考资料

Visual Studio Tools for Office Version 2005

Visual Studio 2005 Beta 1

Visual Studio Tools for Office Version 2005 Beta 1 Online Documentation

Visual Studio Tools for Office Version 2005 Beta 1 Samples

Visual Studio Tools for Office Version 2005 Beta 1 Hands-on Labs

Microsoft Office Developer Center:Visual Studio Tools for the Microsoft Office System

Visual Studio Tools for Office 2005 Blog

Visual Studio Tools for Office Newsgroup:microsoft.public.vsnet.vstools.office

代码安全性

Writing Secure Code

Microsoft Security Developer Center

Protect Your PC

返回页首返回页首

关于作者

Matt Hessinger 自 1997 年起一直从事 Office 开发工作;在 2002 年发布 .NET 之前,一直从事 .NET 的研究工作。在过去几年中,他组织并领导了使用 Word、Excel 和 Microsoft Office PowerPoint 的服务器解决方案的开发。目前他的工作重点是帮助客户构建 .NET 解决方案体系结构,这种体系结构现在不管在客户端还是服务器上都将 Office 作为首选组件。

© 2005 Microsoft Corporation 版权所有。保留所有权利。使用规定。

转到原英文页面


返回页首返回页首