Backward Compatibility

Before I started at Microsoft, I worked at a wholesale auto auction for a few years. In 1999-2000, I wrote a line-of-business app for the auction in Visual FoxPro, and we called that app SERVIS. (That was a derivative of "customer SERVice Information System" ... it somehow made sense at the time.)

I thought it would be fun, now that I've got Vista RC2 and a very recent build of Office installed on my laptop, to check out how SERVIS runs in this environment. I had already tried this with an earlier Office 2007 build last winter, so I knew the automation of the Office clients still worked (things like writing reports to Word and Excel, or creating outbound emails in Outlook from business data), but I had never tried SERVIS -- or any VFP app -- under Vista.

So I installed the VFP runtime, and then fired up the same EXE I had compiled under XP when I worked at the auction. And I must say, I was amazed at how well everything worked. I played around with it for a half hour and had a few weird refresh issues when multiple windows were open within the app, but nothing ever crashed and it looked great.

vehicle window sales & expense report employee window reporting to Word

SERVIS writes some reports to Word, and I tried saving a large report with many vehicle photos in it to a DOCX. That was pretty cool -- the word/media folder in the DOCX package was a nice tidy collection of all the vehicle photos from the report. One of the things on the SERVIS wish list that I never got around to was a way to export all of the vehicle photos from a sale day. The Open XML file formats make that possible without writing another line of code.

I've told quite a few developers that the 2007 Microsoft Office System's object models are backward compatible with the older versions of the Office clients. This little SERVIS example shows just how compatible they really are -- SERVIS was written in the days of Office '97 (before there was even a .NET), and yet everything still works just fine in Office 2007.

Now I'm sort of curious to find a Z80 emulator for Vista and see whether SCS-Draw runs on it. :-)