Question
· Mar 23, 2016

Web Development framework to share - anyone?

Hello, our customer, large industrial company, is considering modernizing their old CSP application so it can run on multiple client device types, using responsive design.

They have a lot of experience with CSP and some ZEN.

They are new to REST and have some limited knowledge of javascript - perhaps not enough to the extent used by client framework.

Does anyone have a framework or a set of templates that you would be willing to share?

Thank you!

Dan Kutac 

Discussion (7)0
Log in or sign up to continue

Are you looking for a browser based app or a native app in IOS/Android? There is nothing in CSP that stops you from running different browsers on multiple client device types, using responsive design. I've written simple GUIs with HTML, CSS and Javascript or check Sencha Touch or JQuery mobile. If you want to create native apps (much more resource intensive) investigate Cache delivering web services.

Tom Fitzgibbon | Multidata | 212-967-6700 x537

Dan,

You might take a look at Benjamin DeBoe's iKnow demos which I believe are all sharable with customers.  They leverage REST+AngularJS (which cuts down on the JS code you have to write)+Bootstrap (which ships with Caché in 2016.1 I believe to support ZenMojo's Bootstrap flavor).  That might be a good starting point for sample code if this is a direction they are willing to explore.

HTH,

Ben

Hi Daniel,

use bootstrap and javascript. There are a lot of frameworks out there. You can use ZEN-Mojo as framework for example. I wouldn't try to work with angular.js because it's more expert-level Javascript and templating. But when you do it correctly it could be the best option out there.

Responsive apps need a lot of CSS and Javascript-Knowledge. Bootstrap gives you an idea and a good basic on how to achieve that. Maybe it's enough to redesign your old CSP-Pages to bootstrap to make it responsive enough.

The easiest way to work with an REST-API is jQuery-ajax (for http-requests in general)

I also use a Java-Class like structure for my scripts. Here is an example:

function MyClass(initParm, initListener) {
    var m_PrivateProperty = initParm || null;
    var m_EventListener = (typeof initListener === "function" ? initListener : new MyClass.OnEventListener())
    this.PublicProperty = "Hello World";
    
    this.getOnEventListener = function() {
        return m_EventListener;
    }
    this.setOnEventListener = function(EventListener) {
        m_EventListener = EventListener;
    }
    
    var privateFunc = function(parms) {
        return stuff;
    }
    this.publicFunction = function(parms) {
        return privateFunc(stuff)
    }
    
    this.getPrivateProperty = function() {
        return m_PrivateProperty;
    }
    this.setPrivateProperty = function(PrivateProperty) {
        m_PrivateProperty;
    }
    
    this.sendToServer = function() {
        var that = this;
        jQuery.ajax("/rest/do/things/", {
            method : "GET",
            asynch : true,
            data : {
                parm1 : this.getPrivateProperty()
            }
        }).done(function(a,b,c) {
            //we need "that" here. "this" is not MyClass anymore; could be jqXHR-Object or window
            that.getOnEventListener().OnThingsListener(a);
        }).error(function(a,b,c) { 
            //read jquery-doc
        })
    }
    
}
MyClass.OnEventListener = function() {
    this.OnClickListener = function(parms) { };
    this.OnThingsListener = function(parms) { };
}
 
var a = new MyClass(parm1,parm2)

I would add my 5 cents. 

We have DeepSeeWeb projects which is Angular.js+gulp+Twitter Bootstrap thing.

It operates with DeepSee using MDX2JSON REST API.

You can see how it works e.g. in this GS Contest dashboard.

With Caché REST API and JSON as a transferring format for the data there a lot of pretty similar approaches for building UI:

React.JS, Angular2, Zen Mojo for web UI and .NET for the desktop.

Hello Daniel,

Here in Brazil I am working with some APs and customers about the same issue. During some conversations on internal mail lists I got those inputs:

1) The first recommendation in the chain is Zen Mojo if they want to use our offering. If they have web developers they should consider HTML development with JS frameworks like AngularJS, React and connect via JSON over REST.

2) The bigger the application, the better a framework that suits more complex needs. You can build more complex systems with Zen Mojo, but after you hit a certain level of complexity it is better to leverage a less simplistic framework, like Angular or React. In general: If the customer or AP is able to build up and maintain knowledge in Angular or React, they should choose that path. If they are a Caché shop that wants to do web development, but can’t dedicate resources to it, they should choose Zen Mojo.

3) If the customer or AP decision is to use the ZEN Mojo, they can use use multiple templates for desktop applications. Multiple templates has some disadivantages.

4) We have already customers who have built complex desktop applications with Zen Mojo. Both used a generator approach, because that is what they used in their previous generation of their front-end. The Plugin Documentation is an example of a small desktop application.

5) There is some nice content related to global summit 2016 wich uses some Angular examples 

6) In general we release every 2.5 months.

I have been discussing with those AP and customers the advantages and disadivantages and also demonstrating to them in pratice how both works. The final decission should be the AP or customer decisions according to their team, busineess and strategy.

I hope it helps.