old man said:
Hi,
I don't like disagreeing with a Word MVP but you may be doing the
equivalent
of building a great horseshoe just when cars are being widely introduced.
I have no problem with people disagreeing with me. I don't regard myself as
being infallible, and in fact I learn new stuff about Word all the time, in
many cases from the experiences of others here on the Word groups. Don't
hesitate to disagree with me if you think I'm wrong.
Microsoft is very commited to .Net and VSTO and finally the development
environment for Word is as good as the one for Excel (the Word one was
always
1-5 years behind). The Office Object model still reflects a long product
history (so it is rather unusual) but it is much better and if you want to
develop software for the long (sic) run use VSTO and .Net. Its much harder
for VBA programmers to get but it is truly object oriented and you get
access
to the CLR and the .Net libraries.
There are various problems with that. I'll describe each one in turn. They
may not be applicable in all cases, but they need to be considered when
making an informed decision.
1. The Office object model is COM-based, and VBA works in-process without
COM-NET interworking. Performance therefore tends to be better when using
VBA.
2. I hope never to hear that hoary old jibe about VBA programmers being
unable to understand object-orientation. When presenting an argument, it is
best not to insult the intelligence of those you disagree with.
3. There are severe problems with deploying VSTO add-ins. The MVPs who have
been attempting it recently have been screaming at Microsoft about it, and
the facilities for doing so are in my opinion thoroughly inadequate still.
4. If your application is primarily controlling Word documents, then the
primary need is for efficient access to the Word object model. Access to the
..NET framework is of much lesser importance, and any advantages of using
VB.NET are correspondingly reduced.
5. The latest VSTO only works with Office 2007. The previous (more limited)
one only worked with Office 2003. if you want an application to support
multiple versions of Office, then you need to use VBA. About 40% of my
customers still use Office 2000 or Office XP, and my VBA library code works
unmodified in all versions of Office from 2000 onwards. Because Microsoft is
still refining the interface between .NET and Office in successive versions
of VSTO, the kind of version independence achieved by VBA is unlikely to be
matched by VSTO any time soon, which means that coe may have to be rewritten
in part every time you change version of Office, Visual Studio or VSTO.
6. I'm not at all convinced of the long-term commitment Microsoft has to
VB.NET. Public statements by senior people in Microsoft suggest to me that
Microsoft makes no distinction between a language and a platform, and that
when a platform changes, the language inevitably must as well. The idea that
a high-level language is something that insulates your code from the effects
of changes in platform is something which seems to have been forgotten in
Microsoft. Therefore when the successor to .NET comes along (and of course,
it will eventually) unless Microsoft has changed its mind, VB.NET code will
end up being as obsolete as VB6 code has become. Also, it is worth noting
that Microsoft was publicly thoroughly committed to the future of FoxPro,
until the day it announced the product would be discontinued.
This is a very emotional issue for users who have learned and pushed VBA
to
The problem is not about having learned VBA. It is that there is a lot of
VBA about, and Microsoft cannot remove support for it without causing all
companies that have VBA code they rely on to delay, perhaps permanantly,
their plans to upgrade to a newer version of Office. As Office makes up
something like a third of Microsoft's total revenue, and corporate sales
form the bulk of that, Microsoft dare not mess with VBA. It will be around
for a while. It is worth noting that three versions of Office have been
released since VB.NET came out, and they all still have VBA. That suggests
that, whatever the Visual Studio people may be saying about Microsoft's
commitment to all things .NET, the Office people are being somewhat more
cautious and pragmatic about it.
places no one ever anticipated but VSTO is the way to go. I don't want to
start a flame war and I have the greatest respect for the VBA experts on
this
site but that is the way it is.
If you expect flames from me, I fear you will be disappointed. I'm
interested solely in the truth of the matter, and I have an interest in
making sure I provide the best possible service for my own customers. That
means using whatever technology is best for the purpose, not necessarily
what is the latest thing being pushed by Microsoft.
--
Regards
Jonathan West - Word MVP
www.intelligentdocuments.co.uk
Please reply to the newsgroup
Keep your VBA code safe, sign the ClassicVB petition
www.classicvb.org