A month ago my company asked me to build a small demo of Apex/Visualforce, to proof-of-concept the idea that we could have an interface inside of Salesforce, for the data we make available to 3rd parties as an API. We assumed we would eventually release this as a managed package, via the Salesforce App Exchange.
I started out writing Apex and Visualforce code in my text editor. With my web browser, I would login to my developer account on Salesforce, then open the Developer Console. To move my text to Salesforce, I would copy-and-paste it from the text editor to the forms provided in the Developer Console.
That worked okay when I only had 6 or 7 or 8 files. But now I have 30 files and the number will continue to grow. My project is getting unwieldy.
To keep the files organized, on my own local machine I adopted a directory hierarchy that's been common for years in MVC frameworks such as Ruby On Rails:
app:
controllers
models
views
tests:
This works locally, but I'm still transferring the text in these files to Salesforce via copy-and-paste.
I know some companies spend millions of dollars to customize Salesforce. I know there are some very large Apex/Visualforce projects out there. How are these typically organized? What tools do developers commonly use to interact with Salesforce.