Summary
Salesforce provides a great standard UI experience that is highly customizable and adaptable to new features of the platform without you necessarily releasing new revisions of your application. At its core, it is a data-centric user experience, which means that most tasks come down to creating, editing, or deleting records of some kind. Having a strong focus on your Domain layer code ensures that it protects the data integrity of your application. Publisher Actions help turn these actions into smaller tasks that are more business-like in their name and usage.
If you want to express a more complex process or a series of tasks, Visualforce allows you to be more expressive using Visualforce components or other HTML libraries to create the user experience needed for the task at hand. While this is very powerful, it is important to always consider the standard U, and, wherever possible, augment or complement it with the Visualforce page rather than making this the only way of interacting...