I can't tell you what the 'preferred' development environment is but I can tell you what's working for me.
We run 2x CentOS 6 64bit boxes running the following;
Asterisk (compiled from source)
A2billing
MySQL GPL Cluster
each node has MySQL API and NDBD Storage engine on and perfectly replicates each other. Changes are made to one and then synced to the second box once we confirm the changes are stable.
We mount a SMB share of the dev box's /var/www/ path and make the changes as necessary.
That way you can keep your server/IDE separate, it's easy to interchange & full interoperability.
I would recommend staying away from prebuilt ISO's like Elastix/FreePBX. Can't go wrong with Source Asterisk + A2Billing
Of course this is all just my opinion and not necessarily the right or the best way to do it.
Good luck.