tags:

views:

105

answers:

6

What are the advantages and disadvantages of relying on Microsoft Office components, and using Microsoft Office documents in our software?

+1  A: 

Advantages

Common base of functionality
Ubiquitous; learn once, use elsewhere

Disadvantages

Reliance on a single source for common functions
The expectation that a recipient has the same software
Completely broken if not there as expected

Michael Todd
A: 

If it's web based, then avoid, as it's quite easy to overload a server with the interops.

dove
+1  A: 

IMHO there are only disadvantages because it is a proprietary format.

37signals says that mass is reduced by using open formats.

collimarco
Disagree, because it's such a widely used proprietary format. In the business world it's far more accepted than any open format... (except perhaps pdf if you consider that open).
C. Ross
+2  A: 

For desktop software... (server side usage is outside of my experience)

If you are an ISV, avoid ales you know all the customers will have Microsoft Office and you can afford to test on all the versions of Office that you customers use.

Normally, spending a bit more on development so as to avoid the additional support costs of depending on Microsoft Office is a good trade of.

However a lot of customers like reports in excel format, so they can add graphs etc. So using Office as a output format is OK. Any other use of Microsoft Office must provide great benefits to cover the support/testing costs.


If you are writing in-house software where you have a standard desktop system, then use Microsoft Office components if it saves you time.

Ian Ringrose
+3  A: 

Should you avoid office components?

Yes. You are almost certainly using them to read or write office documents invisibly. While interop does allow this, it's not well designed for it and can lead to all kinds of bugs as well as the obvious dependency on an installed copy of office. In a server environment it's downright suicidal.

Should you use office documents?

Yes. You are probably operating in the real business world, so being able to communicate with file formats like Excel is both expected and efficent. However instead of using Interop (which by the way is rather slow for creating entire documents, even if you optimize to limit the number of calls made) use a stand alone library for reading/writing the files. For example SpreadSheetGear.NET would be used to manipulate Excel files from a .NET application quickly and natively.

David
A: 
  • Advantages
    • Lots of built in functionality.
    • An interface users recognize.
    • A format that users often demand (Excel, Access)
  • Disadvantages
    • Licensing costs
    • Testing, Testing, Testing
    • Upgrading
    • External dependency, which has been known to be unstable.

Note: I agree with David, it's suicide on the server. I've seen it used even as an interop format (one program passing excel sheets to another for data exchange). This is painful in so many ways, and should be avoided at all costs.

C. Ross