27,59 €
With the arrival of Visual Studio Tools for Office 3.0 (VSTO), developers can now program Microsoft Office from the .NET framework. There are huge books in the market that give loads of unnecessary information but are of no real help to brand-new Office developers. Wouldn't it be great to have a precise book that simply covers the basics and introduces programming Office 2007 with VSTO using the latest version of Visual Studio? This is that book.
VSTO 3.0 for Office 2007 Programming shows you how to write Office 2007 applications with Visual Studio Tools for Office 3.0. Learn how to automate tasks in InfoPath, Word, Excel, Outlook, PowerPoint, Visio, and Project 2007 with greater programming power and flexibility than was available from the VBA language. With this book and the mastery of VSTO you will learn, Office will no longer be an application to you; it will be a platform for developing custom applications.VSTO 3 is the most recent version of VSTO, making use of Visual Studio 2008, and working with Office 2007. This book shows how VSTO puts Office automation into the hands of developers, allowing them to use the power of the .NET framework to automate Office applications thus increasing the speed of the applications, their security, and the opportunity to use other parts of the .NET Framework such as its data handling capabilities.
This book builds a solid programming foundation in VSTO for brand-new Office developers. You will leave behind the world of VBA programming and take your first steps into the powerful and exciting world of using C# to create Office 2007 applications. Packed with examples and covering all the main Office applications, this book will have you creating fully featured Office extensions before you know it.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 237
Veröffentlichungsjahr: 2009
Copyright © 2009 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold ithout warranty, either express or implied. Neither the author, Packt Publishing, nor its dealers or distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: March 2009
Production Reference: 1040309
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton,
Birmingham, B27 6PA, UK.
ISBN 978-1-847197-52-8
www.packtpub.com
Cover Image by Parag Kadam (<[email protected]>)
Author
Vivek Thangaswamy
Reviewers
Helmut Obertanner
Maarten van Stam
N Satheesh Kumar
Senior Acquisition Editor
Douglas Paterson
Development Editor
Dilip Venkatesh
Technical Editor
Rakesh Shejwal
Copy Editor
Sumathi Sridhar
Indexer
Monica Ajmera
Production Editorial Manager
Abhijeet Deobhakta
Editorial Team Leader
Akshara Aware
Project Team Leader
Lata Basantani
Project Coordinator
Joel Goveya
Proofreader
Dirk Manuel
Production Coordinator
Shantanu Zagde
Cover Work
Shantanu Zagde
Vivek Thangaswamy is a software solutions developer and technical writer, living and working in the enjoyable surroundings of Chennai city in India. Although his range of technical competence stretches across various platforms and lines of businesses, his specialization is in the area of Microsoft enterprise application architectures and Microsoft server based product integration. Vivek is working with Microsoft technologies such as .NET, SharePoint, BizTalk, VSTO, and MS Performance Point Server for one of the world’s largest Software Services companies. He holds several Microsoft certifications and Microsoft MVP awards. He holds a bachelors degree in Information Technology, and is currently pursuing his Masters in Business Administration (Finance). Vivek loves to spend time with his friends, and writing poems in his mother tongue.
To my brother, Arun Thangaswamy, who shaped me for the future and always brings out the best in me.
To my mother and father, who taught me to think, and gave me the courage to dream bigger.
To all of my friends, who bring joy to my life.
Helmut Obertanner was born in 1968 in Munich, Germany. After school, he became an Electronic Engineer, and his first experience with building computers came in 1985. On graduation, he started repairing Commodore Business Machines (PET). Later on, he specialized in repairing the legendary C64, Amiga and Atari consoles, and the very first PCs. From 1990 to 1995, he worked as a systems engineer, building heterogeneous networks with Windows NT, Novell, and Apple. After that, he was administrator for an architecture company, responsible for the entire IT communications, CAD, and Office support. In 2000, he changed to being an IT systems supplier, and worked as a technical consultant for Exchange Server, Antivirus, Firewalls, and Backup/Restore solutions. In 2002, he started developing Software, building Outlook add-ins with VB6. When the Microsoft .NET Framework 1.0 came out, he was one of the first to try and build managed add-ins for Office. Due to his technical knowledge, sample codes, and help to other Office Developers he was awarded the MVP for VSTO by Microsoft. He is always interested in working on new technologies.
Currently, he is working for PHARMATECHNIK GmbH & Co. KG in Starnberg, Germany, building software for pharmacies using .NET and C#.
Maarten van Stam holds a B.Sc in Computer science (Graduation in 1996, HIO, The Hague, The Netherlands), and has worked as a software engineer for over 20 years. He started programming dBase and Clipper (DOS) systems in the early 80's, followed by Pascal and C++ in the late 80's, C++ and VB "for Windows" in the early 90's, and continues to program in VB.NET and C# as part of the Microsoft's .NET Framework.
Maarten has specialized in Office development, .NET, and VSTO, and has received the Microsoft MVP award in the area of Visual Developer-VSTO for voluntarily sharing expertise with others. In addition to this role, Maarten takes part in several TAP programs, beta tests, software design reviews and advisory councils for software tools such as Visual Studio Team System and Microsoft Office. In addition to working in the software business professionally, Maarten is also an organizational member in the "Software Development Network", currently the largest developer community group in the Netherlands (www.sdn.nl ).
Besides tech-reading Beginning Office 2007 Development with VSTO, Maarten also reviewed Visual Studio Tools for Office 2007: VSTO for Excel, Word, and Outlook by Eric Carter and Eric Lippert (ISBN 0321533216).
Maarten's insights can be read and followed on www.maartenvanstam.nl, where you can find his blog all aspects of software development.
N Satheesh Kumar has a Bachelor's Degree in Computer Science Engineering and has around 12 years of experience in software development life cycle, project and program management. He is also a PMI-certified Project Management Professional (PMP). He started his career developing software applications using Borland software products in a company based in India, and then moved to the United Arab Emirates and continued developing applications using Borland Delphi and customizing Great Plain Dynamics (now known as Microsoft Dynamics) for an automobile company. Later, he spent three years designing and developing application software using Microsoft products for a top multinational company, and then spent a couple of years in project management and program management activities. Currently, he works as a technical architect for a top retail company based in the United States. He works with the latest Microsoft technologies and has published many articles on LINQ and other features of .NET.
Satheesh is the author of the book LINQ Quickly, and has co-authored the book Software Testing with Visual Studio Team System 2008.
I would like to thank my family members and friends for their continued support in my career and success.
Welcome to VSTO 3.0 for Office 2007 Programming. This book covers Visual Studio Tools for Office programming, with a primary emphasis on the several new VSTO programming features available for Microsoft Office 2007. VSTO is a phenomenon that means different things to different people. This book introduces developers to VSTO as a platform for developing enterprise solutions based on Microsoft Office application.
This book covers Microsoft VSTO objects for Microsoft Office applications such as Word, Excel, PowerPoint, Visio, Outlook, and Project, which can be a significant challenge for the typical VBA developer—one set of target readers for this book. This book is focused more on the features of VSTO and how to work with the heavily-built Office object models. Although you might not be familiar with .NET programming, this book will help you to adapt easily to the new VSTO with .NET programming environment.
VSTO brings the Office applications to the .NET programming world. With VSTO 3.0, you can create add-ins for the six Microsoft Office applications, customize the Ribbon feature of the Microsoft Office 2007 suite, and create application-level custom task panes. This book strives to follow the same model. It explains VSTO’s concepts and basic programming in a way that helps beginners to get started and helps advanced users to get better. In addition to this, the book includes chapters for all of the Office applications, which describe how the programming and customization works, what its requirements are, and how it will simplify typical tasks.
Chapter 1 provides a panoramic overview of Visual Studio Tools for Office. This chapter provides you with a firm grounding in what VSTO really is. We look at how VSTO addresses the Microsoft Office 2007 customization area, its feature set, and its architecture.
Chapter 2 starts by explaining the object model and programming approach in InfoPath 2007. We then take a look at how we can customize InfoPath with Visual Studio 2008. The later part of the chapter explains how to work on task pane creation, development of add-ins, and so on.
Chapter 3 begins with a description of creating a Word solution using Visual Studio 2008, and as we move further, the chapter explains how to create document-level solutions and application-level solutions. It then explains the deployment process. It also covers key Word objects, with examples of how to work with SQL data manipulation, and so on.
Chapter 4 takes a look at working with Excel objects, and covers key objects with example solutions. It focuses on explaining host items and host controls and provides examples of some common solutions. It also gives you an idea of worksheet protection, smart tags, charts, and so on, with the help of examples.
Chapter 5 starts the chapter with an overview of Outlook objects and moves on to Outlook folder manipulation, mail item processing and working with meetings and appointments. In the later part of the chapter, we work with Ribbon customization for Outlook, with examples and many such customizations for Outlook.
Chapter 6 covers three Office applications: PowerPoint, Visio, and Project. Here, we work with shapes in Visio, Ribbon customization for PowerPoint, and dynamic project item manipulation, and so on.
This book is aimed at .NET developers who are familiar with C# and who want to get to grips with programming Office 2007. The book will also be useful for people who already have experience with VBA and programming Office, but are ready to take the next step into the more powerful world of Office programming with VSTO.
Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.
To send us general feedback, simply send an email to <[email protected]>, making sure that you mention the book title in the subject of your message.
If there is a book that you need and would like to see us publish, please send us a note via the SUGGEST A TITLE form on www.packtpub.com, or send an email to <[email protected]>.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book on, see our author guide on www.packtpub.com/authors.
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
Visit http://www.packtpub.com/files/code/7528_Code.zip to directly download the example code.
Although we have taken every care to ensure the accuracy of our contents, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in text or code—we would be grateful if you would report this to us. By doing this you can save other readers from frustration, and help to improve subsequent versions of this book. If you find any errata, report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the let us know link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata added to any list of existing errata. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.
Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide the location address or website name immediately, so that we can pursue a remedy.
Please contact us at <[email protected]> with a link to the suspected pirated material.
We appreciate your help in protecting our authors, and our ability to bring you valuable content.
You can contact us at <[email protected]> if you are having a problem with any aspect of this book, and we will do our best to address it.
VSTO is a framework for the development of solutions for Microsoft Office tools. By using VSTO and what is known as managed code, developers can build Office solutions. Before we begin the chapter, let us see an overview of what we are going to cover in this chapter. This book is for Office Developers using Visual Studio Tools for Office. This chapter will make you comfortable with Visual Studio Tools for Office 3.0. We will be covering:
VSTO helps you to build document-level solutions, where a solution is specific to the document for which it is deployed. You can build application-level solutions by using the application-level add-in for your solution development. The application-level add-in is accessible to all of the documents processed through that particular application.
VSTO is a platform for Microsoft Office solution development, built on top of .NET framework. The latest release is version 3.0. Starting with VSTO 3.0, developers have integrated Office clients into the Visual Studio designer and the .NET layers on top of the native object models.
The image above represents how VSTO has been integrated with the Visual Studio 2008 environment. Now, the term "Office solutions" appears a lot. You may have questions like—"What exactly, is an Office solution anyway? What kind of Office solutions can be developed using VSTO?". Let's answer these questions.
An Office solution is a solution developed for Microsoft Office applications, including Word, Excel, InfoPath, Access, or PowerPoint. With the help of VSTO, developers can build Office solutions using what is known as managed code.
Managed code is program code that executes under the supervision of a .NET Framework Common Language Runtime. Programs in any programming language can be compiled using either managed or unmanaged code. Code that is built on the .NET framework is meant to be managed code. Managed code brings easy deployment to your VSTO solution, as compared to VBA(Visual Basic for Applications). VBA is a programming combination of Visual Basic associated with an integrated development environment for Microsoft Office applications.
Unlike VSTO, VBA doesn't support programming languages. VSTO gives you the full support of a programming language to build Microsoft Office solutions. VSTO helps you to build a secure and safe solution for your Office application. All of the VBA scripts will be stored inside the document for which you are programming, while VSTO brings you the new concept called document-level solutions and application-level solutions.
Using VSTO, Office developers can build solutions such as Add-Ins; Add-Ins are additional program components that can be added to Office applications by using VSTO. For example, Microsoft offers a few free add-ins for Office 2007 licensed users, such as the 2007 Microsoft Office add-in Microsoft Save as PDF or XPS—this add-in facilitates the saving of a document in PDF or XPS format. You can also customize existing Office application features, and you can program against existing options available in the Office application. Let's say you need to save or export all of the content from Microsoft Office Word 2007 to Microsoft Office Excel 2007 on the click event of a button placed on the toolbar, or during some action.You can create an add-in for this kind of activity using VSTO. This is one scenario where you can use a VSTO add-in for your Office solution development.
Before VSTO, Office developers had to use VBA, VB6, or C++ to create so called shared COM Add-Ins. All Add-Ins share the same address space, and if one fails, the host application or all other Add-Ins crash. Unlike VSTO, VBA code is written directly in the Office application's IDE and is compiled at run-time. All VBA scripts are stored inside the document for which you were programming. In VSTO, this is termed a document-level solution, where the solution is specific to the document for which it is deployed. Similarly, in VSTO, document level add-ins are delivered within a specific document. For example, let's say that you include functions in a specific Microsoft Office Word document—the functions are available only when you open that particular Word document. Document level add-ins are relevant only to Word and Excel. Document-level customizations are the VSTO version of VBA macros in Word or Excel.
VSTO introduces a new concept called application-level solutions. With an application-level solution, the solution is accessible for all documents processed through that particular application. You can build application-level solutions by using the application-level add-in for your solution development.
VSTO gives you two fully-supported programming languages in which to build Microsoft Office solutions that will run in all Microsoft Office applications—C#, VB.NET, or XML. As a VSTO programmer, you will need to have a basic knowledge of C# to program Office applications using C#. In this book, we will assume that you have a basic knowledge of C# concepts such as classes, namespaces, and methods. In addition, you should know the basics of XML.
The following MSDN reference link will help you learn about .NET and C#: http://msdn.microsoft.com/en-us/vcsharp/aa336804.aspx
In most of the Office 2007 applications, Microsoft has used XML(Extensible Markup Language) as the standard format for data and UI processing. For example, InfoPath forms save data in XML format. C# brings you great programming support for XML and Office applications. Office already has built-in support for an XML-based customization model, of which VSTO takes full advantage. Using C# classes and simple XML, VSTO simplifies the connection between .NET, and the server and Office systems.
So, for instance, instead of having a Word macro that you need to run in order to create the document you want, you could simply transfer the information to a Word template and have Office create the document for you! VSTO thus provides data-caching capabilities.
VSTO is a simple, but powerful framework for Office solution development. The framework brings an amazing number of benefits to the hands of every Office developer—form controls, classes, granular security, server scalability, object-oriented features, integrity, easy deployment, and many others.
VSTO allows managed and unmanaged code to be seamlessly put together into the same .NET assembly. This allows the developers to retain unmanaged code that cannot be ported over to the .NET framework without completely re-writing it. The Microsoft Office document or workbook with a linked or referenced managed code assembly is said to have managed code extensions. Managed extensions can be created by using VSTO on Microsoft Excel or Word, which are similar to macros but are much safer. With VSTO, you can create a template that only needs to be loaded with data.
Data caching, simply put, is storing data in memory for quick access. A Microsoft Office Word document or Excel workbook has a hidden control rooted inside it called the Runtime Storage Control, which stores cached data. VSTO provides data-caching capabilities as well as a ServerDocument class in C# that can be used by an application external to Office (for example, the Winform application) to manipulate the data cache without accessing the object model of Word or Excel.
VSTO 3.0 gives you great control in being able to customize Office applications with reusable classes. Unlike VBA developers, VSTO developers are not limited to the VBA function library. VSTO provides a wide variety of classes, objects, and events to build business solutions for Microsoft Office. Using VSTO, developers can customize features for Office applications. These can be as simple as a button on the application's Command bar or adding custom task panes, or as complex as a data report template with access to different data sources.
VSTO provides Windows Forms controls that help you to develop a rich User Interface(UI) for your Office solution. By using a wide variety of control sets, VSTO developers can build rich data views for users. Each and every type of Windows Forms control has its own set of properties, methods, and events that make it suitable for different needs.
VSTO makes it easy to build rich User Interfaces by using controls inside the document and the Task Pane. For instance, you can create an animated one-button command to generate a form letter. For example, say a company has data content stored in its server, and a user wants to refer some content from the server while working in the document and without disturbing the current document view. Using VSTO, you can make the server content available inside the Task Pane of the document without interfering with the user's current work.
New for VSTO 3.0 and Office 2007, smart tags are strings that an Office application recognizes in a document. With Smart tags enabled, Microsoft Office Word attempts to recognize certain types of data in a document, visually indicated by a purple, dotted underline. Clicking on a smart tag brings up a list of possible actions for that particular data type. VSTO provides object models to Office developers, which can be used to create smart tags for documents and workbooks.
Windows Presentation Foundation(WPF) controls is a technology product of Microsoft Corporation. WPF can be used to build a rich and attractive look and feel for the user. WPF can be used in VSTO development environment, which supports C# programming, whereas VBA lacks this support. VSTO's visual designer supports the use of Windows Forms and Windows Presentation Foundation controls. WPF provides a reliable programming model for building client-based and web-based applications, and presents a clear separation between the business logic and the UI.
VSTO provides visual designers for Office applications such as Word 2007, Excel 2007, and others that appear inside the Visual Studio IDE(Integrated Development Environment)
