I've cleaned under the hood of many cars and trucks. You can buy something like engine degreaser from any auto store. Spray the engine and then spray it down.
You already know you should never spray any electronic components directly. You should cover the alternator with a plastic bag as to not get it wet. Make sure
not to spray at the spark plug wires directly or the dist. I've always cleaned with the engine running, in which case you cant put the plastic bags on some parts.
I though i'd check out a detailing shop by my house come sping time. From what i understand they used steam to clean under the hood. So it's not water being shot
at the engine. oh, by the way, if you end up doing it yourself, don't have the degreaser sit too long, it will start to eat away at your paint in the engine bay or even on the
intake. hope this helps.