A good option for doing this is to use the following process:
- Define content types in browser or SPD
- Save the site as a template (Site Settings > Save site as template). Note this is not supported for publishing sites, but if you're not using the site template as such, just the content type bits, you should be fine.
- Create a new VS project of type "WSP import project", and browse to the .wsp you created in step 2.
Once the WSP has imported, you'll have one VS project containing all element of the site - amongst the many files which were generated will be your content types. Note the following:
- All of the fields (including OOTB ones) end up in a single fields.xml file.
- Content types do not go into the same file, rather there is an item in the project for each one.
I highly recommend not using the generated VS project, but copying/pasting the content types/fields stuff into a VS project you created - just be careful to get everything you need and ensure it's properly referenced by a Feature once you've pasted into the 'created' project.
Personally I would manage it within VS from that point onwards, but it is possible to amend the content types in the browser/SPD and repeat the process - though you'd then need to ensure you don't copy over any changes you made in VS.