I would definitely look at using a framework for building Single Page Web Apps (SPAs) and avoid using PHP or the like to render anything on the backend, which is a very outdated way of doing it. You might find PHP is ok for making the RESTful API to the backend with, but personally I'd avoid it in favour of IWS or something else. Also avoid jQuery, it's also well out of date.
I have used Angular
https://angular.io/, together with Material (which is a CSS/component framework designed to work with it)
https://material.angular.io/ for a number of years to build web apps on both the IBM i and other platforms. Although I've not used Vue or React as have been mentioned, the difference I think with Angular is that it comes with (almost) everything you need to develop enterprise scale apps (such as a routing module and packaging tools) and it's highly opinionated, which I found to be a good thing because when you're on such a steep learning curve already, you just want to crack on with the recommended style without having to reinvent standards etc. Another huge advantage of Angular is that it's based on Typescript, which is a much safer and more robust alternative to plain old Javascript. You can scaffold a complete working Angular app with its CLI in a few minutes, including the webpack build tools.
In terms of the backend, I always use stored procedures (IMO letting your PHP or whatever middleware layer is loose on the naked database is asking for trouble), if you're on 7.2 or later, you can even build the JSON responses right in the SQL and then you only need a very thin middleware layer (the one I currently use is just a few dozen lines of Typescript).
Having said that, whichever framework you choose, the learning curve can be very, very steep when getting started with web apps. It's incredibly simple to get a basic web app to work, but it's considerably more difficult to scale them up into the sort of complexity required for even a modest enterprise application. It is a huge change to your way of thinking and designing apps.
The complete toolchain and IDE (I use and love VS Code) is free. As for maintenance costs, if you invest in automated builds and automated testing right from the start, I believe this will help (Angular scaffolds test code for you by default when you create new components, although you have to fill in the important bits). However, we are somewhat spoilt on the IBM by its incredible stability, in the web world you are seemingly locked in a constant battle as the ground beneath you is contently shifting, APIs are deprecated, and things need to be kept up to date.
If you want to get a feel for each of the different frameworks, have a look at Stackblitz (
https://stackblitz.com/) this is an amazing tool which allows you to instantly spin up a complete development environment without having to install anything. You can try Ionic, React, Vue, Angular and more - it really is magic!
Tim.
________________________________
From: WEB400 <web400-bounces@xxxxxxxxxxxxxxxxxx> on behalf of franz9000@xxxxxxxxx <franz9000@xxxxxxxxx>
Sent: 02 June 2021 04:36
To: 'Web Enabling the IBM i (AS/400 and iSeries)' <web400@xxxxxxxxxxxxxxxxxx>
Subject: [WEB400] IBM i as a webserver with low cost tools
Given task to find framework and tools to migrate existing customer service
site (order entry, maintenance, history, payments, 60 different programs,
all dynamic, heavily edited), and apply new UX dashboard design and
functions to auto fit devices (not too much to ask is it?).
This site has been up 21 years, with couple overhauls, built with a $$ tool
(that I like but will not name..), uses Apache cgi interface. Site does not
fit any pattern like a shopping cart, or lookup portal. Half the site is
pages of data entry (names and addresses, long descriptions, code
selections). Already using CSS, jQuery for autocomplete and other functions,
some javascript, some bootstrap. Ready for next overhaul.
Primary business requirements are:
No limits on handling business designs like other platforms ( - a great
site)
Annual software maint no more than low end/open source (current annual
maint 10k). The business thinks this savings will pay for project..
They would prefer it not be a strictly RPG site (concern about
maintainability long term) but not ruling it out - have used cgidev2 before.
Realtime updates to IBM I DB2 like an interactive application.
Customer authentication, and secure.
CSS will be replaced.
Power 9 (small) is staying, but without a solution the website will be given
to an external vendor with lots of calls to the system (and customer will be
unhappy).
Eventually this solution will be used to replace office applications.
Average 20 - 30 near simultaneous users but must handle several times that.
Am leaning towards PHP - but have not used since early days of Zend.
Given the annual maint cost limits - is this realistic?
Jim
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing list
To post a message email: WEB400@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
https://archive.midrange.com/web400.
As an Amazon Associate we earn from qualifying purchases.