Word of caution....be sure and rinse off whatever cleaner you use completely. Any of the cleaner left on, will corrode any metal it is in contact with. All of your electrical connectors are metal, and could cause problems down the road if not completely rinsed off. Used to detail for a living, and saw lots of engine bays that had been cleaned and all of the metal had been etched, along with all the electrical connectors.
This is how I keep my engine bay clean. Whenever I change my oil, I will hose the bay down, including the underside of the hood. Then I will take an old wash mit and normal car soap/shampoo and wash what I can get to. If there are some particularly nasty areas, I will spray some Castrol Super Clean (diluted), and let it sit for no more than 1 minute. Then I will rinse until I see no more suds/bubbles. Then I will go in from underneath and do the same thing. Then a final rinse from the top, dry what I can get to, and crank the motor to let it warm and dry the rest. This works pretty well, and the engine bay does not get that dirty in 3 months. Still looks new to this day.