Choosing Web Development Technology

Posted by avtar.jain on 04-Oct-2018 06:34

Hi,

I am currently analyzing different techniques to migrate V9ADM2 CRM product into Web-Based portal running on IIS server. I found few options which are -

A> Using Webspeed (Embedded Speedscript)

B> Using Webspeed (CGI Wrapper)

C> Using Webspeed (HTML Mappings using SDO)

D> Using Webspeed (HTML Mappings direct from DB)

E> Using Webspeed (PSE script)

F> Using OE-PAS

I would like to find out which option is -

a. Mostly used across all industries for years and proven for success

b. Helps in quick developments and modifications due to ever changing market. For example - minor change to HTML sometimes make everything fall down (re: HTML mapping).

c. Considering progress core values for transaction scoping, locking and security.

Thanks

avtar

All Replies

Posted by Mike Fechner on 04-Oct-2018 08:10
All classic WebSpeed approved (Embedded Speedscript, CGI Wrapper, HTML Mapping, etc.) tend to mix HTML presentation with business logic.
 
Most modern web frameworks, just require a backend to serve JSON data plus static HTML files. I’d go with PASOE as the perfect API backend.
Posted by Peter Judge on 04-Oct-2018 09:14
+1
 
You will need to upgrade the OE installation – I’d suggest the latest version, which is for the very short term 11.7.3.
 
Posted by avtar.jain on 04-Oct-2018 09:52

Thanks Mike Thanks Peter

We are already on OE11.7.3 and tried hands on with OEPAS but due to unfortunate failures with publish of PAS, I decided to stay with proven and long serving technique instead of yet to mature OEPAS

I want to know what methodology is adopted widely for years from following -

Embedded Speedscript, CGI Wrapper, HTML Mappings using SDO, HTML Mappings direct from DB or PSE script

I am thinking to move ahead with unsupported "PSE script", I would like to know if this is being used widely or not?

rgds

a

Posted by goo on 04-Oct-2018 10:10
Go static html and use webspeed as backend Api. I feel it is better to keep html code separated from progress code and use JavaScript as bridge between them.. done  speedscripting, embedded speedscripting and mapping... it can be messy

Sendt fra min iPhone

4. okt. 2018 kl. 16:54 skrev avtar.jain <bounce-avtarjain@community.progress.com>:

Update from Progress Community
avtar.jain

Thanks Mike Thanks Peter

We are already on OE11.7.3 and tried hands on with OEPAS but due to unfortunate failures with publish of PAS, I decided to stay with proven and long serving technique instead of yet to mature OEPAS

I want to know what methodology is adopted widely for years from following -

Embedded Speedscript, CGI Wrapper, HTML Mappings using SDO, HTML Mappings direct from DB or PSE script

I am thinking to move ahead with unsupported "PSE script", I would like to know if this is being used widely or not?

rgds

a

View online

 

You received this notification because you subscribed to the forum.  To unsubscribe from only this thread, go here.

Flag this post as spam/abuse.

Posted by avtar.jain on 04-Oct-2018 10:19

Thanks goo

Can you put some light on JAVAScript bridge? How would it display database values on HTML pages?

I am only aware about following bridges -

Speedscript, CGI Wrapper, HTML Mappings, PSE script or PAS

regards

avtar

Posted by Peter Judge on 04-Oct-2018 10:32
I’m sorry to hear of failure when publishing – I would suggest contacting Tech Support if you are able to reproduce the issues.
 
PASOE is and will be the “API server” for ABL business logic, and is used as such in production by a number of customers.
 
As Geir Otto and others say, you should think about serving (JSON) data from PASOE and/or business logic, and separate the UI from that – so don’t use any of the other WebSpeed approaches. The “CGI Wrapper” WebSpeed approach is closest to this.          
 
I would suggest looking into the WebHandler approach – it is basically all ABL code and has the lightest/easiest deployment approach.
 
 
Posted by avtar.jain on 04-Oct-2018 11:02

Thanks Peter

I will explore "WebHandler". do you have any documentation web link?

regarding "you should think about serving (JSON) data from PASOE", can I avoid use of "Developer Studio" as this is based on eclipse and eats a lot resources. I am happy to stick to classic app-builder and tools.

regarding " I would suggest contacting Tech Support" - I tried this option but then left after a month struggle. This is a black hole which needs a lot time and efforts. I deferred decision for PASOE.

One question: Is there any free version of KendoUI? or do we pay for it?

regards

A

Posted by Mike Fechner on 04-Oct-2018 11:06
There’s Kendo UI core – but it does not contain all the controls:
 
Posted by Peter Judge on 04-Oct-2018 12:28
Re WebHandlers there is some doc in the doc set. There are also a number of presentations that I and others have given at various PUGs over time – these should be available at the pugchallenge.org and pugchallenge.eu sites. Look for webhandlers or REST-titled sessions.
 
 
Re. not using PDSOE. It’s possible to not use them, but you’d have to manage the deployment to the server yourself. Not impossible but Work. There are some Ant tasks you can use, and some doc on doing the deployments in the doc. Look for “tcman deploy” to get started.
 
 
 
 
Posted by marian.edu on 04-Oct-2018 12:36
There is also PrimeNG - https://github.com/primefaces/primeng that provides many useful components, I’ll try to give a short into on those @pugchallenge in Boston this month ;)

Guess my previous message didn’t went through so trying again…

Don’t think HTML mapped objects were used much even at the time so why bother? Webspeed can stream back data (JSON) just fine, you can use that with modern HTML5 frameworks… best use static pages if possible although with embedded speedscript/cgi wrapper you can also generate those pages dynamically if really needed.

While you’re evaluating the options might want to take a look at akera.io as an 'alternative' application server ;) 



Posted by bronco on 04-Oct-2018 12:41

Well FWIW, one could do easily without the "deployment capabilities" of PDSOE. Having said that, the costs involved in PSDOE and a decent computer to run it on are way less than the productivity gains you get once you take the initial hurdle.

As far as the options you mention, A to E are how you would do it in 2008 (or earlier). Web development changed a lot the last five years, with client side html rendering being the standard. Look into how either Angular, React or Vue are doing business nowadays. In the OE community there's a bias towards Angular.

That said, this is a BIG shift on your current way of thinking about (web-) application design, so it's not gonna be an easy journey.

Posted by goo on 04-Oct-2018 13:30
Use httprequest and return json, use Javascript to put the data at the right places. If you do it this way, you can have HTML designers to make the pages so much better... of course it is possible to do a kind of tagging when doing the other methods, but I found this way better.

Sendt fra min iPad

4. okt. 2018 kl. 17:21 skrev avtar.jain <bounce-avtarjain@community.progress.com>:

Update from Progress Community
avtar.jain

Thanks goo

Can you put some light on JAVAScript bridge? How would it display database values on HTML pages?

I am only aware about following bridges -

Speedscript, CGI Wrapper, HTML Mappings, PSE script or PAS

regards

avtar

View online

 

You received this notification because you subscribed to the forum.  To unsubscribe from only this thread, go here.

Flag this post as spam/abuse.

Posted by avtar.jain on 08-Oct-2018 04:27

hi Peter, as bronco mentioned below I believe PDS requires a lot resources to run. There is another complexity with BIT levels. I can not use 64-bit installation on developers machine because of application  dependency on OCX controls which are discontinued on 64-bit. Having 32-bit installation make our application working but oePAS can not be published. And on top of that there were several issues while publishing oepas.

So I temporarily placed oePAS and oePDS aside to focus on things get moving using legacy/ongoing concept rather than struggling with installation.

I really kind of liking concept of JSON communication b/w database and JSON by means of a simple and easy to develop bridge (may be AJAX or as you said Web Handler).

Posted by avtar.jain on 08-Oct-2018 04:31

hi Goo

thanks for reply

Do you mean AJAX communication? sounds good to me.

May I ask if this approach can be used for any level of complexity on CRM applicaiton like DATA bracketing, Record repositioning, Record Locking and Transaction handling and Security ofcourse.

is this widely accepted approach for mid-size business applications?

regards

avtar

Posted by avtar.jain on 08-Oct-2018 04:37

hi bronco

I understand how industry is revolutionized in recent years. But I am not targeting a big leap from 1995 to 2018. Initially on phase one I would first jump onto 2010 or 2015 with a vision to easy upgrade into more modern system. I believe at this point any nice looking and cost effective solution is better.

regards

avtar

Posted by goo on 08-Oct-2018 04:40
Yes it can, are you coming to Dublin this week? We are doing a webclient on steroids talk and there we will do a small demo on how to, in an easy way, using webspeed.
 
 
 
Posted by goo on 08-Oct-2018 05:24
As an example .
HTML (webserver)
 
 
  $.ajax({
  type: "POST",
  data: {id:"XXXttXX"},
  dataType: "json",
  url: "localhost/.../customer.r",
  success: function(data,textStatus, JQxhr) {myReceiveData(data);},
  error: function(JQxhr,textStatus,errorThrown) {alert("WHAT!! – does not happen…" + errorThrown);}
  })

 
Webspeed:        Customer.r         (server/backoffice)
 
 
{src/web2/wrap-cgi.i}
 
 
/* ReceivingFields: Fields we receives from calling HTML
current=1&rowCount=10&sort[sender]=asc&searchPhrase=&id=b0df282a-0d67-40e5-8558-c9e93b7befed
*/
output-content-type ("application/json":U).
fix-codepage(lc) = 'UTF-8'.
ReceivingFields = string(web-context:form-input).
 
run JBoxLoadLib.p ("JBoxASlib.p,JBoxUiLib.p").
 
oQuery = new JBoxQuery('Customer;CustNum;Name').
 
// oQuery:InitFilterGroup("custnumgroup", "AND").
// oQuery:addFilterGroupCriteria("custnumgroup", "and", "custnum", "gt", "10").
// oQuery:addFilterGroupCriteria("custnumgroup", "and", "custnum", "lt", "400").
 oQuery:setFilter("name","begins","a").
 
//oQuery:setFilter('custnum,name','gt,begins','100|a').
 
 
oQuery:rowsToBatch = 10. /** Number in batch*/
oQuery:setQuerySort('custnum;desc').
oQuery:getRecordCount = true.
 
:
:
 
oQuery:openQuery().
:
:
oQuery:BUFFER-HANDLE:write-json('stream',"Webstream").
 
As you can see, it is a very small demo, but you can figure out how much you could to with this small code.
 
To be able to send correct json, you will need build a correct json where you could add fields needed for sorting, curentrecord, RecordTotal etc. But that is easy &#128522;
 
This will give you all records in the filter scope and only custnum and name…
 
The Jukebox stuff is just a kind of toolbox we uses, and you can of course do this with temp-tables etc. The cool thing with jukebox, is that you don’t have to have a db connected to the webspeed broker, since we can connect do a appserver on another machine … blablabla
 
Enough said &#128522; point made
 
Posted by avtar.jain on 08-Oct-2018 05:34

hi Goo

Where can I download "Jukebox stuff" from? is this builtin feature of OE11?

Posted by goo on 08-Oct-2018 05:41

It is a toolbox of Chemistry AS by Brynjar. You may send him an email. You find him :

http://www.chemistry.no

Posted by cverbiest on 09-Oct-2018 09:39

[mention:b34a9620745a4133b221f85c091f3de7:e9ed411860ed4f2ba0265705b8793d05] You can install 32 & 64 bit side-by-side, we use PDS 64 bit and run the application in 32bit when we need legacy OCX

Posted by avtar.jain on 09-Oct-2018 09:53

This sounds good. I wish I could have tried.

I was feared to install two types on same machine. Several oePAS knowledge base articles I find are blaming installation of 32bit and 64 bit on same machine and suggest to start from scratch from a new machine. I did not want to end up in situation of having corrupt PROGRESS installation and not even having 32bit.

Posted by avtar.jain on 10-Oct-2018 06:31

Hi

Sorry to ask this slight off track.

After exploring, evaluating and checking feasibility, I am thinking to chooses following items to start with Web development  in OE -

A. I already have OE11.x installed

B. IIS server and OE webspeed brokers and CGIIP.EXE [to support PSE]

C. PSE script based dynamic web pages

D. HTML AJAX calls fulfilled by server side programs returning JSON  data

E. Angular JS framework for Responsive and Nice looking UI [including ng-grid] . I am still checking feasibility because yet not sure how to install angular on server -- any comments on Angular, will it work with webspeed?

Posted by oedev on 10-Oct-2018 08:06

Angular is a framework for the front-end and works with all back-ends, including webspeed (will work best if Webspeed is returning JSON data, as others have mentioned already. You mention "Angular JS framework for Responsive and Nice looking UI" - that is not part of Angular, ng-grid and other providers (such as Telerik) provide components that work well with Angular, but those components can also work without Angular.

You will be building dynamic web pages with Angular - i.e. combining static HTML with the returned data. But rather than this happpening on the server, it will be done in the browser. Obviously you are free to decide on what the best approach is for your product, but Angular with a Progress (PASOE/WebHandlers/Classic Webspeed) back-end returning JSON data has worked well for us on a number of projects.

This thread is closed