Primeiramente precisamos saber o que é uma visual force e um Lightning e assim podemos seguir para a batalha Visualforce vs Lightning.

O Visualforce é um framework que permite que os desenvolvedores criem interfaces de usuário personalizadas, ou seja, páginas/aplicativos personalizados dentro do Salesforce. O Lightning é um framework para desenvolvimento dinâmico de aplicativos web para mobile e desktop, também dentro do Salesforce. Os dois oferecem uma maneira de construir aplicativos ou páginas personalizados, então qual devemos usar?

Visualforce

O Visualforce usa linguagem de marcação, assim como HTML(Hyper Text Markup Language) para o desenvolvimento das páginas, e podemos utilizar uma Controller com código apex para as operações com os registros (banco de dados) e outras operações que desejarmos fazer do lado do Servidor. Podemos ainda utilizar JavaScript e CSS para melhorar tanto a performance quanto a estética da página. Todas essas ferramentas são opcionais. O framework Visualforce usa o tradicional modelo MVC (Model-View-Controller). Não se esqueça de conferir as 9 técnicas para atingir alta performance em páginas visualforce e a trilha Desenvolvedor iniciante.

Visualforce é um modelo fácil de ser implementado caso o desenvolvedor já conheça a parte de desenvolvimento web, mesmo que ele não conheça muito sobre visualforce, porém o framework apresenta algumas limitações quando se trata de aplicativos responsivos, ou seja, aplicativos funcionais tanto para desktop quanto para mobile.

Estrutura básica

Visualpage Página/Aplicativo com linguagem de marcação, assim como uma página HTML/XML
Controller Utilizado para fazer acesso ao servidor. (OPCIONAL)

Lightning

O Lightning utiliza o JavaScript para deixar de forma mais dinâmica o desenvolvimento de uma aplicativo funcional, tanto para mobile, quanto para o desktop. Com esse framework não precisamos acessar o servidor a todo momento para fazer alterações nos dados, podemos fazer um processo complexo inteiro sem acessar o servidor. O Lightning apresenta uma curva de aprendizado maior do que o Visualforce, isso porque a estrutura dele é um pouco mais complexa. Confira como construir Lightning Components Baseado em Dados e a trilha Desenvolvimento para o Lightning Experience.

Estrutura básica

Component
Contém a linguagem de marcação básica para a página/aplicativo. Único obrigatório.
Controller
Contém os métodos para controle dos eventos. Tais como cliques, alterações de campos, entre outros. Tudo em javascript
Helper
Contém funções javascript que podem ser chamados por outros códigos dentro do mesmo componente.
Style
Contém o estilo do componente, ou seja, o CSS.
Documentation
Um descrição do componente, um códigos de exemplo e todas as referencias para o componente.
Renderer
Para sobrepor o renderer padrão do component.
Design
Arquivo utilizado em componentes que serão usados no Lightning App Builder, Páginas Lightning, Community Builder, ou Cloud Flow Designer
SVG
Recurso de icone customizado para componentes usado no Lightning App Builder ou Community Builder.

Visualforce vs Lightning: Conclusão e opinião pessoal

Os dois frameworks tem os seus prós e contras. Então deixo aqui a forma como eu escolheria entre cada um deles:

Quando o cliente deseja uma tela mais simples, que não é necessário muita complexidade e não tem necessidade dessa pagina/aplicativo ser acessado através de um dispositivo mobile, então a melhor escolha para esse caso é o Visualforce. Caso o cliente queira algo muito dinâmico e/ou que deva ser acessado através de diversos dispositivos, a melhor escolha é o Lightning.

Na minha opinião, a tendencia é que tudo seja acessado de qualquer lugar em um momento, no futuro é bem provável que os computadores (Desktop) sejam bem menos utilizados do que hoje, então há uma grande possibilidade de o Lightning dominar o mercado, hoje por enquanto dominado pelo Visualforce. Por isso é bom aprender o mais rápido possível o Lightning e quando o cliente desejar uma página que seja simples, talvez seja melhor utilizar o Lightning para diminuir a curva de aprendizado. Hoje muitas empresas no Brasil já estão exigindo o conhecimento em Lightning, inclusive nos testes do processo seletivo.

Essa é a forma que eu penso, e vocês, como decidem qual é melhor? Deixei alguma informação importante de fora? Por favor, deixe nos comentários e até mais!

 

Guilherme Rodrigues

Guilherme Rodrigues

System analyst at Resource IT Solution

Atualmente trabalho com Salesforce, atuando fortemente na parte de desenvolvimento mas também mexendo um pouco com a parte de administração do sistema. Mas  as vezes também me aventuro com desenvolvimento em JAVA.

Graduado em ciências da computação pela Uninove e em MBA em Desenvolvimento de Aplicações JAVA - SOA e Internet das Coisas pela FIAP.

Sempre fui apaixonado por tecnologia e acredito que nasci para essa área (rs).

Estou sempre estudando e sempre querendo aprender coisas novas.