I was playing online poker today and a message pop out and said you are running an old version of blah blah blah and click here to update. So this trigger my mind about auto updater.

What is the best algorithm or ways to implement this in an application?
What is the standard practice about updaters? Can i update the .exe itself? Its kinda difucult to overwrite the program that is running?

If someone can show me a good read about how to impliment application auto updater it would be appreciated..

baray98