For those who participate in ObjectScript Advent of Code 2019: there is an opportunity to receive an attempt for the certification exam for free!

Be one of the top 3 performers in the competition and get a voucher for the certification exam!

The current leaderboard is the following:

And you still have 2 weeks to change the leaderboard!

*The option is not eligible for InterSystems employees so your chances to win are higher! ;)

Advent Of Code 2019 reached its equator!

Here is the current top-20 list:

We decided to raise the odds in the competition and we are adding a new prize for winners - 3 vouchers for InterSystems Certification Exams!

Top-3 participants will get the voucher for any of the two exams available! 

*The option is not eligible for InterSystems employees.

The answer to all this could be "To make the world the better place"). 

Because if you do all 3 you get:

the same wonderful Web terminal, but with simpletransparent, and standard installing mechanism with and yet another channel for distribution, cause ZPM seems to be a very handy and popular way to install/try the staff.

Maybe yet another channel of clear and handy app distribution is enough argument to change something in the application too?

Hi Nikita!

Thanks for the good question!

The answer is on why module.xml vs installer.cls on projections is quite obvious IMHO.

Compare module.xml and installer.cls which does the same thing.

Examining module.xml you can clearly say what the installation does and easily maintain/support it.

In this case, the package installs:

1. classes from WebTerminal package:

<Resource Name="WebTerminal.PKG" />

2. creates one REST Web app:

 <CSPApplication 
        Url="/terminal"
        Path="/build/client"
        Directory="{$cspdir}/terminal"
        DispatchClass="WebTerminal.Router"
        ServeFiles="1"
        Recurse="1"
        PasswordAuthEnabled="1"
        UnauthenticatedEnabled="0"
        CookiePath="/"
      />

3. creates another REST Web app:

    <CSPApplication 
        Url="/terminalsocket"
        Path="/terminal"
        Directory="{$cspdir}/terminalsocket"
        ServeFiles="0"
        UnauthenticatedEnabled="1"
        MatchRoles=":%DB_CACHESYS:%DB_IRISSYS:{$dbrole}"
        Recurse="1"
        CookiePath="/"
      />

I cannot say the same for Installer.cls on projections - what does it do to my system?

Simplicity, transparency, and installation standard with zpm module.xml approach vs what?