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
System analyst at Resource IT Solution
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.