• Home
  • >
  • Software Development
  • >
  • Microsoft Open Sources the Power Fx Language for Customizing Logic in Low-Code Apps – InApps 2022

Microsoft Open Sources the Power Fx Language for Customizing Logic in Low-Code Apps – InApps is an article under the topic Software Development Many of you are most interested in today !! Today, let’s InApps.net learn Microsoft Open Sources the Power Fx Language for Customizing Logic in Low-Code Apps – InApps in today’s post !

Read more about Microsoft Open Sources the Power Fx Language for Customizing Logic in Low-Code Apps – InApps at Wikipedia

You can find content about Microsoft Open Sources the Power Fx Language for Customizing Logic in Low-Code Apps – InApps from the Wikipedia website

Back in January, Microsoft released an experimental tool to make it easier to collaborate on the drag-and-drop low code Canvas apps you can create in Power Apps, by exporting them to GitHub. Instead of an opaque blob file, the utility extracts editable source code (written in a subset of YAML) that can be edited in an IDE like Visual Studio Code, checked into a source control system and generally become part of standard application lifecycle management where you can diff changes, make a pull request and merge PRs to update the app.

That was the first glimpse of Power Fx; an open source programming language for low code that’s based on Excel. The Canvas app formula language is sometimes also called the Power Apps expression language, because it’s what formulas, IF statements and variables have been written in all along, but it’s also how SharePoint forms are customized and it’s used in Dynamics 365 setups.

Now Microsoft is turning it into an open source, strongly typed, declarative, functional language, where developers can use imperative logic and state management if they need to.

The green functions are Power Fx functions that are the same as in Excel (Microsoft)

The Low Code Cliff Edge

Why does low code — a movement designed to enable people without development expertise to builds apps — need a programming language at all? No low code platform will be able to cover everything users want to achieve, so they need to be extensible. Working in a visual developer environment lets you build workflows and connect components together with static analysis, incremental compilation, but it isn’t always easy to create the custom logic that makes applications more than simple lists and formatting. Organizations want to be able to create their own components to supplement the built-in options. And if a low code app is useful enough that it becomes widely used, they might want a professional developer to take it over, add more features and make it the official option.

Low code development will grow by 23% in 2021, according to Gartner. In fact, IDC predicts that between 2018 and 2023 more new apps — up to 500 million — will be written than in the previous 40 years. That means that a majority of enterprise software could be developed, at least initially, with low code tools in the next few years — by the business experts who know what the software needs to do rather than by developers who work from requirements documents.

It also means that that organizations will be building more software more quickly than they ever have, and wanting to update or replace software just as quickly when situations change.

Usually, extending an app built with low code platform means handing it over to a professional developer who might end up rewriting it using tools they’re familiar with — which means the original app creator either has to learn a full programming language or stop contributing to the app.

But software development is a team sport; low code needs to be able to participate in the pro-development tools developers rely on, and experienced developers need low code platforms to give them to flexibility to extend apps without recreating them from scratch. Recently Microsoft has been emphasizing the ways Power Apps is relevant to professional developers by connecting it to GitHub Actions (and Azure DevOps) to make it easier for them to add their own components.

The next step is making the underlying expression language a first-class programming language for the tools in the Power platform, and for low code generally as an open source project; whether it’s for simple configurations that link pre-built components or for more complex logic.

Power Fx code in Visual Studio Code (Microsoft).

Evolving a Language for Code and Low Code

Read More:   Linkerd 1.0, a Communications Service Mesh for Cloud-Native Apps – InApps Technology 2022

Developed at Microsoft under the code names Tangram and Siena, Power Fx is based on the Excel formula language; it has the same syntax and functions and many formulas can be copied over from Excel and will work straight away. But it also pulls in work from other Microsoft low code efforts, like Project Siena for creating touch-friendly tablet apps that connected to Excel, SharePoint lists, Azure Mobile Services or any REST API and the Tangram incubation project, which promised interactive 3D and “entirely new ways to see, interact with and use data of deep interest to consumers and business people” (which never became a specific project but sounds very like Power BI), and programming optimization tools like the Microsoft Solver Foundation.

Radu Gruian who led the functional expression language design team had been the cofounder of Project Siena with Robin Abraham (who had done extensive research in “end-user software engineering”), before moving on to build the Power Apps platform with Vijay Mital, who had been an architect for the Power BI technology. Shon Katzenberger worked on the Solver Foundation, C# language design and Tangram; Darryl Rubin was one of Microsoft’s first Distinguished Engineers.

They wanted to create a language that would be familiar to Excel users, and that kept the instant calculation of Excel, where you can see the results (and any mistakes) as soon as you edit a formula, rather than having to go through multiple steps to compile, run and test the code. In traditional programming languages there can be many different pieces of code that affect a variable; in a spreadsheet, although there can be underlying calculations, there’s only one place a specific value is calculated. But they also incorporated ideas from Pascal, Miranda, Mathematic and linear solvers.

Power Fx statements start with = like Excel formulas. That’s familiar but it also means that the YAML used to bind expressions to properties isn’t parsed. In the future, non-formulas that don’t start with + will also be supported.

Power Fx formulas use the same IF (TEST, THEN, ELSE) format as Excel for conditional statements and the same string evaluation functions for text handling (including & rather than the + of JavaScript). Types, operators and functions are based on Excel, or on SQL for data operations and strong typing not available in Excel (types are derived rather than declared, and the types of all values are known at compile time). Unlike Excel, functions can have side effects, but the language attempts to minimize these. And because Excel doesn’t have comments, Power Fx adopts the line and inline comments from C.

Power Fx binds objects to those formulas using declarative logic — describing what you want to do, not when or how to do it — with dot notation that references the object properties, like the fill on a button, the title of a field or the contents of a record or text box.

It also supports imperative logic for refreshing data sets, resetting controls, navigating into different screens, submitting forms and other tasks that you don’t need in a spreadsheet but do need in apps.

As Clay Wesener explained in a session at Microsoft’s Ignite conference earlier this month, Power Fx is more compact than JavaScript and the Power platform does some of the development work with governance tools, quality checkers and collaboration tools

“I’ve replaced effectively seven lines of code with one line of Power Fx. Not only was that easier and quicker to write, but on top of that, my query has been delegated for faster performance. I’ve added the benefit of error handling. I’ve used query projection, which basically means it’s gone faster and it’s been more efficient, and as a developer, I haven’t had to think about that.”

Power Fx opts for many things that make development less confusing to non-experts. The incremental compiler means you don’t need event handlers; if you have sliders to change the background color, the color changes automatically when the slider sets the value in the formula. A separate calculation can use the current background color to change the handles and labels on the sliders to a contrasting color; it’s easier to change independent formulas without affecting logic elsewhere in the application; if you make a mistake in the formula to change the color of a button, that won’t stop the app from working – but button color will just be wrong. There’s no undefined value; if something isn’t defined, it’s treated as blank (or an error).

Asynchronous data operations mean users don’t need to create promises or understand lambda functions, or database keys or data projection. Large amounts of data will be automatically returned in 100-record chunks without the user needing to limit data requests.

Read More:   Why High-Performing DevOps Teams Thrive on Observability  – InApps Technology 2022

Like Excel, you can use commas or periods to separate decimals if that’s what your native language (like French) does. Like the user-friendly display names, this makes Power Fx code easier to localize.

And because the Power Fx language is still developing, every Power Fx code document saved includes a language version stamp. If the language changes in incompatible ways, a “back compact converter” rewrites incompatible formulas when they’re next edited (showing a message with a link to the documentation for major changes). That way the language can evolve quickly but old code will still run.

Pro Code

The Power platform has connectors for many different data sources and web services; those are included with Power Fx, along with code components that allow Power Fx code to interact with JavaScript, and developers can write custom connectors to talk to other REST APIs and services.

Power BI has DAX — data analysis expressions — and M (the Power Query language) for data transformation and those won’t go away, but tools in the Power platform that don’t already have a language for customizing them will now use Power Fx. The options for calculated columns in “Dataverse” — the way data is stored in the cloud to be used with Power Apps or Teams apps (using Azure SQL, Cosmos DB and Azure Data Lake depending on the type of data) — are currently limited; they can become much richer with Power Fx, which will become the native way of working with data in both Dataverse and SharePoint, for rollups, business rules, and validation using formulas.

The same code in Power Fx and JavaScript (Microsoft)

It will also be used for declaring variables to customize chatbot interactions in Power Virtual Agents, adding custom logic in Power Automate (where the current expression language is fairly complex) both in the cloud and on desktop. In the next few months, Power Fx will also get new functions to work with AI Builder, so you can use more than the existing controls to work with AI models, predictions, and intelligent objects.

And all of that can be something both low code and pro developers collaborate on, using the tools they’re comfortable and productive with.

List of Keywords users find our article on Google:

software
power apps
power apps microsoft
app power bi
logic compact
sql source control
microsoft power platform
microsotf power platform
power bi services
power bi app
azure logic apps
case logic
power app
power bi service
power bi query language
power bi dax
power bi dax format
power bi vs business objects
power bi rest api
powerbi language
gitlab connector
microsoft dynamics apps
microsoft azure cos è
power bi wikipedia
microsoft power bi email
dax power bi
dynamics 365 apps
power query
power management development kits
azure devops rest api
if in power bi
microsoft power automate review
dataverse for teams
microsoft power bi jobs
microsoft power virtual agents
microsoft power query
power automate templates
microsoft dynamics recruitment consultant
azure devops excel add in
cover fx power play foundation
excel background color formula
hire microsoft dynamics 365 consultant
power query if
excel if value then color
sharepoint rest api
microsoft power bi review
power query power bi
richer sounds trustpilot
app.powerbi.com
microsoft dax
how digital transformation is rewriting business models
power platform texting
earlier power bi
power platform microsoft
hire cosmos db developers
microsoft power bi dax
power bi conditional formatting
microsoft labels templates
power bi microsoft
excel experts for hire
excel set color in formula
blank powerapps
update power bi
using microsoft windowsazure mobileservices
us logic
the document could not be saved logic pro x
flatform slider
power apps dynamics 365
power bi if
conditional formatting in power bi
cover fx foundation
qa-power-m
excel connect to azure analysis services
microsoft open
what are power apps
azure devops mobile app
microsoft dynamics 365 recruitment
c# if else one line
dax if power bi
power bi related
dynamics 365 canvas app
microsoft teams lifecycle management
power bi custom visuals
dax query in power bi
excel power query formulas
power bi api
power bi design templates
pro tools to logic
hire power automate developer
canvas app dynamics 365
logic apps
hire powerapps developer
power query replace multiple values
power bi dax online training
programming logic and design
microsoft fx logic
fx language
app powerbi com
conditional formatting tool for enterprise architect
dax microsoft
wiki cliff branch
logic wikipedia
logic pro wikipedia
que es power apps
azure query language
sharepoint portfolio template
microsoft dataverse
power-apps
outsource power bi services
evaluation center microsoft
azure flat compact
github fx
high logic extracts
power query m
powerapps functions
if else in power bi
rest api power bi
power bi jobs in microsoft
ignite ui for javascript
visual statements net
dataverse microsoft
microsoft expression web pricing
powerapps lookup
if else power bi
microsoft power bi api
power app excel
azure logic app
azure mobile app
facebook connector power bi
microsoft ai builder
azure power apps
github to power bi
ignite ui components
microsoft dax for excel
microsoftpowerbi api
power apps power bi
text.start power query
what is power apps
c# fill excel template
custom net forms in sharepoint
custom vision api c#
hire azure data lake analytics developers
how to update power bi
visual studio 2022 incompatible project
dax in power bi
power bi excel sharepoint
power bi project online
azure data box edge
excel formula to change text color
power bi edit interactions
power bi facebook template
vscode sharepoint
app power
excel datasource c#
microsoft power query for excel
azure devops analysis services in usa
how to open dax studio in power bi
tan easy pro tools
azure devops pr template
eve pro builds
event power aps
if then in power bi
microsoft bi jobs
microsoft label templates
microsoft power bi обзор
microsoft powerapps database
c# excel connection string
excel color formula if
hire powerapps consultant
power bi web
azure mobile apps
excel color formula
how long does it take to learn power bi
microsoft solver
power automate expressions
powerapps control framework dynamics 365
sharepoint validation formulas
cover fx power play
fx logic
microsoft expression web 5
microsoft power bi partners
microsoft powerapps review
power bi azure data lake direct query
power bi dax if and statement
power bi format
power bi mobile app
powerapps for teams
sharepoint project portfolio management template
cover fx
dynamics 365 engineering change management
excel data validation formula
excel formula to change text color based on value
integrated ecommerce for microsoft dynamics
make.powerapps.com
power platform connectors
powerapps chatbot pricing
supplement label design software
custom team 365
ecommerce for microsoft dynamics 365
excel formula for next month
hire pascal developers
jobs to be done framework formula
microsoft evaluation center
power apps azure
power bi azure data lake
power bi documentation
sharepoint portfolio management template
azure data lake
azure data studio cosmos db
azure devops merge projects
cover fx foundation price
pascal press excel
power apps and power automate
azure logic apps visual studio
dax formula power bi
microsoft expression web
microsoft power apps
microsoft power bi reviews
open cosmos jobs
power automate document merge
power platform developer jobs
why isn’t my excel formula working
azure cost analysis blank
cover fx custom drops
excel formula next month
microsoft dynamics jobs and recruitment
microsoft software developers
sharepoint syntax
ui design for windows application in c#
500 excel formulas
canvas business apps and forms reviews
dataverse partner
dynamics 365 mobile app development
microsoft dataverse for teams
powerapps write to excel
pro tools won’t open
related power bi
send to back power bi
excel formula current month
excel if background color then
lambda power
master data management gartner 2018
microsoft power bireview
power automate desktop error handling
power bi pro api
power virtual agents
powerapps dynamics 365 lookup
dynamics 365 for sales mobile app
power automate desktop ai builder
power bi azure devops
siena canvas
azure cosmos sql api
calculated columns in power bi
how to get power query in excel
microsoft custom vision api
power bi version control azure devops
business objects vs microsoft power bi
change format power bi
dynamics 365 powerapps control framework
logic compact pro
microsoft power bi custom visuals
power bi mobile
power bi query formulas
azure devops variables
chatbot templates for whatsapp
excel power query functions
how many dax functions in power bi
power bi code
power bi power query
bi technologies
component governance azure devops
consultant microsoft dynamics e-commerce
dynamics 365 custom controls
dynamics 365 for operations powerapps
market logic software
microsoft web expression
power bi analysis services
power bi language
powerapps upload image to sharepoint
replace formula with value in excel
sharepoint workflows explained
azure devops mobile apps
azure analysis services excel
code analysis azure devops
code project c#
dax expressions
dynamics admin power platform
fx idc
how to run the code in visual studio
microsoft dynamics food
microsoft dynamics mobile app
power bi sales template
power bi sharepoint data source
power query optimization
Read More:   ‘Hello World,’ Raspberry Pi Style – InApps 2022

Source: InApps.net

Rate this post
Content writer

Let’s create the next big thing together!

Coming together is a beginning. Keeping together is progress. Working together is success.

Let’s talk

Get a custom Proposal

Please fill in your information and your need to get a suitable solution.

    You need to enter your email to download

      Success. Downloading...