× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



It's difficult to format a reply on a phone in sections as you have done below. I wasn't suggesting that the "only" thing the server does is respond exchange a data model and nothing else. There are lots of other things that the server has to do, like interact with third party applications or create PDFs for streaming etc - but the bread and butter method for delivering the UI is much easier to understand and quicker to develop (for us) using client side UI components, compared to the old cgidev2 method of delivering content. By two way binding I mean that changes made to the model (made in the client or the server) automatically cause a reaction in the UI, and vice versa. It's only two way for things that can be changed in the UI by the user though, like an input field or clicking a button. For a grid, binding would be to a model attribute that contains an array. If the grid has input capable columns two way binding still takes place, otherwise it's one way.

Maybe we just find it easier because the amount of code we have to write is much less than it used to be, and our components are auto-documented using jsdoc:
rn6.coraltreesystems.com:9089/doc/RNS.Component.html

I am not sure how angular does it, but we have a markup language (hybrid of XML and html really) called RML in which we define a UI for a function - it's just a set of components with their options bound to data model attributes. Since components are feature rich, the actual RML, even for a complex function, is very lightweight, and so is the rpg server program that handles it's requests. The RML can be created with a wysiwyg editor or a simple XML editor using xsd validation. A development efficiency improvement on our cgidev2 stuff.

We also make liberal use of web sockets for pushing data to clients where appropriate, so in theory many of the things we used to use polling for now work more efficiently.



On 27 May 2015, at 18:33, Nathan Andelin <nandelin@xxxxxxxxx> wrote:


I think you are suggesting that returning JSON data is not as safe and
efficient as returning the html itself. The latter is what you would be
doing in a traditional cgidev2 application, but we have dumped that method
(although it is still supported) in RNS 6.

Of course Brad can speak for himself, but I don't think he was suggesting
that one approach was safer or better than the other; just that there are
many alternatives for generating browser pages, including server-based and
client-based frameworks/techniques.

I would suggest that client-based frameworks such as Angular JS should not
entirely replace server-based frameworks. You might continue to use
server-based techniques to generate HTML reports (stream files), transform
them into PDFs, and stream either format to browser clients.


You get a much more efficient process, and a much faster development time,
if you use the data model approach (basically the JSON) with two way
binding on the visual components. Now the developer can just arrange
components on the page and bind certain elements to data model properties.


Could you be more specific about the efficiency gains and developer
productivity? Are you suggesting that client-side tools and utilities
streamline development? If so, then how?


The model gets exchanged between the client and the server, and the RPG
part of the process is now lightweight compared to some of the complicated
cgidev2 programs we used to have.

I understand that, because browser page (UI) generation is being moved from
the server to the client.


Our data grid component can do page by page loading, filtering, sorting on
huge files just as easily as a green screen subfile can.


That's good, but it doesn't sound like 2-way binding. Or is it?
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing list
To post a message email: WEB400@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/web400.


___________________________________________
This email has been scanned by iomartcloud.
http://www.iomartcloud.com/


________________________________

NOTICE: The information in this electronic mail transmission is intended by CoralTree Systems Ltd for the use of the named individuals or entity to which it is directed and may contain information that is privileged or otherwise confidential. If you have received this electronic mail transmission in error, please delete it from your system without copying or forwarding it, and notify the sender of the error by reply email or by telephone, so that the sender's address records can be corrected.



--------------------------------------------------------------------------------


CoralTree Systems Limited
Company Registration Number 5021022.
Registered Office:
12-14 Carlton Place
Southampton
Hampshire
SO15 2EA
VAT Registration Number 834 1020 74.

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.