Written by

Principal Integration Architect | Cloud Computing | Data Science | AI & ML | CSM
Discussion Neerav Verma · Dec 19, 2019

Web Technologies To Choose - Opinion Wanted

HI,

I am planning to build a WebApp that will have tons of data to display in tables, ability to add comments on that table rows and may be some few more small features as we move on.

1. It has to be Secure

2. It has to be fast

3. It has to be Non CSP / Non Zen

4. Will have Cache DB to pull records from but should be flexible to do that from any odbc resource

5. Version 2018 Ensemble

My first step would have been to investigate different options for technologies that would make it work and best suited with Ensemble 2018

Before I move forward I wanted to ask our community what do they think the route should be, the technologies I should go for and their experiences of the same.

Appreciating in advance the response and opinions. There will be no right or wrong answers to it

Many Thanks

Comments

Ben Spead · Dec 19, 2019

Neerav,

For internal applications within InterSystems, we've chosen a webapp strategy of:

- REST services from Caché/InterSystems IRIS

- Angular8

- Angular Material

We are part-way into the implementation of this strategy and so far so good.  However, the work that we've done so far doesn't yet fit in the category of "tons of data to display' so I can't comment first-hand on the efficacy of this stack for that requirement (but you should be able to find experiences of others using Angular for data-heavy web apps).  We are using this for new application development, and we're also working to retrofit existing CSP/Zen apps and move them to this stack.  

Hope that helps!

0
Neerav Verma  Dec 19, 2019 to Ben Spead

Hey Benjamin

For starters even 50,000 rows of data displayed , searchable and paginated would be good enough. Can always build on that 

Do you have any sample where I can build upon?

0
Eduard Lebedyuk · Dec 19, 2019

There are several Web apps, using RESTForms as a backend REST API serving tables in the millions of rows.

It takes some tuning but with pagination it's not that hard to achieve.

We're also using latest Angular for UI part.

0
Neerav Verma  Dec 19, 2019 to Eduard Lebedyuk

Hey Eduard,

Any sample to get started?

Thanks

0
Eduard Lebedyuk  Dec 19, 2019 to Neerav Verma

The server part is explained in the linked articles. I can answer additional questions if ou have any.

For client part, @Sergey.Sarkisyancan weight in?

0
Neerav Verma  Dec 19, 2019 to Eduard Lebedyuk

HI,

I still haven't read the article but I will first thing tomorrow in detail.

Is there any node.js used to fetch the data???

Is any bootstrap involved too to beautify it??

0
Eduard Lebedyuk  Dec 20, 2019 to Neerav Verma

Is there any node.js used to fetch the data???

No, RESTForms is used to fetch the data. It's a REST API.

Is any bootstrap involved too to beautify it??

Probably.

0
Evgeny Shvarov  Dec 23, 2019 to Rob Tweed

QEWD is. But it looks like you have two more products related to QEWD, right?

0
Rob Tweed  Dec 23, 2019 to Evgeny Shvarov

They aren't products as such, more repositories that focus on particular aspects of / components within QEWD, to help people get up and running with them.  They are linked from the main QEWD repository, which, in turn, is linked to your Open Exchange. 

0
Rob Tweed  Dec 23, 2019 to Evgeny Shvarov

QEWD is already listed, Evgeny. 

0
Udo Leimberger · Dec 19, 2019

In my opinion it depends what is the main purpose of the web app.

As I am a big fan of TYPO3 Enterprise CMS we use TYPO3 as the base and use REST API to communicate with our Intersystems platforms.

TYPO3 brings all the security features out of the box and is fun to extend because everything is possible.

0
Neerav Verma  Dec 19, 2019 to Udo Leimberger

Hi Udo,

I had never heard of Typo3 before today. It seems good but I think a more known tool would be more acceptable in the organization.

Aim of app is to present data in a well formatted manner internally within the organization with the ability to do some simple updates

Thanks

0
Henrique Dias · Dec 19, 2019

Neerav, 

For my projects, I've been using this framework https://js.devexpress.com/; good HTML5 JavaScript Components with excellent features.

I'm developing using a more simple approach with:

- Simple HTML + jQuery

- REST services from Caché/InterSystems IRIS

DevExpress components are perfect for dealing with large datasets.

If you take a look at this project, you can see what the components are capable of:

https://community.intersystems.com/post/dashboard-iris-history-monitor
​​​​​​​Best Regards,

Henrique 

0
Neerav Verma  Dec 19, 2019 to Henrique Dias

Hi Henrique,

This looks really good.

Before I dive further into your post, may I ask just one or two simple questions

1. Is the only connection to cache here is the Rest Services ?

For eg. if I replace the cache rest url and replace it with another one.. which is sending exactly same data . will it work?

2. Do we need to install something on the system for the same ?

3.  Do your files have an extension of .html or something else?
4. Is it correct to say that there is no Angular or node.js involved??

Many thanks

0
Henrique Dias  Dec 23, 2019 to Neerav Verma

Hi Neerav, 

Answering your question: 

1. Yes, the only connection to Caché is the REST Services. The exception in IRIS History Monitor is the following line to show the Server Name | Instance Name :

#($piece($SYSTEM,":",1))# | #($piece($SYSTEM,":",2))#
2. If you don't want a docker environment, you can follow these steps :

https://community.intersystems.com/post/dashboard-iris-history-monitor#comment-73721I

3. The project IRIS History Dashboard was created using CSP files, but if you change, than to .html should work just fine. The only consideration is answer #1 above

4. Yes, there is no Angular or Node.js envolved.
 

0
Rob Tweed · Dec 22, 2019

Take a look at QEWD:

This is a good place to start: https://github.com/robtweed/qewd-baseline
There are instructions on how to try it out with IRIS, but Cache is also supported (all versions)

Both REST APIs and interactive browser-base applications (and Native Mobile apps also) can be quickly and easily developed.  Security is built-in and it's all Open Source.

QEWD main repository: https://github.com/robtweed/qewd

See also QEWD-JSdb: https://github.com/robtweed/qewd-jsdb

0