Sitemap
Business Applications

The business applications space is rapidly evolving with new low-code and high-code technologies. How can organizations adopt these new options to tackle fundamental business challenges?

Naming conventions for Canvas Apps on Microsoft’s Power Platform

4 min readJun 25, 2020

--

Intelligent design-time decisions can have an enormous impact on any piece of software in the long run, but certainly within low-code environments.

At first, naming conventions might seem to introduce an unnecessary element of complexity for citizen developers. However, they aren’t that difficult to learn and once applied they will prove invaluable when working with controls and variables in the formula bar.

When a control is added to the screen, the associated element in the tree menu on the left gets a rather verbose but - truth be told - highly descriptive name. When it comes to the type at least. We still need to replace the counter with what the control represents.

A label field being added to the app

How can we retain the type information conveyed by this name, while also ensuring brevity? Prefixes to the rescue!

A caveat about screens

Prefixes cannot be applied to screens. Screen names are used by assistive technology and should therefore be spelled out in full, e.g. Home Screen, Detail Screen. Apart from inside the Navigate function, they aren’t used much when working in the formula bar anyway.

Some considerations

Prefixes carry the benefit of being concise and enabling easy autocompletion when you start typing in the formula bar. The prefixes allow you to identify controls and variables more easily in more complex formulas. When you don’t know the name of the field but you do know it is a text input, type txt and the autocomplete functionality will find it.

Although the default names use PascalCase, I write the prefixes in lower case, thereby turning the names into camelCase, e.g. lblDescription. This conveys that the type information only comes second to the actual meaning of that specific control.

A capital letter should be used for each separate word, in line with the dictionary, e.g. lblFirstName instead of lblFirstname. For the sake of unity, all prefixes are trigrams. They always contain three characters. The type should not be repeated: e.g. galProducts and not galProductsGallery

Furthermore, all names must be globally unique so whenever you want to use the same name for a control on multiple screens you can suffix the name with the initials of the screen name. If a label with the text Description would appear on both the Home Screen and Detail Screen, you could use lblDescriptionHS and lblDescriptionDS respectively.

Some trigrams have been borrowed from earlier documentation, others have been added by me personally. The latter will be indicated by an asterisk. I hope this list might be useful for some. You might encounter other naming conventions somewhere else, but a system is always better than no system. Here we go:

Variables

col — Collection ( + plural)

loc*— Local variable

gbl* — Global variable

Most used controls

btn — Button (+ infinitive of the action verb + object)

gal — Gallery (use a plural, avoid repeating “gallery” or “list”)

ico — Icon

img — Image

lbl — Label

shp — Shape (default name indicates subtype, e.g. Arrow1 and could become shpArrowNext)

txt — Text input (for currencies, add the currency code as a suffix)

Some more form controls

cbx *— Check box

cmb — Combo box (if you allow multiple selections, use a plural)

crd — Card (individual field of a form control)

drp — Dropdown

dte — Date picker

frm* — Form, Entity form or Form viewer

lbx* — List box

rdo — Radio

sld — Slider

Press enter or click to view image in full size
Renaming a button control

Other controls

aud — Audio

att*— Attachments

cam — Camera

cch* — Column chart

clm*— Column (part of a Data Table control) (avoid “col”!)

com* — Component (use the screen initials if you use it on multiple screens)

con* — Container

exp* — Export data

fps — Forms Pro survey

grp — Group

imp* — Import data

htm — Html text

lch* — Line chart

lgd — Legend

mic — Microphone

msv*— Microsoft Stream video

pbi* — Power BI tile

pch* — Pie chart

pdf — PDF viewer

pen* — Pen input

rte*— Rich text editor

tbl — Data table

tim — Timer

vid* — Video

AI capabilities

bar* — Barcode scanner

bcr* — Business card reader

fpr* — Form processor

obd* — Object detector

txr * — Text Recognizer

As the platform is evolving rapidly, I presume more controls will be added soon.

Happy renaming!

--

--

Business Applications
Business Applications

Published in Business Applications

The business applications space is rapidly evolving with new low-code and high-code technologies. How can organizations adopt these new options to tackle fundamental business challenges?

Salvi Jansen
Salvi Jansen

Written by Salvi Jansen

I like strategic things and technical things, preferably delivered as a product.