Conocer Power Fx

Completado

Después de esta rápida formación en el desarrollo con poco código, tanto usted como Kiana han notado similitudes y diferencias entre los lenguajes de programación que ha usado tradicionalmente para crear aplicaciones, como C# y JavaScript, y el Power FX utilizado en Power Apps.

Microsoft Power Fx es el lenguaje de código bajo para expresar lógica en las aplicaciones de Power Apps basadas en lienzo. Power Fx se inspira en Microsoft Excel y sigue muchos de los patrones de las expresiones de Excel.

Expresiones y fórmulas

Pero no solo se escriben expresiones en Excel, si no que se escriben fórmulas o recetas sobre cómo calcular el valor de una celda específica. A1 = B2 * 2 es una fórmula que define el valor de A1 en todo momento, el cual se recalcula automáticamente a medida que cambia B2.

Power Fx sigue este mismo patrón de fórmulas. Las celdas se reemplazan con las propiedades de controles u objetos. Este es un ejemplo en el que hemos tomado esta fórmula de Excel de desbordamiento de pila para la búsqueda de cadenas inversa:

Excel with the formula: =RIGHT(A1,LEN(A1)-FIND(

Y hemos creado una fórmula de Power Fx a partir de ella. La única diferencia es que las referencias a las celdas se han reemplazado por referencias a las propiedades de control:

Power Fx running inside of Power Apps with the formula: =RIGHT(Input.Text,LEN(Input.Text)-FIND(

Esta misma sintaxis y las mismas funciones no solo funcionan en Power Fx, sino que también puede apreciarse algo más en la animación. A medida que Input.Text cambia (el cuadro superior), Label.Text (el cuadro inferior) se recalcula automáticamente. La aplicación se comporta como una hoja de cálculo, se recalcula continuamente, sin necesidad de que el desarrollador de la aplicación agregue código que especifique cómo hacer que eso suceda.

Un modelo declarativo de aplicación

Muchas pilas de desarrollo de aplicaciones tradicionales cuentan con un modelo imperativo para el desarrollo en la pila. En otras palabras, el desarrollador de la aplicación tiene que escribir código para todo lo que sucede en la aplicación: autenticación y autorización, lógica empresarial, interfaz de usuario, configuración del servidor o del servicio en la nube, etc.

Power Fx es un lenguaje declarativo, al igual que Excel. El desarrollador define qué comportamiento quiere, pero depende del sistema decidir cómo y cuándo lograrlo. Para que eso sea práctico, la mayor parte del trabajo se realiza a través de funciones puras sin efectos colaterales, lo que hace que Power Fx también sea un lenguaje funcional.

Aquí hay otro ejemplo más colorista que usa una fórmula para el color de relleno de la pantalla. A medida que se cambian los controles deslizantes que controlan el rojo, el verde y el azul, el color de fondo cambia automáticamente a medida que se recalcula:

Power Fx Formula: Fill = RGBA( RedSlider.Value, GreenSlider.Value, BlueSLider.Value, 100% )

No hay eventos OnChange para los controles deslizantes, como sería habitual en otros lenguajes. De hecho, no existe ninguna forma de establecer explícitamente el valor de la propiedad Relleno. Lo que tiene una gran ventaja: solo hay una referencia. Si el color no funciona correctamente, solo necesita mirar una fórmula para entender por qué. No es necesario buscar por toda la aplicación para encontrar un fragmento de código erróneo que establezca la propiedad en un momento inesperado. De hecho, no existe el elemento temporal; siempre se mantienen los valores correctos de la fórmula.

Tenga en cuenta algo más en la animación: como los controles deslizantes están configurados en un color oscuro, las etiquetas de Rojo, Verde y Azul cambian a blanco para adecuarse. Esto se hace mediante una fórmula sencilla en la propiedad Color de cada control de etiqueta:

If(
    BlueSlider.Value + GreenSlider.Value + RedSlider.Value < 150,
    White,
    Black
)

La lógica para establecer el color de la etiqueta está aislada de lo que sucede para el color de Relleno, estos son dos cálculos completamente diferentes. En lugar de grandes procedimientos monolíticos, la lógica de Power Fx suele consistir en muchas fórmulas más pequeñas que son independientes. Eso es más fácil de entender y permite mejoras sin alterar la lógica existente.

Ahora existe un momento y un lugar para la lógica imperativa paso a paso, y Power Fx también tiene espacio para esa lógica. Las aplicaciones escriben los cambios en las bases de datos e inician automatizaciones con solo presionar un botón, mientras que las hojas de cálculo no hacen estas cosas. Siempre que sea posible, a pesar de todas las ventajas citadas anteriormente y la coherencia con Excel, favorecemos el enfoque declarativo.

Nota

Puede encontrar más información sobre el uso de técnicas de desarrollo imperativas en Utilizar técnicas de desarrollo imperativas para aplicaciones de lienzo en Power Apps.