Argomento già ampiamente trattato. Ti consiglio una bella ricerca, sia qui che in Scripting.