It's been 6 weeks since my original article
- - - - -but I have been busy on this project
I have been looking at/thinking about a replacement for ZEN for around 12 months but only really started in depth 4 months ago.
Also been in IT for long enough that I can "get a feel" for a product/technology and make decisions accordingly without going into great detail.
Any new technology has a learning curve and I don't want to waste time and effort on something that won't fly.
And, as always, I am looking to minimise the learning curve as I want to concentrate on delivering business benefit. My methodology has been:
- Look around the web
- Watch YouTube videos
- Examine open source download ount
- Look at the number of releases of products
- Get a feel for the longevity for the products and number of contributors
There's quite a good overview of some factors here it's a bit dated (2009) but the factors are still relevant today.
So, here's what I have I been looking at and my decisions...
- Client Development will be Angular 2
To me Angular 2 has...
a. Has a nice oo feel to it
b. Provided by Google with a large development/support team
c. Very active development - Angular 6 has just been released
d. Open Source
d. Large amount of web learning resources
I have worked though a number of tutorials but created no code/projects myself yet - that's the next step (see below)
Note - AngularJS (Angular 1) and Angular 2 are very different not to be confused. Also Angular 2 is the covering name for *all* new versions - version 6 has just been released.
- Editors will be Caché Studio and Visual Studio Code (VS Code)
I looked at Eclipse and Atelier - at first sight it looks cool, a single editor that will do both Caché and an Angular 2 plugin
- Compared with Studio the current code completion in Atelier is not so great
- I know how to use Studio and can make it fly
- There are not many Angular 2 plugins available and most are single developer offerings
- VS Code is open source provided by Microsoft so well supported with active development
- Version Control will be Git/Git Hub
The aim is to have a single repository that contains the Caché classes *and* the VS Code files.
This is important to make deployment (Local Dev -> Test Server -> Live Server) as robust as possible. ie all the assets move together
see this thread for some discussion.
It's available "out of the box" with VS Code.
And there are Caché Studio hooks available -see the this thread
if GitHub fails there is always GitLab see the post here here from Eduard Lebedyuk
- Is it possible to leverage existing ZEN code - YES
I have over 250 %ZEN.DataModel.ObjectDataModel classes for my main client. These are responsible for CRUD data transfer between ZEN browser client and the stored data. Most contain complex business logic - re-creating this would be a huge task not least in User Acceptance Testing.
So, is it possible to extend these classes to send and receive data via JSON over a Rest call?
The answer is YES - I have it working
- Next Steps
I have developed a small ZEN app as a test bed that models a pattern that I widely use in the current ZEN app
This together with the extended ObjectDataModel class will be available shortly on GIT Hub
I then plan to reproduce the same functionality in Angular2 / Rest Calls / JSON to and from the extended ObjectDataModel
- Learning Curves
As I said in my last article it's awesome and fearsome - I already have Angular2, NPM (Node Package Manager), Node.JS, NVM (Node Version Manager), VSCode on my development VM.
And all these are new to me and to be kept up-to-date, it took around ½ day to update these from Angular 2 (version 5) to Angular 2 (version 6)