On Wednesday, 23 March 2016 at 17:15:35 UTC, Jesse Phillips wrote:
On Wednesday, 23 March 2016 at 12:21:33 UTC, Ozan wrote:
Hi
Enterprise applications in productive environments requires
smooth updating mechanisms without recompiling or
reinstalling. It's not possible to stop an enterprise
application, then run "dub --reforce" and wait until finish.
Mostly only few functions need to be replaced.
Has someone experience with handling upgrading/updating D-Apps
on the fly?
Working with dynamic libraries or distributed components is
not secure enough,
but maybe there are solutions, maybe around base calls and
functions or completely different.
Regards, Ozan
Do you have an example of this being done in any other
language? Essentially whatever code is being replaced, you're
going to need to recompile it. If you're not using
dynamic/shared libraries Adam is pointing you in the right
direction.
If it is a desktop application then it is probably easiest if
it communicates to a local service that provides the
"replaceable" functions, when you stand up the new service the
app can transfer the communication to it.
I can't speak to your security concerns.
I'm working in SAP area. The main application servers are based
on C++. Every part which is not core could be replaced.
Applications running in ABAP are also replaceable (thanks to the
JIT)
There are also solutions in Java. Application Servers are typical
solutions, where code, libs and apps could be replaced without
recompiling. Dub is great, but business applications requires
more the framework or platform approach.
I will try out Martin Nowak's example from DConf. Looks like a
solution for me...
Regards Ozan