Visualforce is a key component of Force.com. With Visualforce, companies and their developers can create any kind of user experience and deliver it entirely on demand via the Web, without software.
By leveraging the database, integration, and logic capabilities at the core of Force.com, Visualforce provides complete control over the user interface of any application built on the platform so it can be tailored for any requirement, user, or device. With Visualforce, the power of the Platform as a Service (PaaS) model can extend to virtually any application and business requirement.
With Visualforce, Force.com as a development environment is on a par with any of the application servers or database tools traditionally used for application development. Many salesforce. com customers are using Force.com to customize existing applications and create new on-demand applications, both for CRM and to support other business requirements. This Internet-based model of creating and running applications lets developers focus on productivity, not plumbing. For their companies, this approach means a better return on their IT investment.
As the Internet and associated Web standards become ubiquitous—appearing not only on virtually every desktop, but increasingly on every device—the opportunities for delivering applications on demand and as a service are growing as well. Tools such as Visualforce support this trend by enabling user interfaces that support a growing set of contexts from which users access these applications.
For example, approaches to on-demand applications may range from simply customizing an order entry form in an existing CRM application to creating entirely new applications that will run on kiosks or mobile devices such an iPhone or Android smartphone. In each of these use cases—either extending the current Salesforce look and feel or creating a totally new user interface—Visualforce provides the features needed to make those tasks as easy as possible.
At a high level, examples of applications well suited to Visualforce include:
With Visualforce, salesforce.com created the first on-demand implementation of an MVC architecture a widely used interface architecture based on the separation of data presentation from data manipulation. In such an architecture, the “model” represents the data model, the “view” represents the presentation of the data (user interface), and the “controller” represents the business logic that manipulates the data and controls the user interface.
In Visualforce, the MVC model is implemented with standard and custom objects—a staple of Force.com development—as well as with three new objects: pages, components, and controllers.
Built on top of Visualforce, Force.com Sites lets developers easily create public Web sites and applications that run natively on the Force.com platform. As with all Visualforce development, content can be created for any user interface, application, or device—thereby reaching users on the public Web, intranets, mobile devices, and online communities such as Facebook.
Developers can build a Web site from the ground up using their Visualforce skills—or put existing Visualforce content on the Web. Developers can set access settings to control which data objects and fields are made accessible to visitors as well as provide content syndication and user self-registration.
For developers, the process is fast and straightforward: identify or create a Visualforce page for public viewing, register a Force.com domain name (such as http://Emycompany.force.com) and use the Site Edit page to fill in the page’s name, description, custom Web address, and other Web-specific details. The page can then be accessed on the Web from any browser—with site hosting, security, and cache control for faster performance all provided by salesforce.com. Developers can use Force.com Sites to create an entire corporate Web site. Or, they can simply use existing Salesforce CRM data to populate a dynamic page or as data for a Web application, such as the checkout page on a merchant site.
Because developers can edit an application’s markup in the same window that shows how the page will be displayed, they can instantly verify how a particular edit affects the interface by simply saving the code. The Visualforce editor pane also includes auto-completion, syntax highlighting, and "quick fix" features so that developers can create components on the fly.
Visualforce and Apex complete the application development services of the Force.com platform. With these tools, developers have a full spectrum of customization and development options. They can create pages with salesforce.com’s point-and-click tools that rely on the Salesforce CRM application framework and result in an interface with the standard Salesforce CRM look-and-feel. For those who want to create a customized or different experience, there’s Apex and Visualforce—for use either separately or together.
In this way, developers can easily combine the best of all worlds. For example, they can use the standard Visualforce controllers to create a custom look-and-feel coupled with standard application behavior. They can extend the appearance of default pages by altering the standard header and footer areas or by overriding elements of the user interface by modifying the pages linked to one tab, but not others. Of course, developers can also create pages and behaviors that don’t resemble anything in the traditional Salesforce CRM palette.
For more information about Visualforce and related technologies, please visit the primary User Interface topic page on Force.com.