Hi LaFra,
Speaking from experience, it is pretty much normal to have "mixed mode" customization for SharePoint as we would (and could) utilize many of SharePoint's flexibility for customization to achieve the business requirements.
This is what I would normally do:
- Develop my solution based upon a site collection located on a development server, where all of my workflows, views, and event handler associations are already configured and stored in the content databases.
- Package up the custom files from the development server that are outside of the content databases including web forms, assemblies, scripts, control templates and custom controls, and deploy them to the production server to their respective location (including the GAC!)
- Next, backup the site collection on the development server using the STSADM.EXE tool, using the backup operation (-o backup), and restore it to the web application that is readily created on the production server using the same tool as well, using the restore operation (-o restore). The association of event handlers and custom fields to the entities on the site collection (sites or lists) will remain.
- If you are on a different domain (that has no relationship), you will need to login to the production server's central adminstration web site to re-specify the site collection administrator to allow access to the new site collection.
The bottom line is that I will leverage on STSADM.EXE backup/restore to handle all customization on the site collection, and manual movement of files to handle those that are outside of the site collection.
The There could be better ways than this including creating WSPs or other installation packages, hence I stand corrected :D