Replacing ZEN - Part 1 - Introduction

Index to Articles

Hi All

I am an avid user of ZEN for over 10 years now and it works for me.
But it seems that Intersystems are no longer actively developing it (or ZEN Mojo), the only published reference to this  is here

As an aside, Intersystems makes fine products (I have been using the technology for 35 years) and has great support BUT they are not good at being open with their product road map/retirement plans.  This is very embarrassing  to me when talking with my end user clients.

So I am looking at how to replace ZEN - this is not a short term project, at one client I have over 800 ZEN pages.
And it's such a shame as ZEN works and, most importantly, I and the team know how to make it "sing and dance".

I work in back office business apps so do not need some of the fancy stuff that is the modern web;

  • Responsive pages  - nope my users work on PC's only - having the page layout jump around would be confusing  
  • Band width - not a problem -my clients will all have good/excellent connectivity
  • Cross browser/device - not so important - I can design for a subset and insist on that
  • Synchronous XHTTP - Is crucial for me - if a user posts an invoice (say) I want them to see the result and not  be clicking elsewhere
  • Back button, bookmarking and general navigation - don't want this - there is a business process flow that I need to insist on - it makes no sense to me to go back to a display a record that has just been deleted
  • Fancy transitions - not really, my users are in front of a screen most of the day - using these would be tiring on the eyes

Also as a developer I want to have:-

  • Longevity of the development environment - I have seen many web development tool kits be the favourite of the month/year only to be discontinued after a short time.
  • Minimise the development stack - with ZEN you have COS, HTML, CSS, JS, XSLT (for FOP but I have got round having to learn that) more than enough.  I want to devote my intellectual effort to the business processes not learning the latest buzz technology.

So I have all of these in ZEN, and to re-iterate we know how to do make it "sing and dance"

However.....
I need to have a strategy to replace ZEN over the coming years.

Let me give you a real example of the issue with ZEN....
Recently I needed to implement (for the first time) printing bar charts - no problem, use the ZEN reporting chart component.  Spent 2 days trying to make it work - looking at the code in the component I could see that the programming for  css styling was just not finished (comments in the code 'TBD' (To Be Done)).  I could have attempted to sub-class and make it work, but instead did some Googling and found chart.js (open source) got the first chart up and running in 1/2 day and the second took only a couple of hours.

Some principles:-

  • Decoupling the  web UI development from the back end is the way forward.
  • Communication between font and back end via JSON.
  • Leverage the ecosystem (where appropriate)  there's a wealth of stuff out there.
  • Incremental development ideally I would like to find  a strategy that allows me to have a single UI that runs the existing ZEN pages and the New UI together - this would allow me to develop new business modules in the New that work seamlessly with the Old.  Also to move the Old to the New one by one over a period of time.
  • Programmatic Conversion of the ZEN page definitions to the New.  This should be possible (at least to some high %) by scanning the globals ^oddDEF and ^oddCOM (%Dictionary.* classes) parse the XML/COS/JS and create definitions for the new.

So I plan this to be a series of articles documenting the journey.
Hopefully I will be able to find time to keep it going

Peter

Index to Articles

  • + 15
  • 0
  • 883
  • 9

Comments

 Thank you, Peter! I think it would be interesting for a lot of folks here! 

Hi Evgny

Thanks - Only hope I can find the time and energy to keep it up :}

Some questions about the community HTML editor....
1. Is there an easy way to add hyperlinks in-line or do you have to manually edit the source
2. Also are there any checking rules that are enforced re hyperlinks
3. How do you upload images (screen shots)
4. Is it possible to embed video (again screen shots) or is it better to use YouTube and add a link
5. Is there a better free HTML editor/method of working to use to create articles rather than  built in?

Peter

1. Try plaintext editor - it supports markdown.

2. No. If you think we need it - add your issue here?

3.  There is a button in the right corner (highlighted) - it uploads the image into the post/comment in place.

Usually, I need to adjust a width after that. I select it and click the button with an image (see the screenshot). Recommended maximum width is 700px for landscape and 300 for a portrait orientation.

4. Yes, I believe it works in markdown editor. Pinging our DC media manager @Anastasia Dyubaylo to describe how she is doing that.

5. We can introduce better if you know it. Suggest and editor or suggest the requirements to an editor - we will do that.

For #1, this button adds a hyperlink to a selection:

Hi Peter!
Answering your question #4:

  1. Go to the plain text editor

2. Insert a tag <iframe> with embeddable link

In my example: <iframe allow="encrypted-media" allowfullscreen="" frameborder="0" gesture="media" height="315" scrolling="no" src="https://www.youtube.com/embed/87eG_zAbb9Y" width="560"></iframe>

Notice: in this case, the post preview will not work.

Hopefully, this will help you!

Thank you, Peter for the great article (and the upcoming series).

I noticed your comment about roadmap. 

I've recently joined InterSystems and have responsibility for this. Appreciate the feedback and will work to address this going forward.

-jeff fried

Hi Jeff 

and welcome aboard

If you want more (private) feedback please email me direct

Peter

Hi Peter,

Over the last few months we have been doing a similar task. 
The goal was to move development from the csp application to any modern environment.

Now we have a transparent solution where the Clarity Design System and Angular 5 are used as UI, and on the server side Caché objects based on a special class that ensures projection into dynamic objects. Communication is based on JSON through REST api. It works very well, the development is quick and clear and very easy.

If you would like more detailed information, I am available at svoboda@albistech.com 

Have a nice Easter

Jan