1. Computing

VSTO and Visual Basic

By May 17, 2006

Follow me on:

Finally! A VSTO book for us!
... and ...
A personal gripe about VSTO to Microsoft!

Eric Carter and Eric Lippert (Two of Microsoft's finest and VSTO "insiders"!) published a book months ago that should stand as the definitive Visual Studio Tools for Office reference and training book.

Unfortunately, it was focused on C#.

Having come to their senses, the version for Visual Basic is now on the bookshelves! It's the one colored green - like money.

Before I get to my second topic, I'd like to quote something from Chapter One:

"Visual Basic is a much easier language to use for Office development than the C# language. The Visual Basic language and the Office object models 'grew up' together over the years, and as a result, the Visual Basic language deals much more easily with features of the Office object models ... than C# does. If you compare the Visual Basic edition of this book with the C# edition, you will often find the code samples are simpler than the C# samples because of the way Visual Basic simplifies calling the Office object models."

You can always tell the C programmers. They're the ones grinding their own beans for coffee break.

Anyway ...

By all appearances, it looks like a great book. I'm working on a full review now, but I wanted to get something "off my chest" since it really doesn't have anything to do with the review.

Microsoft: Are you trying to make VSTO fail?

The main problem with VSTO is that it's priced and packaged to guarantee that only a few programmers ... in my view a small fraction of the right ones ... are ever likely to ever try it out. Let's review what VSTO is. It's Visual Studio Tools for Office (emphasis mine). That means that many of the people who are most likely to be interested in it are the Office mavens. The Word Wonders. The Spreadsheet Superheros. These people need a way to get into VSTO that doesn't make them part of the IT department.

The first version, VSTO 2003 was also insanely priced at something like $400 (I forget) and it appears that Microsoft realized what they were doing at some point. They started handing it out free at Microsoft events. I ended up with three full copies. (I still have them.)

This version is priced even higher at $799 (Oh heck, let's call it $800.) for a new copy.

Microsoft may object and say, "But sir!" (People who are objecting always call you "sir".) "That's for a full copy of Visual Studio 2005. That's not just VSTO."

That brings me to my second problem with VSTO: You have to buy it already integrated into a full copy of VS 2005! And there are a few other problems too. For example, if you already have a copy of Visual Studio 2005 Professional, it's not there! (Unless it's the MSDN version. Why do we have all these confusing SKU's now anyway?) You have to buy a full upgrade to get it! And this also means that you get the specific configuration of Visual Studio that includes VSTO. What if you would rather have one of the other configurations?

The old version, VSTO 2003, could at least be installed as an upgrade to VS.NET 2003 from a single CD

If you want people who have a main focus somewhere else ... like Word or Excel ... to try this out, you've got to create at least an affordable version that can be used with (Dare I suggest it?) Visual Studio 2005 Express or or at least added to an existing VS.NET 2005.

This isn't just my opinion. To demonstrate my point, I offer into evidence the testimony of all of the vendors listed at Microsoft's own "Product Information Center". These are the vendors that Microsoft recommends when you click the "How to Buy" links from the VSTO pages. Over half of these vendors don't even offer the VSTO version of Visual Studio for sale. (At least, I couldn't find it.) I'm guessing that they know an inventory clog when they see it.

My third point isn't really a gripe, it's a question. For years after the introduction of VB.NET, surveys of About Visual Basic readers consistently showed that the vast majority still preferred to use VB 6.

But like an avenging angel, Microsoft cut them off at the waterline. VB 6 would not be improved or even supported in the future. They made it almost impossible to buy the first year! With iron resolve, Microsoft exterminated VB 6 like suburbanite killing crabgrass. They made it quite clear that VB 6 is dead, finished, finito, kaput. Now quit yer whining and get used to it!

But VSTO 2003 and 2005 continue the grand tradition of supporting VB 6 COM technology and VBA (which is really VB 6) and so will Office 2007.

My question is, "Why couldn't Microsoft have shown this much consideration to their VB 6 developers?"

ps ... Contrasting points of view or corrections welcome!

May 22, 2006 at 1:55 pm
(1) ian says:

Microsoft has a long history of treating VB developers like 2nd class citizens, apparently never recognizing or caring their role in the development ecology. Need an internal app or a database front-end? Managers worldwide have learned to get this from the VB guys, not the C++ guys. I test for a living, and the *fact* of the matter is that even a mediocre VB programmer can crank out a useful application of this nature more quicky, and with fewer problems than a C++ developer.

C++, for all its wonderful features, was and is, to put it bluntly, an ergonomic disaster written by and for prople more interested in machismo than practicality. It allows for, and even subtly encourages programming mistakes that are frequent and more difficult to fix.

If I had to start a new project tomorrow, I’d create the framework in vb.net or C# and restrict the C++ portions to those features demanding high performance and focus the testing there, because historically, the bugs are in the C++ code, not the VB code.

I understand Microsoft’s position. They don’t care. The money has migrated to the web, and if you’re not working on a better way to sell widgets to wankers on the web, you don’t exist as far as Microsoft is concerned. I think Microsoft’s non-web efforts will eventually fade out. Whether they’ll continue to support local desktop applications is an open question, as far as I can see.

May 22, 2006 at 2:23 pm
(2) visualbasic says:

Well, I hope it’s not that bad.

I suspect that the way VSTO seems to be locked away from a big part of their market is simply because the MBA’s and their spreadsheets are becoming dominant in the corporate jungle. (It almost destroyed IBM. It can happen to Microsoft too.)

The point of my blog was really to try to give some support if someone is trying to reverse some of these marketing decisions about VSTO (which is really a nice technology) inside Microsoft with some heartfelt customer feedback.

Thanks for the contribution!

May 29, 2006 at 5:10 pm
(3) loggersc2 says:

Must we always forget – Microsoft doesn’t care what we developers have to do to produce our solutions as long as we have to go to Microsoft to buy their technology. Bedazzle them and they will come.

Kindly explain to the backoffice group that MS excitingly supports on-line A/R, A/P, and GenLedge with terrific ASP pages for all to see in new web-centric BackOffice Web-diclosures and the back office can now throw out that obselete MAS 90, IBM mainframe, and replace it with SQL 2005 servers!

Bottom line – MS isn’t a god – its a market driven profit center. Choose your tools wisely.

May 30, 2006 at 11:57 am
(4) visualbasic says:

Good points.

These things seem to go through cycles. There was a time when IBM was acting like they were God. Microsoft only exists as the dominant software oligopolist today because the marketing types (Akers, Opel, Cary) who took over at IBM forgot who their core constituency was.

I sincerely regret it, but I see signs of the same thing happening now at Microsoft.

June 12, 2006 at 1:04 am
(5) Ariel says:

Will VSTO have the same type of functionality that VBA does. (I understand it will be different, but will automation with office applications still be as easy to develop?

June 12, 2006 at 10:45 am
(6) visualbasic says:

Ariel (in a private email) also asked:

Some people say there is a lot of time left for VBA because of all the supported software out there. As far as switching over to VSTO…

Will it be a rough transition, or just a software expense? Does VSTO have it all and more, or will it be crippling to less experienced program

I thought others might like to participate so here’s my reply:

>>Some people say …

“Some people” are right. Since Microsoft still hasn’t officially anounced a point at which VBA will be abandoned, it could take some time, all right.

>>Will it be a rough transition …

Yeah … probably. VSTO isn’t VBA by a long shot. VSTO is a version of Visual Studio. That’s one reason why VBA isn’t ‘gone’ yet. They will always need a “macro language” inside Office and maybe VBA will be that language for longer than I think. But VBA was formerly positioned as the “development” environment inside Office. Microsoft used to make a big deal out of this. They used to trumpet that other “macro” languages were puny and weak compared to VBA. They were right, of course, but now VBA will be puny and weak compared to VSTO.

Microsoft seems to be building more differentiation between their front office products, designed for secretaries and accountants, and their developer products designed for programmers. VBA is clearly something that both could use. VSTO isn’t. This is a theme that I also explored in the blog, Programming – Only For Professional Programmers Now?

June 13, 2006 at 2:23 am
(7) Ariel says:

What would you say is the bottom line on this situation.
Will we still be able to automate these programs, but just have to learn more to do it? I don’t mind learning more, I just want to know if we’re going to lose the funcionality. Can I still create an access database interface that uses excel, word, and outlook, etc.

June 13, 2006 at 10:50 am
(8) visualbasic says:

Eventually, I expect that you will have to learn more (and acquire the VSTO version of Visual Studio – no small expense).

But “eventually” may take as much as five years or so. (A very long time in software terms.)

You will still be able to create “Access database interfaces” and use “Excel, Word, Outlook, etc.” Microsoft never actually takes anything away. What they do is replace it with new stuff and then quit supporting the old stuff. I receive email all the time from people who are still using versions of Visual Basic that have been outdated for quite some time. I got one yesterday from someone using VB 3.0. But if you want to use the current Microsoft technology in the future, you’ll probably have to use VSTO.

July 11, 2006 at 3:19 am
(9) Reuben Lee says:

So,…bottom line…I have to purchase VS 2005 Pro to get the functionality within its own walls AND purchase VSTO 2005 (which is less functionality for other stuff except Office) just so I can have the functionality of both????????????????????.
Holy Crap !!!! ( LOL )
“mo money, mo money”!!! ( giggle )

It occurs to me that pricing should be adjusted a bit on VSTO then right?????

Whatever. my eyes are crossing. ( grin )

July 11, 2006 at 11:51 am
(10) visualbasic says:

Ummmmm … not quite.

VSTO is an alternative to Visual Studio 2005 Pro, not an add-on. But if you already have a copy of VS 2005 (like I have), THEN you have to get another copy of Visual Studio, (the VSTO version) because you can’t upgrade the copy of VS 2005 Pro that you already have.

So … for many of us, it’s a pretty crummy deal. But if you anticipate that you need the VSTO version before you buy anything, then you can still be OK … if you can find one for sale.

November 27, 2006 at 2:49 pm
(11) anonymous says:

Maybe most vendors don’t offer the VSTO version of Visual Studio for a reason: people aren’t buying it, i.e. customers are putting their money where their mouth is, voting with their dollars, etc. That is the clearest way to send Microsoft the message. I have the professional editions of Visual Studio 2005 and Office 2003, but I am very reluctant to pay extra for VSTO, especially if it doesn’t have an easy way to migrate existing VBA software.

December 28, 2006 at 3:32 pm
(12) Jim Bryan says:

Well folks, as an old MS DOS programmer, and now trying get into some now-a-days applications, all of this is fairly Greek to me. I found this site by doing a search for Visual Basic, an application I have had much experience with, but now I find it is not supported any more??

You folks are talking $800.00 for this VSTO!! I was thinking of spending $100 – 175.00 for a new copy of VB. (I lost my old one years ago in a move and crash).

I reckon it’s just like so many of you have said. MS is in the money.. They want to keep their position, and to hell with whatever you real programmers and old farts like me want.

I think maybe it’s time to quit. I am just too old to be bothered with all of this any more. I have been following MS and their ways since 1977, and that’s 30 years of a crowd of disappointments, questions, and having to learn “new and better” stuff..

It would seem MS would have some loyalty..

December 28, 2006 at 7:12 pm
(13) visualbasic says:

Hey! I’m an old fart too! But thanks for including me in the “real programmers” category.

To balance the equation just a bit, Microsoft’s “Express” products are completely free and are really good. They are, of course, limited at the top end on what they can do but they can do a lot. They’re certainly a great option for you if you’re looking to test the waters again.

I recommend that you try Visual Basic 2005 Express Edition (just search http://msdn.microsoft.com to find the download page for it).

November 1, 2007 at 9:14 am
(14) Mike says:

As an old-time programmer (VB, classic ASP, VBscript/VBA, Office 2003 and earlier) I cant seem to bring myself to learn this new stuff. Especially Dot Net.

It seems to me that Microsoft has successfully brainwashed people into thinking that the CANT develop solid and secure applications without moving to Dot Net and thats completely untrue.

Microsoft needs to listen more and speak/act less. They need to hear my clients, who refuse to leave Windows 2000, VB 6 apps, SQL Server 2000… Most are reluctant to even move to Windows XP!! I’ve got clients still running Access 97.

I go where my bread will get buttered and thats NO LONGER Microsoft. If they’re wondering why Perl, Python, Rails and other languages/frameworks have popped up – then they’re ignorant AND stupid.

Its time that the programmers take back the corporate-aspect of what used to be FUN. Microsoft can continue to concentrate on “partners” and how much they can sell for MS while us programmers walk away.

November 1, 2007 at 7:26 pm
(15) visualbasic says:

The VSTO portion of this blog is outdated now, but the part that applies to Microsoft’s hubris still applies. Your comment has an interesting combination of “cutting edge” and “crumbling edge”. Some of the technologies you mention are sooooo yesterday.

I agree that Microsoft was both wrong and stupid to throw their loyal VB 6 customers under the progress bus, but their new technologies … specifically .NET … really are superior achievements.

July 2, 2008 at 12:01 pm
(16) Mr. Happy says:

I have been using VBA at the same client for over 8 years. I built hundreds of desktop applications over time, dozens of which are currently in production and are mission critical. What RAD tool will take the place of VBA for Office development? If they lock out developers from Office, Microsoft are losing their desktop market. Imagine several hundred huge corportaions no longer using Microsoft Office for their standard desktop images. This client is ready to port their data to other software right now.

July 2, 2008 at 6:35 pm
(17) Dan Mabbutt says:

It’s not too late for Microsoft to do VSTO right. Initially, it was an add-in to Visual Studio. Although they had some outrageous retail price for it, they started passing it out for free at just about every technical seminar. I ended up with multiple copies.

If they went back to that policy and allowed people to add it to Visual Studio and (dare I think the thought) … VB.NET Express, I think they would start to see some real market penetration.

I’ve always said that .NET and Visual Studio are really amazing development environments. I think VSTO could be amazing too … if we could get the bean-counters and MBA’s out of the way.

December 23, 2010 at 7:07 am
(18) eliberatus says:

They annihilated the Office Web Components since the .Net BS.
Now, even if you install the OWC11 separately, in order to embed/use it’s unique SpreadSheet object in your Forms 2.0 Office projects (like Client DataBase applications/reports) the Windows Updates (especially IE’s updates) sabotaged so much the old VB6 objects that it is no longer working!
They forced us to do .Net but they didn’t give us (freely) a decent GRID (like the OWC/SpreadSheet was…). You have to extra-pay for Visual Studio + VSTO
Since many people like me, don’t want to upgrade to Vista / Office7 why their windows-patches killed so much of the VB6 ?

December 23, 2010 at 7:09 am
(19) eliberatus says:

They annihilated the Office Web Components since the .Net BS.
Now, even if you install the OWC11 separately, in order to embed/use it’s unique SpreadSheet object in your Forms 2.0 Office projects (like Client to DataBase applications/reports) the Windows Updates (especially IE’s updates) sabotaged so much the old VB6 objects that it is no longer working!
They forced us to do .Net but they didn’t give us (freely) a decent GRID (like the OWC/SpreadSheet was…). You have to extra-pay for Visual Studio + VSTO
Since many people like me, don’t want to upgrade to Vista / Office7 why their windows-patches killed so much of the VB6 ?

Leave a Comment

Line and paragraph breaks are automatic. Some HTML allowed: <a href="" title="">, <b>, <i>, <strike>
  1. About.com
  2. Computing
  3. Visual Basic

©2014 About.com. All rights reserved.