Lianja concept

Posted: 2015-12-09 in Lianja concept

You should consider each section to be a “Visual representation” of a SQL table.
So, you would put a “form” section as the first section on a page e.g. “products”.
Then underneath that you create a “Grid” section for “Suppliers”.
You “relate” the “products” section to the “Suppliers” using the relationship builder. Lianja will make a “best guess” of the primary key in products and the foreign key in suppliers. You can change this by double clicking on the section header (or click the “cog” icon) and change the foreign key expression.
Now when you navigate data using the “navigation bar” the “products” will change and this will cascade through all related sections; in this case all “Suppliers” that can supply that product will be displayed in the “suppliers” grid.
You can then release another table from “suppliers” so that when you click on a row in the “suppliers” grid it will automatically relate the sections that have the “suppliers” section as their parent.
So, in summary, think of sections as visual representations of SQL tables and relate then accordingly.

Lianja is an Apps platform. An application is built out of smaller Apps that are grouped together by functional category. These appear in the Lianja App Center.
Apps are built out of pages which in turn are built out of sections. Standard built-in sections are those that are in the “Sections” menu of the “Form Tools Bar”. I would have thought that obvious. This is how Lianja achieves device independence. You build Apps using a high level of abstraction which is mentioned all over the website and forums… Lianja Apps are built out of pages, pages are built out of sections. There are a wide range of built-in sections including form, grid, calendar, report, canvas, tabview, imagestrip etc….. It’s all about a “high level of abstraction” not wasting time with pixel positioning of each UI control.

To build an Application, break it down into smaller discrete Apps and group them together into categories.

Think about how you want the UI to look like, create a page, add sections and relate them together. In other words prototype the whole of your App visually then go back and add specific business logic such as validation, input masks etc.
You use delegates to respond to various actions that occur (Read the blog entry about ART). Delegates can be coded as functions or be inline if they perform simple LOM manipulation (Read the article about the Lianja Object Model). Delegates are a scripting language independent methodology.

With regards to building Web Apps please read the Developers guide which explains how you build n-tier Apps that will run on desktop, web, tablet and/or phone. You interact with the UI (presentation level) and code your delegates in JavaScript (the language of the browser) that are called based on various actions occurring. In these delegates you can make calls to server-side VFP procedures (the middle tier business logic). “Standard sections” are data bound. Data CRUD operations are automatically handled by the Desktop/Web/Mobile Client which in turn communicates back and forward with the Lianja Cloud Server.

Desktop, Web, Tablet and phone Apps are laid out differently based on their UI personality. In other words certain sections can be excluded based on the device. This is all explained in the “resources” menu on the main website.
Tablet and Phone Apps will be able to be built as native apps in v3 as detailed in the roadmap.

if you want to build an an App that will run in desktop, web and mobile “Best practices” dictate you don’t use desktop bound logic nor would you write your delegates in VFP with fat client data manipulation commands; USE, APPEND, REPLACE, SCAN, DELETE etc. Web Apps have a client server architecture. You have to design for it. That’s what the Lianja architecture provides you with; A high level of abstraction with pages and built-in sections with various means of navigating between pages of a SPA (Single Page Application).
The whole concept of sections is that they can be looked upon as being a table in relational database terminology. You then relate the sections together just as you would join tables in SQL.
if your existing VFP application has been written with a clear separation between the UI and the business logic then you can call your business procedures from the client.

If I am developing on my windows box and I run ‘web’, I assume this is also using the cloud-server as you mentioned (just a local version)?
Do you mean “Web App View”?
That is running against your development environment.
Clicking “Preview” deploys that app and fires up your default browser running against the cloud server which is installed when you install APaaS Developer.
The cloud server running on your development machine can be used to run web apps from other machines on your LAN or external if you have a fixed IP address or use something like

underlying UI control contained within the formitem has it’s properties exposed. The textbox is only one of them, there is also checkbox etc.
a formitem is what you reference from the LOM.
a formitem is a field or gadget.
it is a container that has a caption and a data element.

Fields are “formitem” which consist of fields and gadgets.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s