Visual Studio Tools for Office(VSTO)的目标受众是“专业开发者”。这个术语有多重含义,而我们听到的最受认可的定义是“通过写代码获取报酬的人”。换句话说,这是他的主业。他不是部门开发者,比如说,把写Excel宏作为会计任务的一部分的会计人员,或者定制Word来增加生产力的办公人员。相反,他是一个有兴趣把Microsoft Office作为开发平台的NET开发者。.
我们相信传统的Office开发者也会对VSTO感兴趣。在加入Microsoft之前,我们俩都是VBA开发者,定制Office应用程序,并且我们非常有兴趣了解托管代码。在这方面,我们不认为我们是唯一的。有上百万VBA开发者,许多人都有兴趣学习下一代Office开发。现在的VSTO图书和文档通常都不是为VBA开发者写的,它假设开发者熟悉Visual Studio、面向对象编程和NET Framework。这就不难理解为什么它把重点更多地放在VSTO的功能和如何使用笨重的Office对象模型。
我们想为VBA开发者写一本书。虽然你可能不熟悉NET编程,但你有一个重要的优势:Office对象模型的知识。作为一个Office开发者,你很可能非常熟悉Office应用程序,在操作Office对象模型方面也有丰富的经验。我们认为学习托管代码的最佳环境是你已经熟悉的Office开发环境。
VSTO把Office开发带到NET的世界,和VBA相比,它既有优点也有缺点。使用VSTO,你可以更好地定制Word、Excel和Outlook,例如,创建自定义任务窗格、向文档添加智能标记和把文档上的对象绑定到数据源。使用VSTO 2005 SE,你可以为6个Office应用程序创建插件、定制新的2007 Microsoft Office系统的功能区和创建应用程序级别的自定义任务窗格。
我们有幸和为VSTO进行设计、编码、测试和写文档的人一起工作,并从他们那里学到了很多。我们得到了内部人士对VSTO的看法,我们希望以一种易懂和有趣的方式把这些信息传递给你。——Kathleen McGrath和Paul Stubbs
言
世界上有上百万Microsoft Office开发者。大多数创建Visual Basic for Application(VBA)解决方案的人都不会把他们自己看作Office开发者,但他们是。事实上,如果你使用VBA定制Office文档,那么你就在使用其中一个最受欢迎的开发平台了。
你可能已经开始了开发生涯,在Word或者Excel里录制宏来自动化重复的任务。不久之后,你开始调整你的宏,让它们按照你所需的方式工作。你或许有过这样的经历,由于准时为老板创建了重要的文档,成为了办公室的英雄。如果你和很多人一样,那么你已经深入到VBA编码了。你现在从零开始创建VBA项目,代码的行数也激增。你甚至可能已经发现VBA的一些局限性,从而妨碍你创建真正想要的解决方案。
你或许已经听说Microsoft在向VBA语言添加新功能上并不积极。这并不是说Microsoft将会停止支持VBA,而是说不会增加新的功能,例如Web服务、XML和其他诸如代码段的功能。但是,如果你使用Visual Studio 2005 Tools for Office(VSTO)和Visual Basic,你就可以利用这些新功能。
你可能已经开始转到使用VSTO开发Office并且想了解更多内容。或许你现在只是想试一下VSTO,然后看看使用托管代码能为解决方案带来哪些增强。
简而言之,使用VSTO和Visual Basic 2005能使工作效率到达一个新的层次,而无论你在到达这个新的层次的路上走了多远,本书都会帮助你达到那个层次。
本书面向的读者群
我们是为VBA开发者写本书的。“VBA开发者”是一个很宽泛的术语,它包括任何录制过简单的宏的人和创建企业级解决方案的专业开发者。本书是为那些人而写的,从只懂很少VBA编程的初级VBA开发者到已经使用Visual Basic 60或者Visual Basic 2005的高端开发者。
这是一本关于从VBA转到Visual Basic 2005的书。你会学到如何用Visual Basic 2005创建很好的Office解决方案,Visual Basic 2005将是你认为可以使用的最好的Office开发语言。
本书的目的
我们俩有使用VBA创建Office解决方案的经验,我们认为有必要帮助其他人转向使用Visual Studio 2005和VSTO进行托管编程。和VSTO团队一起工作使我们对VSTO和Office开发有了更深的理解。我们和很多VBA开发者谈过,他们的问题是如何把他们用VBA写的代码翻译成VSTO和Visual Basic 2005。多年来,我们开始看到VBA开发者所碰到的问题的模式。我们决定写这本书来满足这些需要。
阅读本书的方法
本书要按章节顺序阅读。每章都是基于前一章的概念的。这些概念的复杂度也随每章增长。..
一开始,我们向你示范一些基本的东西,例如创建一个项目并运行它。如果你对VSTO或者Visual Basic 2005不熟悉,我们推荐你从头开始并按你的方式读下去。如果你熟悉Office和NET编程,你可以直接跳到感兴趣的章节。
我们还在附录里包含了高级示例,在你熟悉VSTO编程之后可以使用。附录A示范了如何创建XML代码段。这些代码段允许你向解决方案插入代码,使创建应用程序变得更快更容易。附录B示范了一个为Outlook Inspector创建工具栏的方法。
.本书的组织结构
这里是每章的简要概述。
第一部分:VSTO概述
第1章介绍了VSTO,示范了如何用Visual Studio集成开发环境(IDE)创建解决方案,并介绍了一些你将会在其他章节深入学习的VSTO功能。
第2章示范了如何使用IDE的一些功能,包括如何生成、运行和调试解决方案。本章也向你示范了如何使用集成帮助系统更容易地找到使用VSTO编程的相关信息。
第3章讲述NET Framework的基础知识,包括讨论面向对象编程和Visual Basic 2005的新功能,也将会探讨公共语言运行库的功能和Office主互操作程序集(PIA)。
第4章讨论了从VBA转到Visual Basic的原因,并展示了VBA里没有的Visual Basic强大的新功能。你也将会看到如何从VBA向Visual Basic 2005迁移关键的语言功能,例如从UserForms转到Windows Forms。
第二部分:Word和Excel
第5章介绍了Document Actions任务窗格。你将会学到如何管理和设计操作窗格。你也将会学到如何使用XML和操作窗格创建强大的上下文相关的解决方案。
第6章示范了如何创建Word项目并解释项目背后的结构并且将介绍如何在文档上使用Word控件绑定数据和处理事件。
第7章示范了如何创建Excel项目并解释项目背后的结构并且将介绍如何在工作表上使用Excel控件绑定数据和处理事件。
第8章示范了如何向解决方案添加控件,并介绍如何向工具栏和菜单添加控件,如何在文档或者工作簿上使用Windows Forms控件,以及如何在运行时创建控件。
第9章讲述了如何在Word和Excel里创建文档级别的VSTO智能标记并介绍如何识别术语和表达式以及如何处理智能标记的操作。
第三部分:Outlook和其他内容
第10章解释了如何为Outlook创建应用程序级别的定制程序,并将介绍Outlook对象模型,如何定制菜单和工具栏,如何保护和调试Outlook插件。
第11章介绍了VSTO的安全模型并示范了如何保护和部署Word、Excel和Outlook项目。你将会看到如何使用Publish Wizard和Visual Studio Setup项目进行部署。
第12章描述了把VBA解决方案迁移到VSTO的原因。你将会学到更多转换策略并演练一个转换示例。
第13章讨论了如何向文档添加VSTO定制程序(和从文档中移除它)。本章也向你示范了如何访问服务器上的VSTO文档里的数据缓存。
第14章包含了使用VSTO和Office 2007的例子。你将会学到如何对Office 2007的新功能编程,例如应用程序级别的自定义任务窗格、Office功能区和Outlook窗体区域。
致谢
我要感谢我的丈夫Mark Shelton,他在整个过程里默默地支持我,审阅了许多章节,在我集中精力展开这个项目的时间里,他显示出无比的耐心。另外,非常感谢我的合著者Paul Stubbs。感谢Paul在技术方面的专业知识、他对完成这个项目所付出的努力和他的幽默感。——Kathleen McGrath我要感谢我的家人,在长时间的写作和修订中对我的支持,尤其是我的妻子,她把一切事情都处理很好,让我可以集中精力,尽可能把书写好。我还要感谢Kathleen邀请我为这本书写部分章节。和Kathleen合作很棒,她对VSTO的热情使这本书成为可能。——Paul Stubbs我们还要感谢我们的编辑Joan Murray,让我们有机会写本书,并且指导我们完成这个过程。特别感谢我们的系列编辑Mike Hernandez,因为他允许这本书成为Mere Mortals系列的第一本与产品相关的书。
另外,我们要感谢我们的技术编辑和AddisonWesley的制作和营销团队,尤其是Kim Boedigheimer、John Fuller、Lara Wysong、Curt Johnson和Eric Garulay。感谢所有向我们提供宝贵建议的技术审阅者,包括Eric Carter、Mei Liang、Justin Whitney、Peter Jausovec、Rory Plaire、Joe Kunk、McLean Schofield、Thomas Quinn和Frank Rice。VSTO产品组创建了如此棒的产品,我们为每个成员感到自豪!
作译者简介作者简介
Kathleen McGrath在Microsoft做技术作家。她为Visual Studio 2005 Tools for the Microsoft Office System(VSTO)、Visual Studio Tools for Applications(VSTA)和Visual Basic写过文档。在加入Microsoft之前,她是一个VBA开发者,为金融印刷及法律行业定制Word应用程序。Kathleen还创建了视频短片,演示VSTO和Visual Basic的功能,这些录像放在她的博客上。她的博客是http://blogsmsdncom/kathleen。
Paul Stubbs在Microsoft的Visual Studio Tools for Office(VSTO)组做程序经理。除了VSTO,Paul还和VSTA组合作为InfoPath 2007和独立软件供应商(ISV)开发新的托管代码应用程序的可编程开发工具。Paul为《MSDN Magazine》写过文章,也在诸如TechEd和TechReady的活动上演讲过。Paul还参与Microsoft论坛的开发者社区,他的博客是http://blogsmsdncom/pstubbs。
译者简介
李永伦
连续3次获得 Microsoft MVP 称号,现就职于高知特信息科技(上海)有限公司。喜欢阅读《新发现》、《经理人》和《心理月刊》,曾参与《C# 和 NET 实战: 平台、语言与框架》一书的翻译。好于博客中长篇大论自己之见解,也醉于阅读他人短小精巧之言论。你可以在 http://allenloopleecnblogscom 阅读到他的技术文章,也可以通过 allenlooplee@yahoocomcn 与他交流。...