From Spreadsheets to Software: A .NET Programmer's Guide to Better Solutions