i use a citrus degreaser....
with the engine running, I thoroughly spray/soak the engine bay then shut the hood for ~5 minutes to let the temperature increase and allow dirt to become agitated...
then I shoot engine bay with a high pressure jet stream (garden hose or pressure washer will do)
keep in mind that the engine should be running at all times during this process
I did this on my E46 M3 all the time with ZERO issues....quick and easy