Ciao

oggi come oggi proteggere al 100% un SW immagino tu sappia sia impossibile ( disassemblatori, reverse engineering, etc ... )
Indubbiamente il primo passo è fornire una versione precompilata della tua applicazione, puoi anche sfruttare le funzionalità di Publish di Visual Studio per effettuare direttamente la copia sul provider. Questo eviterà di fornire i files vb ( o cs ) insieme al markup dell'applicazione


Trattandosi di codice managed ( ovvero non tradotto il linguaggio macchina ) tornare al codice scritto da te non è cmq un'operazione da geni dell'assembly. Per questo motivo ( se ritieni il tuo codice così interessante da voler essere rubato e se pensi che il problema sussista ) esiste uno strumento detto Dotfuscator che dovrebbe proprio riscrivere il tuo codice per renderlo ( uso il condizionale perché non l'ho mai utilizzato, in ogni caso qui

http://msdn.microsoft.com/it-it/library/ms227240(v=vs.71).aspx

dovresti trovare le info necessarie )

spero di esserti stato utile

Ciao