Programar con lenguajes de Salesforce
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Enumerar los lenguajes que permiten desarrollar con Salesforce.
- Describir las ventajas de cada uno de los lenguajes de la unidad.
- Describir cómo respalda Apex las tareas de desarrollo en Salesforce.
Conocer sus opciones
Acaba de aprender sobre el desarrollo front-end en Salesforce Platform mediante personalizaciones y automatización sin código y poco código. Si lo suyo es la programación, esta es su unidad. Si no es programador, igualmente descubrirá conceptos muy importantes del desarrollo en Salesforce que le ayudarán a comunicarse con programadores.
A la hora de desarrollar en Salesforce Platform, existen numerosos lenguajes de programación que puede usar, por ejemplo:
- El marco Lightning Web Components: un marco de trabajo de desarrollo de interfaz de usuario basada en JavaScript similar a AngularJS o React.
- Apex: lenguaje de programación creado por Salesforce con una sintaxis similar a Java.
- Node.js: Entorno de ejecución JavaScript asÃncrono y basado en eventos que se ha diseñado para desarrollar aplicaciones de red ampliables.
Veamos los componentes de la aplicación de muestra Dreamhouse donde podemos analizar bien todas estas tecnologÃas.
Componentes web Lightning
Lightning Web Components (LWC) es un marco de trabajo de desarrollo de IU para dispositivos de escritorio y móviles. Como su nombre sugiere, es un enfoque basado en componentes para el desarrollo de interfaces de usuario. Mediante componentes web Lightning preconfeccionados y personalizados, puede desarrollar rápidamente interfaces de usuario elegantes y coherentes para sus aplicaciones.
Si está familiarizado con marcos de trabajo como AngularJS, React o Polymer, tendrá una buena idea de lo que puede esperar de los componentes web Lightning. La ventaja, por supuesto, es que los componentes web Lightning están listos para su uso con todos sus datos de negocio en Salesforce.
Centrémonos en una propiedad como en la que nos centramos en Lightning App Builder (Generador de aplicaciones Lightning) de la última unidad. En esta ocasión, vamos a verla en la ficha Properties (Propiedades) de la aplicación Dreamhouse. Esta página contiene muchos componentes web Lightning, pero ahora nos vamos a centrar en un componente personalizado: el mapa. Este mapa muestra la ubicación de la propiedad. El usuario puede ampliarlo para ver la propiedad con más detalle y sus alrededores.
Veamos cómo se ha creado este componente.
Si ha seguido los pasos descritos en su Trailhead Playground hasta ahora, eso es maravilloso. A partir de ahora, vamos a mostrarle capturas de pantalla de código de la aplicación Dreamhouse desde Visual Studio Code.
Visual Studio Code, o VS Code, junto con Salesforce Extension Pack, es el entorno de desarrollo integrado, o IDE, de preferencia de Salesforce que puede utilizar para desarrollar, depurar y probar código en su organización. En los siguientes ejemplos, analizaremos el código del componente de la propiedad y, en concreto, el componente personalizado de mapa de VS Code. Párese un momento y observe algunos de estos elementos fundamentales. Se usa una etiqueta <template> en un archivo HTML para almacenar los elementos de HTML.
Un archivo JavaScript contiene métodos que definen el funcionamiento del componente.
Los componentes web Lightning también pueden contener un archivo .css para aplicar estilo, pero este componente en concreto no lo incluye. En la columna izquierda de VS Code, también verá algunos recursos adicionales que forman parte de este paquete de componentes, como un archivo .xml y una carpeta de pruebas.
Otra ventaja de los componentes web Lightning es que es muy fácil verificar si los componentes se pueden usar en dispositivos móviles. Puede usar simuladores móviles para comprobar y depurar sus componentes web Lightning para asegurarse que los usuarios móviles no tengan ningún problema.
Para obtener más información sobre los componentes web Lightning, consulte la sección de recursos a continuación.
Apex
Apex es el lenguaje de programación orientado a los objetos y con parámetros de asignación rigurosa que permite a los desarrolladores de Salesforce agregar lógica empresarial a eventos del sistema, como clics de botón y actualizaciones, a los registros relacionados.
Anteriormente, hablamos sobre Flow Builder como herramienta de automatización de poca programación. Aunque es de poca programación, también puede ampliar las funciones de Flow Builder programando un poco con Apex. También puede desarrollar aplicaciones más complejas solo utilizando Apex. Analicemos el código del flujo de pantalla que vimos en la Unidad 2 y que recopila información para crear un nuevo registro de propiedad en la aplicación Dreamhouse.
Si ha desarrollado Java alguna vez, probablemente averiguará con facilidad lo que pasa en esta clase. De nuevo, no vamos a pasar por cada detalle de esta implementación. Aparte de la sintaxis similar a Java, existen un par de cosas que hay que destacar.
- Tenga en cuenta que las clases internas
GeocodingAddress
yCoordinates
tienen propiedades en cada clase que se anotan con@InvocableVariable.
Esto le permite usarlas para enviar datos al flujo.
- El método Apex
geocodeAddresses
se anota con@InvocableMethod
para que pueda invocarse en forma de acción del flujo.
- El método
geocodeAddresses
genera las coordenadas de las propiedades en función de la dirección. Para ello, envÃa una solicitud HTTPCallout a un servicio de terceros.
Por supuesto, la ampliación de Flow es solo una de las maneras con que puede utilizar Apex para mejorar las funciones de su organización. Para obtener más información, consulte la sección de recursos a continuación.
Node.js
Node.js es un entorno de ejecución JavaScript asÃncrono y basado en eventos que se ha diseñado para desarrollar aplicaciones de red ampliables. En Salesforce, usamos Node.js para las herramientas de desarrollo, pero no para programar en la plataforma.
Cuando se crea un proyecto nuevo con el comando force:project:create
en Salesforce CLI, o con la paleta de comandos de Visual Studio Code, se incluyen un conjunto de scripts y utilidades de Node.js en el proyecto para mejorar la experiencia del desarrollador. Node.js es un motor de generación de scripts que sirve para cualquier sistema operativo y que se puede usar para cosas como aplicar formato con Prettier, analizar con ESLint, probar el código de los componentes web Lightning con Jest y mucho más.
Acaba de ver algunos de los lenguajes y marcos más comunes que puede usar para personalizar componentes en Salesforce Platform. En la siguiente unidad, descubrirá las herramientas y los productos que puede integrar y que amplÃan aún más la funcionalidad en toda la organización.
Recursos
- Trailhead: Fundamentos de Lightning Web Components
- Trailhead: Lightning Web Components Tests (Pruebas con componentes web Lightning)
- Trailhead: Set Up Your Mobile Development Tools for Lightning Web Components (Configurar las herramientas de desarrollo móviles para componentes web Lightning)
- Trailhead: Aspectos básicos de Apex para administradores
- Trailhead: Set Up Your Workspace and Install Developer Tools (Configurar el espacio de trabajo e instalar herramientas de desarrollo)