Visualforce Development

Visualforce Basics

The platform is comprehensive, offering separate application development tools for defining the data model, business logic, and user interface of each custom solution. While these tools are robust and offer users the ability to create personalized mobile solutions based on their specific practices, there are some adaptability limitations. Specifically, the interface is fairly rigid in its pre-designed layouts that determine how information is displayed. Buttons always appear above fields, fields always appear above related lists, and custom links can only be applied in specific areas.
To address this limitation and offer developers greater control over how their data is organized and formatted, Salesforce1 offers Visualforce, available in the Contact Manager, Group, Professional, Enterprise, Unlimited, Performance, and Developer Editions. Natively hosted, compiled, and rendered on the platform,with support provided by our Salesforce Visualforce consulting team, the Visualforce framework centers on two elements: tag-based markup language and standard server-based controllers that power basic database operations. In the language, which is similar to HTML, each tag corresponds to a user interface component, such as a page section, list, or field.

Components can be either coarse or fine-grained depending on the desired compilation speed, and their behavior can be controlled by standard Salesforce logic, or logic assigned by the developer’s custom Apex code, providing greater design flexibility.

Developer-Driven Control

The Visualforce markup can include Visualforce tags, HTML, JavaScript, or any Web-enabled code embedded within an tag. This language controls which user interface components are defined, such as buttons or links, and how they are laid out on the page. Developers can opt to control these components via the standard logic provided on the platform, or through custom logic, defined by a class written in Apex.

While any existing standard controller functionalities must be re-implemented if custom logic is chosen, developers now have the ability to assign new navigation elements and behaviors to components as desired, without leveraging the platform’s pre-designed templates. Even once established, developers can still adjust operation through Apex-driven extensions, which add to or override behaviors in both standard and custom controllers.

Flexibility of Design

Visualforce pages can be used to override certain elements that come standard on the platform, including buttons and tab overview pages. For instance, while “New” is always included as a button within the “Accounts” page, developers can choose to overwrite this element as required to meet their particular design requirements. In their place, custom tabs and dashboard components can be created, as well as new menu items and actions, custom console components, and even new help pages patterned around specific organizational terms. Additionally, as Visualforce markup is ultimately rendered as HTML, developers can integrate its tags with other Web-based user interface technologies, including standard HTML, JavaScript, Flash, and other HTML-executable code for a greater range of design possibilities.

Time-Saving Innovation

While customizing their Visualforce markup, developers can edit the language in the same window in which the resulting page is shown, for tangible verification of design and edits. This window, called the Editor Pane, includes auto-completion and syntax highlighting as time-saving benefits. Development time also improves with the application’s concise syntax, which implements the same functionality as an s-control, used to display custom HTML in a page or tab, but with 90% fewer lines of code.

Employees can create on-the-go components from anywhere, at any time, through “quick fixes,” which create new elements by simple keyboard operation. For instance, if an employee has an idea for the name of a new Visualforce page, he can simply type it into his URL, and the new page is automatically generated. This approach not only saves development time, but enables any team member to contribute new ideas and designs for Visualforce pages. The Model-View-Controller (MVC) development style of Visualforce also helps improve team efficiency by splitting the application’s user interface and business logic, allowing designers to focus on the application’s aesthetics while developers work simultaneously on the Apex-driven controllers that define its business logic.

Total Platform Integration

Because Visualforce pages are integrated tightly on the platform, they provide the same performance as standard Salesforce pages, no matter the amount of data incorporated. Visualforce pages are also stored as metadata, so they don’t need to be rewritten when the platform is upgraded. They are simply upgraded along with the rest of the system, eliminating downtime and allowing your team to continually design, develop, create, and implement customized mobile applications fitted to your business demands.