I use a 1:20 dilution of Simply Green to clean my drivetrain (stronger if needed). Spray it on & let it stand a few minutes. I have a chain cleaning tool I use, then rinse with a light flow of water. Always clean your drivetrain first. Then use soapy water for the rest of the bike, and once again rinse well. Sometimes I hand dry, somtimes sun dry. Re-lube the chain, etc and let it sit at least 10 minutes. Then with a clean rag wipe ALL the excess lube off the chain. There should not be any lube left on the outside of the chain, it will only attract dirt.
I try to do a full clean once a month, lube chain about every two weeks.
"Only those who dare to fail greatly can ever achieve greatly" (Robert F. Kennedy)