Wednesday, May 28, 2008

Automatic Application Updates

By now all of you 9.0 users should have received your first automatic update of ARC - Advantage Data Architect v9.0.0.1. I thought I would take a few posts and discuss how we implemented our automatic updates.

Automatic updates are very common, and I would guess the majority of you have already implemented them in one way or another. They make a lot of sense for vertical market applications, but I have always questioned their validity with regards to a database server. Not many developers want their end user's getting updates to an application/database combination that has already been run through a QA process.

That being said, ARC is a tool that is not directly tied to your application and it makes sense to keep your installation up to date with the latest bug fixes. Hence our decision to finally add automatic updates to ARC.

We started with the following requirements:
  • Don't interrupt the user's workflow
  • Automatically download the correct file
  • Allow users to manually check for updates
  • Allow users to postpone or skip an update
  • Provide a list of bug fixes

Don't interrupt the user's workflow

I can't stand applications that ask me if I want to update the minute I open the application (ala Firefox). Did I open the application just to update it? Not likely. ARC prompts when you are closing the application. Presumably you have already accomplished what you set out to do, and we did not sidetrack you or worse yet make you completely forget what you were about to do.

Automatically download the correct file

Another pet peeve of mine are applications that tell you an update is available, but then just send you to a website rather than downloading the file automatically. The icing on the cake are applications that send you to a web site and then make you think. Many send you to a complicated download site that requires you know what version you currently have, provide account login credentials, etc. ARC will automatically download the correct installation and start it for you.

Allow users to manually check for updates

This one is pretty much a standard. The "Check for Updates" menu option in the help menu.

Allow users to postpone or skip an update

Postponing is fairly standard. We wanted to also provide the option to skip a version altogether. Perhaps what you have is working great and you never want to hear about being available ever again. We will still nag you when is released, but not until then.

Provide a list of bug fixes

It's nice to know what you are getting yourself in to. Does this version just fix 2 bugs, neither of which you have never run into? If so, you can skip this version.

In my next post we will start taking a look at the code behind ARC's automatic update functionality. July 01 2008 Update:I have not yet revisited the code and written a post about it, but I do still plan on it at some point if there is enough interest. If you are interested post a comment which might kick my lazy butt in gear.

The How-To Geek

I need to post a link to the How-To Geek blog.

If you don't already subscribe I highly recommend this feed. I've learned about lots of cool utilities and shortcuts that increase my productivity every day.

The most recent post that caught my attention was this post about Jing. From the Jing website: "The concept of Jing is the always-ready program that instantly captures and shares images and video…from your computer to anywhere."

I used it for a few minutes today and it was very simple. Ideal for sending a quick clip of a bug you are seeing but don't want to explain to your peers via a five paragraph e-mail... :)

Chris's Blog

For those of you who do not monitor the Advantage newsgroups, Chris (one of our Sales Engineers/System Consultants) announced a few weeks back he started blogging about Advantage.

I made a note at that time to post a link to his blog, but just now got around to cleaning up my inbox at home and remembering the post. Looks like he's been busy writing since then, so be sure to check it out at

Wednesday, May 14, 2008

Use Visual FoxPro and Visual Studio - and Share Your Existing DBFs

I put together a short screencast (10 minutes) showing how Advantage can share Visual FoxPro DBF tables with Visual Studio. This provides a variety of alternatives when migrating existing applications to client/server.

In the screencast I demo a Visual FoxPro application using Advantage sharing data with a Visual Studio application using Advantage (not earth shattering news, I know). I then move on to show something I do think is worth some consideration; A Visual FoxPro application using DBF tables WITHOUT Advantage (standard DBF access, no ODBC or OLE DB) sharing data with a new application written using the Advantage .NET Data Provider.

The second portion of the screencast calls out a major benefit to Visual FoxPro developers. You can continue to support your existing applications while doing new development using Visual Studio and all applications can share the exact same database.

If you find that interesting, be certain to also check out my previous post explaining some of the ISAM-specific functionality Advantage brings to .NET development via our direct table access.

While I call out Visual Studio in this screencast, the same approach can be taken with any of the development environments Advantage supports. Delphi, Visual Objects, JDBC, PHP, etc. Any of the clients listed on the downloads page of the DevZone can share data with an existing Visual FoxPro application.

View the screencast now

Download the screencast (19MB, open fox_sharing.html after unzipping)