views:

404

answers:

2

What is the difference between Office Automation, VSTO, and Open XML SDK? Do we need all of them or some of them are obsolete?

+4  A: 

Office Automation refers to the manipulation of an Office program (or, more commonly, an Office document via an Office program) programmatically, using COM interop.

Visual Studio Tools for Office (VSTO) is a set of development tools available in the form of a Visual Studio add-in (project templates) and a runtime that allows Microsoft Office 2003 and later versions of Office applications to host the .NET Framework Common Language Runtime (CLR) to expose their functionality via the .NET type system. As a result, it allows extensions to the Office applications to be written in .NET languages.

The Open XML SDK is a set of type classes, built on top of the System.IO.Packaging API, that can be used to manipulate Office documents conforming to the Open XML standard. Unlike COM interop, it does not require Microsoft Office.

Robert Harvey
Just in addition to your answer: VSTO is just one way to do Office automation (and VSTO is also just using the COM interfaces of the Office applications).
0xA3
@divo So if you use VSTO you don't need to use Office automation directly?
alex
@alex: Well, office automation is just a general term for programmatically processing office documents. What you probably refer to is automating the Office applications using the COM interfaces of Microsoft Office?
0xA3
A: 

What do you want to to do?!?!

The new format Open XML gives you a lot of possibilities.

See also The content control tookit on codeplex that I have used to create XML from Word http://channel9.msdn.com/posts/Rory/Matthew-Scott-Application-Development-using-the-Open-XML-File-Formats/

Other good links Open XML Developer Center Open XML SDK 2.0 Getting started

salgo60
For the task at hand, I need to be able to generate Office document on the server and then print it to the remote printer.
alex
For printing you will always need the Office applications as you need to render your documents.
0xA3