I have an ultrasonic cleaner from Harbor Freight and I use the cheapest citrus cleaner I can find. Dollar store brand. It's been my experience that simple green or purple clean aren't any more effective on this kind of grime than the cheap stuff.
Put the part in a tupperware, cover with cleaner, put the tupperware in the ultrasonic, fill the tub of the ultrasonic until the tupperware floats slightly (this really saves on cleaner, you aren't filling the whole ultrasonic every time, just using enough to cover the part you want to clean)
Set the controls for heat and the longest amount of time on the ultrasonic (420 seconds I think). I usually just run it through 3 or 4 heat and agitation cycles, not changing the cleaner between cycles, then I take the tupperware out of the ultrasonic, scrub the part with one of those cheap paint/chip brushes that harbor freight sells to clean all the crevices, rinse with water until the water is clear. Done.
I hang the chains to dry, but all the other parts I use a blow gun attached to the compressor to dry it off nice and quick.
Someday I'm going to put together a nice "station" to make this more efficient; realistically I should be cleaning the chains and cassettes at least a couple of times in the winter and another couple of times in the summer and then one more time in the fall, instead of just hit and miss like I do it now. I think my chain and cassette budget would thank me.