Understanding the Lianja App Architecture

From Lianjapedia
Jump to: navigation, search

To be able to build compelling Apps in Lianja it is important to understand the background vision and the architecture that Lianja provides you for building Desktop, Web and Mobile Apps.

Many developers are familiar with IDEs and frameworks but thats only a small part of what Lianja is all about. In this article I will try and explain the development methodology behind Lianja Apps and show you how you can use this to your benefit when building Apps.

It is important to understand that a Lianja App can have multiple UI personalities and different functionality depending on the "role" that you grant to a user and also the device on which the App is being run e.g. Desktop, Web or Mobile.

Lianja is an APaaS (Application Platform As A Service) that provides an end-to-end solution for the development and deployment of data-centric business Apps. It contains a great deal of built-in functionality to provide a simplified App development methodology.

The Lianja mantra is DEVELOP DEPLOY SHARE so let's take a quick look at what we mean by this.

DEVELOP You build Apps using the Lianja App Builder on a Windows, Mac or Linux desktop.

DEPLOY You then publish the Apps from the App Builder.

SHARE By assigning user roles, permissions and presentation rules to Apps and the individual Pages and Sections that an App is made up from you control who can do what and where they can do it from.

This ability to adjust the functionality and appearance (UI) of an App based on the user and the type of device the user is running the App on reduces development times dramatically and is accomplished without having to write any specific custom code to provide this functionality in your App.

In the traditional way of building desktops Apps you typically have a menubar with various menuitems that the user can choose from.

Lianja takes a different approach to this in order that it can provide a cross UI experience.

Let's look at the steps in building an "Application" in Lianja.

  • Break the "Application" down into small discrete parts -- "Apps".
  • Break each "App" down into visual elements that the user needs to see and interact with -- "Pages".
  • Construct each "Page" out of individual "Sections".
  • Relate the "Data" in a section to one or more other sections -- "Relationships". This data can be coming from any data source e.g. the Lianja embedded database engine, external SQL data and/or dynamic web content.
  • Customize and categorize the App and make it available in the Lianja App Center e.g. Give it an icon, a caption, and a category such as "Finance" or "Reports". The Lianja App Center is what end-users see when they run the Lianja client (Desktop, Web or Mobile). Once a user authenticates (logs in) they can navigate between different App categories and then select an App from a tiled grid.

The whole of the App Builder can be thought of as a meta-framework.

Each page that makes up an App has a lot of built-in functionality that you can enable or disable through the "Page Attributes" dialog. For example, standard features of pages include:

  • Header
  • Footer
  • Instant Search
  • Instant Selections
  • Data Navigation
  • Left and right sidebars

Each section that goes into a page is customizable through the "Section Attributes" dialog. For example:

  • Collapsible or Accordion style
  • Dynamic header and footer content
  • Data navigation
  • Search fields
  • Section menu
  • Section subtitle
  • Section search panel
  • Standard built-in section types include: Form, Grid, WebView, ImageStrip, TabView, Attachments, Reports, Charts
  • Custom sections and canvases

All of this functionality can be customized for your specific App requirements and if the standard sections that are built-in to Lianja do not do exactly as you want, you can build custom sections in Lianja/VFP, Python, PHP, JavaScript or TypeScript.