For good and for bad: the code of the JSClient is open. This session will provide you with a sample app showing how to:
• Get additional notation features like $cwind, $iwindows and a notation tree is accessible in the debugger, allowing you to improve the debugging process
Do you remember learning notation for omnis fat client? Maybe a steep learning curve, but very rewarding: So much more control, easy and speed for development.
Omnis JS client does offer only a limited subset of the notation tree of the fat client.
But as the code for JSClient is open, we can add to it.
This will allow e.g.:
o Showing multiple forms at once (in one task)
o Communication between subwindows – good for widgets
o Communication between forms – removing the need for a “desktop-window” – allowing for more complex apps – allowing for window instances
• Escape from callback hell, by adding your own stack for survival in an async world
o Learn how to make a server-call while waiting for another server-call.
o Trigger methods, depend on other methods return before execution
o Automatically ask for login where require d
• Bypassing build in communication
Full control, what is sent and what is not. Run multiple server methods simultaneously.
• Disconnect and Reconnect Sessions of the JSC
• Set up a lightweight and convenient widget Framework
Use the many javascript & css widgets available in the omnis, without coding javascript, often without coding at all
• Customize IndexDB the fast database build into all mayor browsers
• Add custom functions to smartlists
• Drifting
Which technique to explore to what extend is decided by the group.
A secondary aim of the session is to foster the building of groups of developers collaborating in writing open source code for the best implementation of these components.
Disclaimer:
Improper use of some techniques demonstrated might violate you licence agreement. This is not encouraged.
Smartlists were one of the major enhancements of Omnis Studio right from the first version.
Smartlists simplify data handling a lot, allowing to handle a complex data structures easier.
This hands on session enables you to easily boost your jsClient apps with fast local data storage (Indexed DB) using the convenience of familiar $smartlist syntax.
With a sample app superclass we will make sure that each participant gets basic local database operations running in his app. If and which advanced issues are pursued is decided by the group.
Using a sample library we will practice :
• Local Database Setup
• Smartlist functions (executed on client)
o $insert, $update, $dowork, $undo, $filter,
• Cursor functions
o $next, $previous
• => stacking dependent asynchronous calls
• Triggers
• Defining Lists EOC
• Caching
• Simple $sync with server
• Handling relational data
• Handling complex data types incl. Pictures
• CRB setup
Delimitation:
We will focus on USING an open source superclass providing both IndexedDB and $martlist function. The aim is to implement it into your app, with very little parametrization required.
To get into depth in UNDERSTANDING how the superclass works internally, please join session “Pimping the JavaScript Client”